目次
1.概要
今回はVagrantを用意して、その中にFlaskアプリケーションの開発閑居を作成してこうと思います。
以下すべてroot権限で実施
2.pipのインストール
以下のコマンドを実行してpipをインストールします。
3.virtualenvとvirtualenvwrapperのインストール
pipをインストールしたら以下のpipコマンドでvirtualenvとvirtualenvwrapperをインストールします。
$ pip install virtualenv virtualenvwrapper
3-1.virtualenv用のディレクトリを作成
※今回はvagrantの共有フォルダ内に作成
$ mkdir flask
3-2.virtualenvの作成
$ virtualenv --no-site-packages flask
3-3.virtualenvの起動方法と停止方法
起動
$ source bin/activate
停止
$ deactivate
あとは、仮想環境の中にプロジェクトを作成する。
4.mod_wsgiのインストール
4-1.mod_wsgi.soの場所
/etc/httpd/modules
4-2.wsgiファイルの作成
/vagrant/project/flask/app
4-3.wsgiファイルの中身
# -*- coding:utf-8 -*-
import sys, os
import logging
# apacheのログに出すために必要
logging.basicConfig(stream = sys.stderr)
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
from main import app as application
4-4.起動ファイルの中身
/vagrant/project/flask/app/main.py
import os
from flask import Flask, render_template
from jinja2 import FileSystemLoader
app = Flask(__name__)
app.jinja_loader = FileSystemLoader(
os.path.join(os.path.abspath(os.path.dirname(__file__)), 'templates')
)
@app.route("/")
def index():
return render_template('index.html')
@app.route("/foo")
def foo():
return "foo"
@app.route("/foo/bar")
def foo_bar():
return "foobar"
if __name__ == "__main__":
app.run(host='0.0.0.0')
4-5.htmlファイルの中身(今回はサンプルなので、、、)
/vagrant/project/flask/app/templates/index.html
hogehoge
4-6. ApacheのVirtualHostの設定ファイル
/etc/httpd/conf./flask.conf
## mod_wsgi
WSGIPythonHome /usr/bin/python2.7
WSGISocketPrefix /var/run/wsgi
<VirtualHost *:5000>
<Directory /vagrant/project/flask/app>
Options +ExecCGI
SetHandler wsgi-script
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
5.Flaskアプリの起動
main.pyのあるディレクトリ内で下記のコマンドを叩く
$python main.py
6.Tips
.confの設定でapache側でエラーが出ている場合は、以下のコマンドでエラー詳細が確認できる。
http -t
以上