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

部署Django至Apache+mod_wsgi时遭遇500内部服务器错误求助

解决Django部署HTTP 500错误(ModuleNotFoundError: No module named 'django')

核心问题

日志明确显示找不到Django模块,说明Apache的mod_wsgi未正确加载虚拟环境的Python依赖,或编译的mod_wsgi版本与虚拟环境Python版本不匹配。

分步解决方案

1. 验证虚拟环境的Django安装

先确认虚拟环境内确实安装了Django:

# 激活虚拟环境
source /home/ubuntu/project/env/bin/activate
# 检查Django是否存在
pip list | grep Django
# 若未安装,执行安装
pip install django
# 退出虚拟环境
deactivate

2. 重新编译mod_wsgi,绑定正确的Python版本

mod_wsgi必须与虚拟环境使用的Python版本一致才能正确识别依赖:

# 先卸载旧的mod_wsgi
sudo a2dismod wsgi
sudo rm /usr/lib/apache2/modules/mod_wsgi.so  # 若路径不同,用`find / -name mod_wsgi.so`查找

# 重新编译(替换为你的Python3.10路径,可通过`which python3.10`获取)
cd mod_wsgi-4.9.4
make clean
./configure --with-python=/usr/bin/python3.10
sudo make
sudo make install

# 启用mod_wsgi并重启Apache
sudo a2enmod wsgi
sudo systemctl restart apache2

3. 修正Apache虚拟主机配置

python-path需指向项目根目录(而非子应用目录),确保Django能找到项目模块:

<VirtualHost *:80>
    WSGIDaemonProcess myproject python-home=/home/ubuntu/project/env python-path=/home/ubuntu/project
    WSGIProcessGroup myproject
    WSGIScriptAlias / /home/ubuntu/project/my_project/wsgi.py

    <Directory /home/ubuntu/project/my_project>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
</VirtualHost>

修改后重启Apache:

sudo systemctl restart apache2

4. 修复文件权限

确保Apache用户(www-data)能访问项目目录和虚拟环境:

sudo chown -R www-data:www-data /home/ubuntu/project
sudo chmod -R 755 /home/ubuntu/project

5. 临时开启调试模式排查(生产环境禁用)

修改/home/ubuntu/project/my_project/settings.py:

DEBUG = True
ALLOWED_HOSTS = ['*']  # 替换为你的服务器IP或域名

重启Apache后,访问页面会显示具体错误信息,确认问题是否解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:40:30