Apache+Django配置下持续出现403 Forbidden错误求助
Django + Apache 访问失败问题解决
核心问题定位
从Apache错误日志的关键报错AH01630: client denied by server configuration: /home/sullivan/webapp/webapp-proto/appback/wsgi.py可以看出,Apache未被授权访问指定的wsgi.py文件,同时配置中存在路径不匹配的问题。
具体修复步骤
1. 修正Directory配置路径
当前虚拟主机配置里的<Directory>指向/home/sullivan/webapp/webapp-proto/webapp/appback/,但wsgi.py实际位于/home/sullivan/webapp/webapp-proto/appback/,路径不匹配导致权限规则未覆盖目标文件。修改虚拟主机配置:
<VirtualHost *:80> ServerName localhost WSGIDaemonProcess webapp_prod python-home=/home/sullivan/venv python-path=/home/sullivan/webapp/webapp-proto/ WSGIProcessGroup webapp_prod WSGIScriptAlias / /home/sullivan/webapp/webapp-proto/appback/wsgi.py # 修正为wsgi.py所在的目录 <Directory /home/sullivan/webapp/webapp-proto/appback/> Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
2. 补全wsgi.py所在目录的权限
你仅给webapp目录设置了权限,但wsgi.py所在的appback目录不在此范围内,执行以下命令补全权限:
# 递归设置目录权限为755,文件权限为644 sudo chmod -R 755 /home/sullivan/webapp/webapp-proto/appback/ sudo chmod -R 644 /home/sullivan/webapp/webapp-proto/appback/*.py # 将目录及文件的所属组设置为www-data sudo chown -R :www-data /home/sullivan/webapp/webapp-proto/appback/
3. 修正Python路径配置
WSGIDaemonProcess中的python-path需指向Django项目根目录(即包含appback模块的目录),原配置路径过深,修改为:
WSGIDaemonProcess webapp_prod python-home=/home/sullivan/venv python-path=/home/sullivan/webapp/webapp-proto/
4. 重启Apache生效配置
sudo systemctl restart apache2
内容的提问来源于stack exchange,提问作者NatNat
相关产品推荐
相关产品推荐

