在Apache上使用WSGI为目录设置Python

时间:2013-01-19 02:08:42

标签: python python-2.7 mod-wsgi wsgi

我正在尝试使用WSGI为Apache上的特定目录设置Python,但是我收到以下错误:

mod_wsgi (pid=3857): Target WSGI script '/var/www/test/test.py' does not contain WSGI application 'application'.

我的test.py包含:

print 'Hello, World!'

我的wsgi.conf包含:

LoadModule wsgi_module modules/mod_wsgi.so

WSGIPythonHome /usr/local/bin/python2.7

Alias /test/ /var/www/test/test.py

<Directory /var/www/test>
    SetHandler wsgi-script
    Options ExecCGI
    Order deny,allow
        Allow from all
</Directory>

最重要的是,有趣的是,Web浏览器返回“404 Not Found”错误,但幸运的是error_log更具启发性。

我做错了什么?

1 个答案:

答案 0 :(得分:13)

你正在使用WSGI,好像它是CGI(奇怪的是没有标题)。

您需要做的是,针对您的直接问题,请调整http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide

中的以下内容
def application(environ, start_response):
    status = '200 OK'
    output = 'Hello World!'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

这样你就可以application出现。

来自参考文献。

  

请注意,mod_wsgi要求WSGI应用程序入口点为   称为“应用程序”。如果你想把它称为别的东西那么你   需要显式配置mod_wsgi以使用其他名称。   因此,不要随意更改函数的名称。如果你   即使您正确设置其他所有应用程序也会这样做   找不到。