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

なお、VPS選びで迷ったら、こちらの記事で主要VPSのメモリ容量ごとの月額、年額料金を比較していますので、是非参考にしてみてください。

Pythonに戻る

このページのトップに戻る