You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Strato.de通过CGI部署Django应用遇500错误及配置疑问

Django CGI部署(Strato.de)500错误调试指南

优先排查:获取具体错误信息

500错误的核心是拿到明确的报错内容,先做这两步:

  • 登录Strato主机控制面板,找到CGI/错误日志板块(或检查主机目录下的~/logs/cgi-error.log文件),查看最近请求的报错详情
  • 临时开启DEBUG模式测试:直接在settings.py里写死DEBUG = True,访问网站会显示详细报错页面(注意:测试完成后立刻改回DEBUG = False,生产环境绝对不能开启)

已完成步骤的补充验证

  • 确认依赖安装路径:Strato的虚拟环境可能与全局环境隔离,CGI脚本开头的Python解释器路径要对应你的虚拟环境,比如#!/home/your-account/venv/bin/python,而非默认的系统Python
  • 检查CGI相关文件权限:happy.cgi必须设置可执行权限,执行命令chmod +x happy.cgi,且文件所有者需为你的主机账号

你的疑问解答

1. Secret_key是否需要通过bash命令设置?

不需要强制用bash设置,你当前的代码已经配置了默认值,即使环境变量不存在也会使用后面的字符串。但生产环境建议通过Strato控制面板的「环境变量」板块设置DJANGO_SECRET_KEY,避免源码泄露密钥。

2. ALLOWED_HOSTS应该配置哪些值?

  • 禁止用['*'](生产环境存在安全风险),需填写你的实际域名,比如同时包含裸域名和带www的域名:ALLOWED_HOSTS = ['website.de', 'www.website.de']
  • 如果使用Strato提供的临时测试域名,也要将其加入列表,比如ALLOWED_HOSTS = ['website.de', 'www.website.de', 'your-account.strato-hosting.de']

额外检查点

  • 确认静态文件配置:settings.py中需正确设置STATIC_ROOT,并执行python manage.py collectstatic将静态文件收集到指定目录,同时在Strato控制面板配置静态文件映射,指向该目录
  • 验证cgi_handler.py的加载逻辑,确保正确指定项目路径和settings模块:
import os
import sys

# 替换为你的Django项目绝对路径
sys.path.insert(0, '/home/your-account/your-django-project')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings')

from django_cgi import get_wsgi_application
application = get_wsgi_application()
  • 检查happy.cgi的执行逻辑,确保shebang和应用调用正确:
#!/home/your-account/venv/bin/python
import sys
sys.path.insert(0, '/home/your-account/your-django-project')
from cgi_handler import application
from wsgiref.handlers import CGIHandler
CGIHandler().run(application)

内容的提问来源于stack exchange,提问作者Revero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 03:19:51