web-dev-qa-db-ja.com

mod_wsgiのHelloWorld

mod_wsgiを使用してApacheで実行するflaskアプリケーションを取得するための私の探求に繰り返し失敗した後、 hello world example を実行してみることにしました。私が持っています -

ディレクトリ構造(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 NotFoundエラーが発生します。私は何が間違っているのですか?本番サーバーにアプリをデプロイするのはこれが初めてです。これまで、私はGoogle AppEngineを簡単に使用する方法を採用していました。これが起動して実行されるまで、flaskアプリのデプロイに進むことができません。どうもありがとうございました!

16
Prakhar

絶対パスを使用する必要があります。つまり、~は使用しないでください。これは私にとってはうまくいきます...

[mpenning@tsunami 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>
[mpenning@tsunami public_html]$

まず、/etc/hostsにホスト名を設定しました。これにより、クエリでホスト名を多重化できるようになりました...

[mpenning@tsunami public_html]$ grep wsgihost /etc/hosts
127.0.1.1       tsunami.foo.net  tsunami wsgihost
[mpenning@tsunami public_html]$

Apacheを再起動し、wgetを発行します...

[mpenning@tsunami 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â

[mpenning@tsunami public_html]$ cat index.html
Hello World![mpenning@tsunami public_html]$ #  <------
12
Mike Pennington