Вопрос по apache, mod-wsgi, wsgi, python – Привет, мир в mod_wsgi

16

После нескольких неудачных попыток запустить приложение фляги на Apache, используяmod_wsgi Я решил попробовать запуститьпривет мир пример, Вот что у меня есть -

Структура каталогов (я изменил Apache по умолчанию/var/www в~/public_html)

- public_html    
   - wsgi-scripts
      - test_wsgi.wsgi
   - test_wsgi
      - test_wsgi.wsgi

файл test_wsgi.wsgi

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]

Файл конфигурации VirtualHost (называемый testwsgi) - находится в/etc/apache2/sites-enabled/

<VirtualHost *:80>
    DocumentRoot ~/public_html/test_wsgi

    <Directory ~/public_html/test_wsgi>
        Order allow,deny
        Allow from all
    </Directory>

    WSGIScriptAlias /wsgi ~/public_html/wsgi-scripts/test_wsgi.wsgi

    <Directory ~/public_html/wsgi-scripts>
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

Когда я пытаюсьlocalhost/wsgi в браузере я получаю ошибку 404 Not Found. Что я делаю неправильно? Это первый раз, когда я пытаюсь развернуть приложение на рабочем сервере. До сих пор я использовал простой способ использования Google App Engine. Я не могу приступить к развертыванию моего приложения фляги, пока оно не заработало. Большое спасибо!

Ваш Ответ

1   ответ
12

Вам нужно использовать абсолютный путь, то есть не использовать~, Это прекрасно работает для меня ...

[[email protected] public_html]$ sudo cat /etc/apache2/sites-available/wsgi_test
<VirtualHost *:80>
    ServerName wsgihost
    DocumentRoot /home/mpenning/public_html
    WSGIScriptAlias / /home/mpenning/public_html/test.wsgi
</VirtualHost>
[[email protected] public_html]$

Сначала я установил имя хоста в/etc/hosts, так что я мог убедиться, что я могу mux на имя хоста в запросе ...

[[email protected] public_html]$ grep wsgihost /etc/hosts
127.0.1.1       tsunami.foo.net  tsunami wsgihost
[[email protected] public_html]$

Перезапустите apache и выполните команду wget ...

[[email protected] public_html]$ wget http://wsgihost/
--2012-08-29 05:50:26--  http://wsgihost/
Resolving wsgihost... 127.0.1.1
Connecting to wsgihost|127.0.1.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 12 [text/plain]
Saving to: âindex.html.3â

100%[======================================>] 12          --.-K/s   in 0s

2012-08-29 05:50:26 (1.48 MB/s) - âindex.html.3â

[[email protected] public_html]$ cat index.html
Hello World![[email protected] public_html]$ #  <------

Похожие вопросы