【发布时间】:2012-05-18 02:07:36
【问题描述】:
遵循本指南:
http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide
我无法配置“Hello World”WSGI 应用程序(我没有挂载到 docroot,也没有委托给守护进程) 在我的 ubuntu 挤压。 Python 版本是 2.6.5。 我相信 mod_wsgi 安装正确。 这是我所做的:
- 创建了一个用户 /home/wsgtest(我知道我们不应该这样做,但这只是为了测试)。
-
将用户添加到组 www-data,这是 apache2 下运行的:
groups wsgitest wsgitest : wsgitest www-data作为 wsgitest,添加了明确读取文件夹的权限:
chmod -R g+rx wsgitest -
创建了一个与指南内容完全相同的 WSGI 应用程序脚本文件:
ls -la /home/wsgitest/ (...) -rw-r--r-- 1 wsgitest wsgitest 277 May 7 17:11 application.wsgi -
创建了一个应用程序配置文件:
cat /etc/apache2/sites-available/application.conf <VirtualHost *:80> WSGIScriptAlias /application /home/wsgitest/application.wsgi <Directory /home/wsgitest> Order allow,deny Allow from all </Directory> </VirtualHost>
(文件属于root:root)
-
启用网站:
ls -la /etc/apache2/sites-enabled/ (..) lrwxrwxrwx 1 root root 35 May 9 15:29 application.conf -> ../sites-available/application.conf -
重启apache2,进入如下地址:
<ip-address>/application <ip-address>/application/
给出 404。
-
禁用该站点并将以下内容放在文件 /etc/apache2/apache2.conf 的底部:
<Directory /home/wsgitest> Order allow,deny Allow from all </Directory> WSGIScriptAlias /application /home/wsgitetst/application.wsgi 重新启动 apache 并尝试再次导航,没有任何变化。
尝试使用 lynx 和 localhost,没有任何变化。
-
在 apache2 中启用日志信息级别。 /var/log/apache2 访问日志告诉我该请求以“404 503”回答, 这是来自error.log:
[Wed May 09 15:39:28 2012] [info] mod_wsgi (pid=27914): Attach interpreter ''. (...) [Wed May 09 15:39:32 2012] [error] [client <ip>] File does not exist: /var/www/application (...) [Wed May 09 15:39:28 2012] [info] mod_wsgi (pid=27914): Cleanup interpreter ''.
“other_vhosts_access.log”为空。
对我来说,请求似乎永远不会到达 wsgi 应用程序或者没有以某种方式路由...... 谁能帮我找出问题所在?
【问题讨论】:
-
在 Apache 配置中添加语法错误,例如 'xxx' 单独一行,然后尝试重新启动。查看 Apache 是否抱怨语法错误。这将确认正在读取的文件。然后观看code.google.com/p/modwsgi/wiki/…,因为应该记录了 Apache 错误消息,说明 404 发生的原因。该演示文稿中有示例。
-
感谢 Graham 的帮助,将来可能会派上用场。
标签: python apache2 mod-wsgi wsgi