【问题标题】:apache2 + django + mod_wsgi doesn't respondapache2 + django + mod_wsgi 没有响应
【发布时间】:2013-11-17 11:27:15
【问题描述】:

我正在尝试使用 apache2 + mod_wsgi 模块部署我的工作 django 应用程序。这是我的 apache 配置:

anton@ru:~$ cat /etc/apache2/sites-available/default
Alias /static/ /home/anton/mysite/static/

<Directory /home/anton/mysite/static>
Order deny,allow
Allow from all
</Directory>

WSGIScriptAlias / /home/anton/mysite/mysite/wsgi.py

<Directory /home/anton/mysite>
Order allow,deny
Allow from all
</Directory>

和WCGI配置:

anton@ru:~$ cat /home/anton/mysite/mysite/wsgi.py
import os
import sys
sys.path.append('/home/anton/mysite')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

使用调试输出 (print 'bla-bla') 我发现 wsgi.py 有效。但是然后http请求没有得到apache的任何响应。你能帮我理解为什么吗?谢谢!

更新: 我已经像这样打开了日志:

ErrorLog /home/anton/error.log
CustomLog /home/anton/custom.log combined

以下是重新加载服务时错误日志中发生的情况:

[Wed Nov 06 05:43:14 2013] [notice] Graceful restart requested, doing restart
[Wed Nov 06 05:43:14 2013] [warn] NameVirtualHost *:80 has no VirtualHosts
[Wed Nov 06 05:43:14 2013] [warn] mod_wsgi: Compiled for Python/2.7.2+.
[Wed Nov 06 05:43:14 2013] [warn] mod_wsgi: Runtime using Python/2.7.3.
[Wed Nov 06 05:43:14 2013] [notice] Apache/2.2.22 (Debian) mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations

请求“mysite.com/”时,error.log 和 custom.log 中没有任何反应。静态数据有效:

85.141.191.57 - - [06/Nov/2013:05:44:37 -0500] "GET /static/main.css HTTP/1.1" 304 213 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36"
85.141.191.57 - - [06/Nov/2013:05:44:38 -0500] "GET /static/main.css HTTP/1.1" 304 212 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36"

解决方案: 这里的问题是 python 版本与编译的 python mod_wsgi 版本不匹配。我从源代码构建了 mod_wsgi,这解决了我的问题。

【问题讨论】:

  • 开启 Apache 访问和错误日​​志。然后查看日志以获取可能为您的错误提供线索的信息。
  • 谢谢,奥斯汀!我已经更新了帖子。你能看一下吗?
  • 看不到任何明显的错误。检查是否有 /home/anton/mysite/mysite/__init__.py 文件,因为 Django 的设置可导入需要此文件。
  • 是的,谢谢,但它已经在那里了。
  • Python 补丁级别差异通常无关紧要。唯一的情况是您的 Python 安装未安装共享库。

标签: django apache mod-wsgi


【解决方案1】:

尝试添加:

WSGIApplicationGroup %{GLOBAL}

为什么要阅读:

一般也推荐使用mod_wsgi守护模式。

虽然这不应该是这里的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-10
    • 2021-01-30
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 2014-07-28
    • 2017-03-03
    • 2016-06-06
    相关资源
    最近更新 更多