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

Django 2.0.2在Apache mod_wsgi下内部服务器错误排查及解决

解决Django 2.0.2 + mod-wsgi-py3 + Apache部署的WSGI脚本加载失败问题

最近我在部署本地的Django 2.0.2应用时,碰到了烦人的内部服务器错误,核心提示就是无法将WSGI脚本加载为Python模块。我的运行环境是Python 3.6.3的virtualenv,搭配Daemon模式的mod-wsgi-py3 4.5.17和Apache 2.4.27。折腾了好一阵后,终于把所有问题都搞定了,现在把解决过程分享出来:

第一个问题:WSGI脚本无法加载为Python模块

这个问题的根源是mod-wsgi没有正确关联到我的virtualenv环境,导致找不到Django相关的模块。最终通过修改Apache配置里的WSGIDaemonProcess指令解决了——给它加上python-home和python-path两个参数:

# 示例配置,替换成你自己的路径
WSGIDaemonProcess my_django_app python-home=/home/your-user/venv python-path=/home/your-user/django-project-root
WSGIProcessGroup my_django_app
  • python-home:指向你的virtualenv根目录,让mod-wsgi使用虚拟环境里的Python解释器
  • python-path:指向你的Django项目根目录(就是包含manage.py的那个文件夹),确保mod-wsgi能找到项目的模块

第二个问题:静态资源访问异常

解决完第一个问题后,我又遇到了新的小问题——页面加载时静态资源全部404,这是因为我之前未在Apache配置中设置静态文件的别名映射,也没有给静态文件目录配置正确的访问权限。后来补充了以下配置:

# 映射静态文件URL到本地目录
Alias /static/ /home/your-user/django-project-root/static/
# 给静态文件目录设置访问权限
<Directory /home/your-user/django-project-root/static/>
    Require all granted
</Directory>

同时我还检查了静态文件目录的权限,确保Apache的运行用户(比如www-data)有读取该目录的权限,用了类似这样的命令:

sudo chown -R www-data:www-data /home/your-user/django-project-root/static/
sudo chmod -R 755 /home/your-user/django-project-root/static/

现在我的Django服务已经能正常运行了,没有任何剩余错误。希望这些经验能帮到遇到同样问题的开发者!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:34:18