Ubuntu 16.04下Django生产环境部署求助(已配置Apache2+WSGI)
Django部署到Ubuntu 16.04生产环境(Apache2+WSGI)完整配置指南
嘿,作为刚上手Django部署的新手,你已经完成了Apache2搭配WSGI的安装,还配置了项目和Python包的系统路径,这起步已经相当不错了!不过看你贴出来的000-default.config配置只写了一半,我来帮你补全关键部分,再梳理几个容易踩坑的要点,确保你的项目能顺利跑起来。
补全后的完整虚拟主机配置
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName myproject.com ServerAlias www.myproject.com # 静态文件映射配置 Alias /static /var/www/html/TEST/myproject/static <Directory /var/www/html/TEST/myproject/static> Require all granted </Directory> # WSGI核心映射(你之前缺失的关键部分) WSGIScriptAlias / /var/www/html/TEST/myproject/myproject/wsgi.py <Directory /var/www/html/TEST/myproject/myproject> <Files wsgi.py> Require all granted </Files> </Directory> # 日志配置(建议添加,方便排查问题) ErrorLog ${APACHE_LOG_DIR}/myproject_error.log CustomLog ${APACHE_LOG_DIR}/myproject_access.log combined </VirtualHost>
几个必须注意的细节
- 域名解析/本地测试:如果是线上部署,要确保
myproject.com和www.myproject.com已经解析到你的服务器公网IP;如果是本地测试,得修改/etc/hosts文件,添加一行你的服务器IP myproject.com www.myproject.com。 - 静态文件收集:别忘记在Django项目根目录执行
python manage.py collectstatic,把所有app的静态文件统一收集到你配置的/var/www/html/TEST/myproject/static目录下,不然网页会加载不到样式和静态资源。 - 虚拟环境适配(如果用了的话):如果你的Django项目基于虚拟环境创建,必须在Apache配置里指定虚拟环境的Python路径,在
<VirtualHost>标签开头加上:
把WSGIPythonHome /path/to/your/virtual/environment WSGIPythonPath /var/www/html/TEST/myproject/path/to/your/virtual/environment换成你实际的虚拟环境路径,比如/home/ubuntu/venvs/myproject_env。 - 权限检查:Apache运行用户是
www-data,要确保它能访问你的项目目录,执行命令:sudo chown -R www-data:www-data /var/www/html/TEST/myproject sudo chmod -R 755 /var/www/html/TEST/myproject
最后验证步骤
- 重启Apache服务让配置生效:
sudo systemctl restart apache2 - 检查错误日志排查问题:
如果启动失败或者访问网站出问题,日志里会给出具体的错误信息,比如路径不对、权限不足、模块缺失之类的,照着提示修复就行。sudo tail -f /var/log/apache2/myproject_error.log
内容的提问来源于stack exchange,提问作者Sangeetha Krish
相关产品推荐
相关产品推荐

