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

Windows下Django部署Apache遇Internal Server Error 500求助

Windows下Apache+mod_wsgi部署Django 500错误排查遗漏点
  • 验证mod_wsgi与Python版本匹配度:确保mod_wsgi的版本、位数(32/64位)和你运行Django的Python完全一致,哪怕调试日志显示模块加载正常,版本不匹配也会引发隐性异常。执行mod_wsgi-express module-config命令,核对输出的Python路径是否和项目使用的Python路径一致。

  • 检查WSGIPythonPath配置:Apache配置文件中必须指定Django项目根目录(含manage.py的文件夹)和虚拟环境的site-packages路径(若使用虚拟环境),示例:

    WSGIPythonPath C:\django_project_root;C:\venv\Lib\site-packages
    

    路径含空格时需用引号包裹,或改用短路径。

  • 核对Django settings.py关键配置:

    • 若DEBUG = False,ALLOWED_HOSTS必须包含localhost或127.0.0.1,否则会触发安全限制导致500错误。
    • 确认STATIC_ROOT配置正确,collectstatic执行后静态文件已生成到对应目录,同时Apache的静态资源别名配置要匹配:
      Alias /static/ C:\path\to\static_root\
      <Directory C:\path\to\static_root\>
          Require all granted
      </Directory>
      
  • DSO模块加载与依赖检查:

    • 确认httpd.conf中的加载指令LoadModule wsgi_module modules/mod_wsgi.so正确,且mod_wsgi.so文件确实在Apache的modules目录下。
    • 执行httpd -M命令查看已加载模块列表,确认wsgi模块存在;若为自定义编译的Apache版本,需确认编译时开启了DSO支持(如--enable-mods-shared=all参数)。
  • 查看Django本地错误日志:若Apache错误日志无内容,可临时将DEBUG = True,重新访问页面获取详细错误信息(如模块导入失败、数据库连接问题等),调试完成后改回DEBUG = False。也可直接查看项目根目录下的django.log(若已配置日志系统)。

  • 检查文件权限:确保Apache服务运行用户(默认LocalSystem)对Django项目目录、静态文件目录、虚拟环境目录拥有读取权限,可通过右键目录→属性→安全面板添加权限。

  • 排查端口占用:用netstat -ano | findstr :8000命令检查8000端口是否被其他程序占用,若有冲突,停止占用程序或修改Apache监听端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 09:42:37