Python 找不到WSGI应用程序-404
遵循本指南: 我无法配置“Hello World”WSGI应用程序(我没有在docroot安装,也没有委托给守护进程) 在我的ubuntu上。Python版本是2.6.5。 我相信mod_wsgi安装正确。 以下是我所做的:Python 找不到WSGI应用程序-404,python,apache2,mod-wsgi,wsgi,Python,Apache2,Mod Wsgi,Wsgi,遵循本指南: 我无法配置“Hello World”WSGI应用程序(我没有在docroot安装,也没有委托给守护进程) 在我的ubuntu上。Python版本是2.6.5。 我相信mod_wsgi安装正确。 以下是我所做的: 创建了一个user/home/wsgitest(我知道我们不应该这样做,但这只是为了测试) 将用户添加到组www数据中,这是apache2运行的基础: groups wsgitest wsgitest : wsgitest www-data 作为wsgitest,添加
- 创建了一个user/home/wsgitest(我知道我们不应该这样做,但这只是为了测试)
- 将用户添加到组www数据中,这是apache2运行的基础:
作为wsgitest,添加了显式读取文件夹的权限:groups wsgitest wsgitest : wsgitest www-data
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>
- 重新启动apache2并转到以下地址:
<ip-address>/application <ip-address>/application/
/应用程序 /应用/
- 已禁用该站点,并将以下内容放在文件/etc/apache2/apache2.conf的底部:
<Directory /home/wsgitest> Order allow,deny Allow from all </Directory> WSGIScriptAlias /application /home/wsgitetst/application.wsgi
命令允许,拒绝 通融 WSGIScriptAlias/application/home/wsgitetst/application.wsgi
- 重新启动apache并尝试再次导航,没有更改
- 尝试使用lynx和localhost,没有更改
- 已在apache2中启用日志记录信息级别。/var/log/apache2访问日志告诉我,请求得到了“404503”的响应,
这来自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 ''.
[Wed May 09 15:39:28 2012][info]mod_wsgi(pid=27914):附加解释器“”。 (...) [Wed May 09 15:39:32 2012][error][client]文件不存在:/var/www/application (...) [Wed May 09 15:39:28 2012][info]mod_wsgi(pid=27914):清理解释器“”。
有人能帮我确定问题吗?在application.wsgi中必须是应用程序可调用对象(区分大小写)
哦,不。我确实检查了三四遍,但还是有一个打字错误。 正如您在apache2.conf编辑(wsgitetst)中的WSGIScriptAlias声明中所看到的那样。
include配置仍然无法工作,但没关系。在Apache配置中添加一个语法错误,例如,在一行中单独添加“xxx”,然后尝试重新启动。查看Apache是否抱怨语法错误。这将确认正在读取的文件。然后观察,因为应该记录一条Apache错误消息,说明404发生的原因。该演示文稿中有一些示例。感谢您的帮助Graham,这可能在将来派上用场。感谢您的回复。我的/home/wsgitest/application.wsgi文件中确实有以下内容:def应用程序(环境,启动\响应):状态='200 OK'输出='Hello World!'响应标题=[('Content-type','text/plain'),('Content-Length',str(len(output))]开始响应(status,response_headers)返回[output]考虑通过写完整的句子来改进你的答案。
[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 ''.