FlaskのアプリケーションをApache上で動かす
Flask簡単で小さなアプリを作るには良い感じ☆
ってことでApacheで動かしてみることにしました
Apache上で動かすのにwsgiっていうのがあるしい
今回の環境は下記の通り
CentOS5.7
python 2.6.5
wsgiインストール
WSGIをソースからインストールします
cd/usr/local/src wget http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz tar xzvf mod_wsgi-3.3.tar.gz cd mod_wsgi-3.3 ./configure--with-python=/usr/bin/python make make install
ちゃんとインストールできたかはこれで確認
ls /etc/httpd/modules/mod_wsgi.so
ファイルがあればOKです
これでインストール完了!
テストを書いてみる
テストとして、/var/www/wsgiの下にflasktest.pyとflasktest.wsgiを準備します
flasktest.py
from flask import Flask app=Flask(__name__) @app.route('/') def index(): return 'Hello world.' if__name__=='__main__': app.run()
.confを書く
/etc/httpd/conf.d の下にwsgi.confを作る。
中身はこんな感じ
LoadModule wsgi_module modules/mod_wsgi.so WSGISocketPrefix run/wsgi <VirtualHost *> ServerName example.com WSGIDaemonProcess wsgi_flask user=apache group=apache threads=5 WSGIScriptAlias /wsgi /var/www/wsgi/flasktest.wsgi <Directory /var/www/wsgi> WSGIProcessGroup wsgi_flask WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all </Directory> </VirtualHost>
ここが結構はまった。
この2つの名前を同じにしとかないといけないらしい。
WSGIDaemonProcess 名前
WSGIProcessGroup 名前
公式ページのをパクって書き換え忘れてた。。。
Internal Server Error がずっと出てて、分かんねーと思って、ふとログをみると
[error] [client --------] No WSGI daemon process called 'example.com' has been configured: /var/www/wsgi/flasktest.wsgi
って書いてあってやっと気づいた。
ぅう(´・ω・`)