VPS上能否将原WordPress域名用于全新搭建的Django网站?
如何在VPS上用原域名部署Django站点(替换原WordPress)
当然可以继续使用原域名,只需要调整VPS的Web服务器配置,将域名指向新的Django应用即可。直接在原WordPress目录搭建失败大概率是因为旧目录存在权限残留、Web服务器配置冲突等问题,以下是标准的实现步骤:
一、清理旧环境残留
- 确认原WordPress的所有文件、目录已彻底删除,包括Web服务器(Nginx/Apache)中对应的旧站点配置文件(通常在
/etc/nginx/sites-available/或/etc/apache2/sites-available/下) - 若原WordPress使用了数据库(如MySQL),可删除对应数据库(无需保留的话),避免资源占用;如需保留,确保Django使用独立的数据库实例
二、搭建Django运行环境(以Debian/Ubuntu为例)
- 更新系统并安装Python基础依赖:
sudo apt update && sudo apt install python3 python3-pip - 安装虚拟环境工具并创建隔离环境(建议新建干净目录,比如
/var/www/my_django_site,不要用原WordPress旧目录):pip3 install virtualenv cd /var/www/my_django_site virtualenv venv source venv/bin/activate - 安装Django和WSGI服务器:
pip install django gunicorn
三、创建并配置Django项目
- 在激活的虚拟环境中初始化项目:
django-admin startproject mysite . - 修改
mysite/settings.py核心配置:- 将
ALLOWED_HOSTS设置为你的域名:ALLOWED_HOSTS = ['your-domain.com', 'www.your-domain.com'] - 配置静态文件存储路径:
STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
- 将
- 生成静态文件并测试项目:
此时用浏览器访问python manage.py collectstatic python manage.py runserver 0.0.0.0:8000http://你的VPSIP:8000,能看到Django默认页面即为配置成功
四、配置Web服务器(以Nginx为例)
- 安装Nginx并删除旧站点配置:
sudo apt install nginx sudo rm /etc/nginx/sites-enabled/wordpress.conf # 替换成你的旧WP配置文件名 - 创建新的Django站点配置文件:
写入以下内容(替换域名和项目路径):sudo nano /etc/nginx/sites-available/my_django_siteserver { listen 80; server_name your-domain.com www.your-domain.com; location /static/ { root /var/www/my_django_site; } location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } - 启用配置并重启Nginx:
sudo ln -s /etc/nginx/sites-available/my_django_site /etc/nginx/sites-enabled/ sudo nginx -t # 测试配置是否合法 sudo systemctl restart nginx
五、后台持久运行Django应用
- 创建systemd服务文件:
写入以下内容(替换用户名和项目路径):sudo nano /etc/systemd/system/gunicorn.service[Unit] Description=gunicorn daemon After=network.target [Service] User=your-username Group=www-data WorkingDirectory=/var/www/my_django_site ExecStart=/var/www/my_django_site/venv/bin/gunicorn --workers 3 --bind 127.0.0.1:8000 mysite.wsgi:application [Install] WantedBy=multi-user.target - 启动并启用服务:
sudo systemctl start gunicorn sudo systemctl enable gunicorn - 检查服务状态:
sudo systemctl status gunicorn
六、域名解析确认
登录你的域名注册商后台,确保域名的A/AAAA记录仍指向当前VPS的公网IP(和原WordPress配置一致即可,无需修改)
常见问题排查
- 出现502错误:检查gunicorn服务是否正常运行,端口8000是否被占用
- 静态文件加载失败:确认
STATIC_ROOT路径正确,collectstatic已执行,Nginx的静态文件配置路径无误 - 权限问题:确保Django项目目录的用户组为
www-data,避免Web服务器无法读取文件
内容的提问来源于stack exchange,提问作者Anderson Santana
相关产品推荐
相关产品推荐

