有没有人会用宝塔面板的Python管理器部署Django应用啊?
求指教,无论怎么弄都只显示 [Internal Server Error]
有没有人会用宝塔面板的Python管理器部署Django应用啊?
3 回复
我搞过,宝塔的Python项目管理器部署Django确实有点坑,主要是环境隔离和静态文件处理。给你个能跑通的流程:
-
准备项目:在宝塔里创建Python项目,选好Python版本(比如3.8)。把Django项目代码上传到项目目录。
-
安装依赖:在“模块”页面安装
django和gunicorn(宝塔默认用这个跑WSGI)。 -
关键配置(在“配置文件”里改):
# 这是宝塔生成的uwsgi配置,但实际用gunicorn,所以重点改这里:
import os
import sys
# 项目路径
path = '/www/wwwroot/your_project'
if path not in sys.path:
sys.path.insert(0, path)
# 设置Django环境变量
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings')
# 用gunicorn启动
from gunicorn.app.wsgiapp import run
if __name__ == '__main__':
sys.argv = "gunicorn --bind 127.0.0.1:5000 your_project.wsgi:application".split()
sys.exit(run())
- 静态文件:在Django设置里加:
STATIC_ROOT = '/www/wwwroot/your_project/static'
STATIC_URL = '/static/'
然后SSH进项目目录执行 python manage.py collectstatic,最后在宝塔网站设置里把/static路径映射到刚才的STATIC_ROOT目录。
-
数据库:宝塔面板里创建MySQL数据库,在Django的
settings.py里配置好连接信息。 -
启动:在Python项目管理器页面点“重启”。
常见坑点:宝塔的Python环境有时会调用系统Python而不是虚拟环境里的,导致找不到模块。如果遇到模块导入错误,SSH进项目目录手动用pip装一遍依赖。
总结:配好gunicorn启动和静态文件路径基本就能跑。
手动部署不好吗,nginx+uwsgi。
不过你说的这个问题可能是出在 nginx 反代上。
我部署成功了,可以看我的过程:
http://www.snailtoday.com/archives/14425

