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

无法使Django-CMS与Apache及mod_wsgi协同运行

解决Django-CMS Apache WSGI部署的权限与路径问题

问题背景

  • 环境:Ubuntu 24.04 全新安装,Python 3.12,Django-CMS最新版本,虚拟环境部署
  • 现象:Django-CMS通过runserver可正常运行,但配置Apache虚拟主机后无法访问,日志持续报错

核心错误分析

从Apache错误日志可定位三个关键问题:

  1. 权限不足:Apache进程无法访问虚拟环境目录,提示Permission denied: mod_wsgi ... Unable to stat Python home /home/mark/.virtualenvs/impact_lab_partners
  2. 路径拼写错误:WSGI脚本路径中impact_lab_parthers是拼写错误,应为impact_lab_partners
  3. 冗余引号干扰:静态文件别名配置中多余的转义引号可能导致路径解析异常

修复步骤

1. 修正WSGI脚本路径拼写错误

找到虚拟主机配置中的WSGIScriptAlias行,将错误的impact_lab_parthers改为正确的impact_lab_partners:

WSGIScriptAlias / ${impact_lab_partners_path}/impact_lab_partners/wsgi.py process-group=ilp

2. 解决虚拟环境权限问题

Apache默认以www-data用户运行,需确保该用户能访问虚拟环境及上级目录:

方法一:快速开放权限(测试用)

# 给用户家目录添加执行权限,让www-data能进入
chmod o+x /home/mark
# 给虚拟环境目录添加读/执行权限
chmod -R o+rx /home/mark/.virtualenvs/impact_lab_partners

方法二:用户组授权(更安全)

# 将www-data加入mark用户组
sudo usermod -aG mark www-data
# 给家目录添加组执行权限
chmod g+x /home/mark
# 给虚拟环境目录添加组读/执行权限
chmod -R g+rx /home/mark/.virtualenvs/impact_lab_partners

3. 清理静态文件别名的冗余引号

修正虚拟主机配置中Alias和Directory的冗余转义引号:

Alias /static /home/mark/Documents/impact_lab_partners/do_not_change/static
<Directory /home/mark/Documents/impact_lab_partners/do_not_change/static>
    Require all granted
</Directory>

Alias /documents /home/mark/Documents/impact_lab_partners/do_not_change/documents
<Directory /home/mark/Documents/impact_lab_partners/do_not_change/documents>
    Require all granted
</Directory>

4. 重启Apache服务

sudo systemctl restart apache2

验证

  • 查看Apache错误日志,确认无权限及模块错误:
    tail -f /var/log/apache2/error.log
    
  • 访问网站域名,确认Django-CMS可正常加载

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 19:28:11