gepuro.net
gepulog

データ分析エンジニアによる備忘録的ブログ

Python3のFlaskをwsgiで動かす

自分の環境ではdocker上で動かしていましたが、本筋には影響を与えないので省略します。

Flaskのドキュメントであるmod_wsgi (Apache)に書いてあるし、Python2の頃は試したことあるから、余裕だろうと油断していた。

sudo apt-get install -y apache2 \
    apache2-mpm-prefork \
    apache2-utils \
    libexpat1 \
    ssl-cert \
    libapache2-mod-wsgi-py3

上のようにインストールした。 また、

/etc/apache2/sites-available/000-default.conf を

<VirtualHost *:80>
ServerName example.com
WSGIDaemonProcess app user=www-data group=www-data
WSGIScriptAlias / /app/app.wsgi
<Directory /app>
WSGIProcessGroup app
WSGIApplicationGRoup %{GLOBAL}
# Order deny,allow
# Allow from all
Require all granted
</Directory>
</VirtualHost>

にします。dockerで動かすだけなので、ファイルを直に編集しています。

ハマりポイント1

libapache2-mod-wsgi-py3をインストールする。

パッケージ名から想像できるが、wsgiはPython3とPython2系で異なる。

ハマりポイント2

apacheの設定では、 Require all grantedを使う。

Python2系では、 Order deny,allow Allow from all で良かった。

http://stackoverflow.com/questions/30642894/getting-flask-to-use-python3-apache-mod-wsgiに救われました。

ちなみにPyttho2系の時は、Flaskでhttpsを使うに書きましたので参考にどうぞ。


似てる記事

似てない記事