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

在Ubuntu16.04的Apache2服务器部署两个Django应用遇故障求助

解决Ubuntu 16.04 Apache2上Django应用pep_web无法访问的问题

咱们一步步排查你的问题,先从最容易忽略的基础配置开始:

1. 确认Apache是否监听8080端口

Apache默认只监听80端口,你需要手动配置让它监听8080:

  • 打开/etc/apache2/ports.conf文件,检查是否存在一行 Listen 8080,如果没有就添加进去。
  • 保存后重启Apache服务:sudo service apache2 restart
  • 验证监听状态:执行 netstat -tulpn | grep apache2,输出里应该能看到0.0.0.0:8080的条目,说明Apache正在监听这个端口。

2. 检查防火墙是否开放8080端口

Ubuntu 16.04默认使用ufw防火墙,可能拦截了8080端口的流量:

  • 开放8080端口:sudo ufw allow 8080/tcp
  • 查看防火墙状态确认生效:sudo ufw status,输出里应该有8080/tcp ALLOW Anywhere的记录。

3. 验证pep_web的文件路径与权限

Apache需要能读取你的Django应用文件和目录:

  • 先检查wsgi.py文件是否存在:ls -l /home/bic/pep_web/pep_learn/wsgi.py,确保路径完全正确(注意有没有拼写错误或大小写问题)。
  • 给目录添加遍历权限:sudo chmod 755 /home/bic/pep_web/pep_learn
  • 给wsgi.py文件添加读取权限:sudo chmod 644 /home/bic/pep_web/pep_learn/wsgi.py
  • 静态文件目录也要确保权限正确:sudo chmod -R 755 /home/bic/pep_web/protocol/static

4. 查看Apache错误日志定位具体问题

这是最直接的排查方式,能看到具体的错误原因:

  • 实时查看错误日志:sudo tail -f /var/log/apache2/error.log
  • 然后在浏览器尝试访问http://172.16.16.68:8080/pep_learn,观察日志里的输出——比如路径不存在、权限不足、Python依赖缺失等,根据日志信息针对性解决。

5. 确认WSGI守护进程的Python环境配置

如果你的pep_web用了虚拟环境,需要把虚拟环境的路径加到python-path里:

  • 假设虚拟环境在/home/bic/pep_web/venv,修改WSGIDaemonProcess配置为:
    WSGIDaemonProcess pep_web python-path=/home/bic/pep_web:/home/bic/pep_web/venv/lib/python2.7/site-packages:/usr/lib/python2.7/dist-packages
    
  • 修改后重启Apache生效:sudo service apache2 restart

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:27:54