我的问题基于下面链接的问题。我有完全一样的问题。但是建议的修复方法对我不起作用。
为什么我的 Django 安装提供了一个空的 HTTP 响应?
下面是我已经尝试过的项目列表。
- 删除 /etc/apache2/mods-enabled /etc/apache2/mods-available 目录中的 mod_python 加载文件
- 删除 /etc/apache2/mods-enabled 和 /etc/apache2/mods-available 目录中的 PHP4_Load 文件
在 /etc/apache2/mods-enabled、/etc/apache2/mods-available 和 etc/apache2 目录中查找“mod_python”、“python_module”,但没有找到更多引用。
在 django.wsgi 文件中测试了“Hello world”示例,它工作正常。
检查 apache 错误日志。输出如下。没有错误,并且似乎创建了一个解释器。
[2013 年 8 月 5 日星期一 15:32:31] [info] mod_wsgi (pid=9246):创建解释器“www.example.com|”。
- Ran apache2ctl -M 结果如下。
- 冉加载模块:
- 核心模块(静态)
- log_config_module(静态)
- logio_module(静态)
- mpm_prefork_module(静态)
- http_module(静态)
- so_module(静态)
- 别名模块(共享)
- auth_basic_module(共享)
- authn_file_module(共享)
- authz_default_module(共享)
- authz_groupfile_module(共享)
- authz_host_module(共享)
- authz_user_module(共享)
- 自动索引模块(共享)
- deflate_module(共享)
- dir_module(共享)
- env_module(共享)
- mime_module(共享)
- 协商模块(共享)
- reqtimeout_module(共享)
- setenvif_module(共享)
- status_module(共享)
- wsgi_module(共享)
- 语法OK
我仍然收到空白页响应(除非启用了 hello world)。
对此还有什么建议吗?我可以在其他任何地方寻找 mod_python 加载吗?
django.wsgi 文件
#/usr/bin/python
import os
import sys
import django.core.handlers.wsgi
paths = ('/var/www/example.com/django/mysite',)
for path in paths:
if path not in sys.path:
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
application = django.core.handlers.wsgi.WSGIHandler()
django.wsgi hello world 示例(启用时)
def application(environ, start_response):
status='200 OK'
output='Hello Yall'
print >> environ['wsgi.errors'], "application debug #1"
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
if environ['wsgi.url_scheme'] == 'https':
environ['HTTPS'] = 'on'
start_response(status, response_headers)
print >> environ['wsgi.errors'], "application debug #2"
return [output]
阿帕奇文件
<VirtualHost *:80>
ServerName example.com
ServerAlias example.com
ServerAlias example.com
ServerAdmin example@example.com
DocumentRoot /var/www/example.com
<Directory /var/www/example.com>
Order allow,deny
Allow from all
</Directory>
WSGIScriptAlias / /var/www/example.com/django/mysite/apache/django.wsgi
<Directory /var/www/example.com/django/mysite/apache>
Order allow,deny
Allow from all
</Directory>
</VirtualHost>