Apache+mod_wsgi部署Django遇500内部服务器错误求助
解决Django + Apache + mod_wsgi部署的ModuleNotFoundError问题
1. 修正wsgi.py的路径配置
确保wsgi.py正确将项目根目录加入Python路径,示例配置如下:
import os import sys # 替换为你的实际项目根目录路径,用正斜杠或双反斜杠 sys.path.append('C:/your/project/root/path') # 若gis_api在项目根目录的上级目录,需额外添加该路径 # sys.path.append('C:/parent/directory/of/project') from django.core.wsgi import get_wsgi_application os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project_name.settings') application = get_wsgi_application()
2. 调整httpd.conf的核心配置
重点确保Python环境与项目路径关联正确,示例配置:
# 加载mod_wsgi模块,替换为你的实际模块路径 LoadModule wsgi_module "C:/path/to/mod_wsgi-4.9.4/pythonX/mod_wsgi.pyd" # 指定与开发环境一致的Python解释器 WSGIPythonHome "C:/path/to/your/python/env" # 同时添加项目根目录和Python包目录到路径 WSGIPythonPath "C:/your/project/root/path;C:/path/to/your/python/env/Lib/site-packages" # 绑定WSGI脚本入口 WSGIScriptAlias / "C:/your/project/root/path/your_project_name/wsgi.py" # 配置项目目录访问权限 <Directory "C:/your/project/root/path/your_project_name"> <Files wsgi.py> Require all granted </Files> </Directory> # 静态文件配置(按需添加) Alias /static/ "C:/your/project/root/path/static/" <Directory "C:/your/project/root/path/static/"> Require all granted </Directory>
3. 确认项目结构合规
你的项目需符合标准结构,且gis_api需被识别为Python模块:
project_root/ ├── your_project_name/ │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── gis_api/ │ ├── __init__.py # 必须存在,空文件即可 │ ├── admin.py │ ├── apps.py │ └── views.py ├── manage.py └── static/
4. 修复Apache权限问题
Windows下Apache默认用系统账户运行,需给项目根目录添加权限:
右键项目目录 → 属性 → 安全 → 添加账户NT SERVICE\Apache2.4,授予读取和执行权限。
5. 调试路径问题
可在wsgi.py中添加调试代码,输出当前Python路径辅助排查:
import os import sys # 输出路径到Apache错误日志 print("Current Python Path:", sys.path) # 原有wsgi代码...
重启Apache后查看error.log,确认项目根目录是否在输出路径中。
内容的提问来源于stack exchange,提问作者avdish
相关产品推荐
相关产品推荐

