部署Django应用至Apache2出现403 Forbidden及mod_wsgi权限拒绝错误
Django+Apache部署403禁止访问错误修复方案
核心错误定位
你日志中两个关键报错直接指向问题根源:
(13)Permission denied: mod_wsgi (pid=35891): Unable to stat Python home /home/hbm/hbm_project/venv.
ModuleNotFoundError: No module named 'encodings'
问题出在两处:Apache运行用户无虚拟环境目录访问权限、现有WSGI配置存在语法截断。
修复步骤
修复WSGI配置语法错误
你当前hbm_project.conf中的WSGIDaemonProcess行内容被截断,且没有指定运行进程的用户组,替换该行内容为:WSGIDaemonProcess hbm_app python-home=/home/hbm/hbm_project/venv python-path=/home/hbm/hbm_project user=hbm group=hbm配置指定用你项目所属的hbm用户运行WSGI进程,从根源避免跨用户权限问题。
修正目录访问权限
执行以下命令确保路径可被正常访问:# 允许其他用户遍历你的home目录 chmod o+x /home/hbm # 确认项目及虚拟环境归属正确用户 chown -R hbm:hbm /home/hbm/hbm_project # 给虚拟环境授予必要的读、执行权限 chmod -R 755 /home/hbm/hbm_project/venv校验mod_wsgi版本匹配
若执行上述操作后仍报错,说明你安装的mod_wsgi版本和虚拟环境的Python3.9版本不匹配,执行命令重装匹配版本:apt remove -y libapache2-mod-wsgi* apt install -y libapache2-mod-wsgi-py3 a2enmod wsgi重启Apache生效配置
systemctl restart apache2
内容的提问来源于stack exchange,提问作者PatrickPel
相关产品推荐
相关产品推荐

