使用CyberPanel部署Django至VPS遇500内部服务器错误求助
我按照官方文档步骤在CyberPanel的VPS上部署Django应用,但网站出现500 Internal Server Error,错误日志如下:
2022-10-31 06:15:44.516946 [INFO] [126625] [wsgi:futuurelineworkshop.com:/]: locked pid file [/tmp/lshttpd/futuurelineworkshop.com:.sock.pid].
2022-10-31 06:15:44.516975 [INFO] [126625] [wsgi:futuurelineworkshop.com:/] remove unix socket for detached process: /tmp/lshttpd/futuurelineworkshop.com:.sock
2022-10-31 06:15:44.517516 [NOTICE] [126625] [LocalWorker::workerExec] VHost:futuurelineworkshop.com suExec check uid 99 gid 99 setuidmode 0.
2022-10-31 06:15:44.517541 [NOTICE] [126625] [LocalWorker::workerExec] Config[wsgi:futuurelineworkshop.com:/]: suExec uid 99 gid 99 cmd /usr/local/lsws/fcgi-bin/lswsgi -m /home/futuurelineworkshop.com/public_html/workShop2/WorkShop/wsgi.py, final uid 99 gid 99, flags: 0.
2022-10-31 06:15:44.518080 [NOTICE] [126625] [wsgi:futuurelineworkshop.com:/] add child process pid: 146100
2022-10-31 06:15:44.518154 [INFO] [126625] [wsgi:futuurelineworkshop.com:/]: unlocked pid file [/tmp/lshttpd/futuurelineworkshop.com:_.sock.pid].
2022-10-31 06:15:45.031045 [NOTICE] [126625] [127.0.0.1:44700#futuurelineworkshop.com] Premature end of response header.
排查步骤
检查WSGI文件路径与权限
日志里指定的WSGI路径是/home/futuurelineworkshop.com/public_html/workShop2/WorkShop/wsgi.py,先确认文件真实存在,再检查权限:- 执行
ls -l /home/futuurelineworkshop.com/public_html/workShop2/WorkShop/wsgi.py查看文件所有者和权限,确保运行lswsgi的用户(uid 99)有读取权限。 - 检查整个目录链(
workShop2、WorkShop等)的执行权限是否对uid 99开放。
- 执行
验证Python环境与依赖
- 切换到uid 99用户(通常是nobody):
su -s /bin/bash nobody,进入项目目录后运行python -m django check,排查模块缺失、配置错误等问题。 - 确认WSGI文件中是否正确指定了虚拟环境的site-packages路径,确保项目依赖能被加载。
- 切换到uid 99用户(通常是nobody):
查看Django详细错误日志
临时修改项目settings.py:设置DEBUG = True,并将ALLOWED_HOSTS添加域名futuurelineworkshop.com,访问网站即可看到详细错误信息,这比OpenLiteSpeed日志更精准。检查OpenLiteSpeed的WSGI配置
- 确认CyberPanel中WSGI设置的
Python Path指向项目虚拟环境或正确的Python安装路径。 - 重启OpenLiteSpeed服务:
systemctl restart lsws,再次访问网站测试。
- 确认CyberPanel中WSGI设置的
内容的提问来源于stack exchange,提问作者عبدوو يوسف

