Ubuntu + Apache環境でのFlaskの連携設定
カテゴリ:Python

本記事の対象OS:Ubuntu
以下では、Ubuntu で WSGI (Web Server Gateway Interface) を使用して Apache と Flask と連携する手順について解説します。
Python関連のインストール
# apt install python3-dev python3-pip # pip3 install Flask
Apache関連のインストール
# apt install apache2 # apt install libapache2-mod-wsgi-py3
Apacheの設定
1. /etc/apache2/sites-available配下にflask.confファイルを作成し、000-default.confファイルをリネームします。
実施後の状態:
# pwd /etc/apache2/sites-available # tree -l . ├── 000-default.conf.back ├── default-ssl.conf └── flask.conf
2. flask.confを設定します。
設定例)
<VirtualHost *:80>
ServerName localhost
WSGIDaemonProcess flask_app user=www-data group=www-data threads=5
WSGIScriptAlias / /var/www/flask/wsgi.py
<Directory /var/www/flask>
WSGIProcessGroup flask_app
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Noteこの設定例ではFlask用のディレクトリを /var/www/flask としています。環境によって読み替えてください。
3. /var/www/flask/のユーザー、グループをwww-dataに変更します。
# chown -R www-data:www-data /var/www/flask/
4. flask.confを有効化します。
# a2ensite flask
WSGIの設定
1. /var/www/flask配下にwsgi.pyファイルを作成します。
実施後の状態:
# pwd /var/www/flask # tree -l . ├── app.py └── wsgi.py
2. wsgi.pyに以下のようにコードを記述します。
Note以下の例ではPythonアプリケーションとしてappパッケージからappオブジェクトをインポートしています。
例)
import os,sys
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
from app import app as application
app.py(Pythonアプリケーション)のサンプル:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
name = "Hello World!"
return name
if __name__ == "__main__":
app.run()
サンプルページ:

公開日時:2022年07月15日 12:20:58
最終更新日時:2022年07月16日 09:50:27