Настройка Python с WSGI на Apache для каталога

Я пытаюсь настроить Python с WSGI для определенного каталога на Apache, но я получаю следующую ошибку:

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

My 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>

Кроме всего прочего, достаточно интересно, веб-браузер возвращает ошибку "404 Not Found", но, к счастью, error_log немного интереснее.

Что я делаю неправильно?

1 ответ

Вы используете 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 для использования другого имени. Таким образом, не произвольно меняйте имя функции. если ты сделайте, даже если вы настроите все остальное правильно, приложение будет не найдено.

licensed under cc by-sa 3.0 with attribution.