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アプリのデプロイに進むことができません。どうもありがとうございました!
絶対パスを使用する必要があります。つまり、~
は使用しないでください。これは私にとってはうまくいきます...
[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]$ # <------