1. 概要
「mod_wsgi」を使うのは、「php」のモジュールを「mod_php」で動かすのと同じようなもんですな。
試してみます。
2. インストール
「FreeBSD 15.0 RELEASE」へ組み込みます。
「root」ユーザ権限で。
cd /usr/ports/www/mod_wsgi
オプションはありません。
make NO_DIALOG=yes
make install
3. apache 設定
「root」ユーザ権限で。
vi /usr/local/etc/apache24/httpd.conf
LoadModule alias_module libexec/apache24/mod_alias.so
#LoadModule rewrite_module libexec/apache24/mod_rewrite.so
LoadModule php_module libexec/apache24/libphp.so
の後ろあたりに、下記の行を追加します。
LoadModule wsgi_module libexec/apache24/mod_wsgi.so
プロジェクトルートを。
/usr/local/www/flask
として。
あらかじめ、ディレクトリのみは作成しておいて。
vi /usr/local/etc/apache24/Includes/flask.conf
下記を記述します。
(ファイル名はなんでもいいですが、証明書ファイルやログファイルの記述は、適宜書き換えてください。)
Listen 443
<VirtualHost _default_:443>
SSLEngine on
SSLCertificateFile "/etc/ssl/demoCA/cert.pem"
SSLCertificateKeyFile "/etc/ssl/demoCA/nokey.pem"
SSLCACertificateFile "/etc/ssl/demoCA/cacert.pem"
WSGIDaemonProcess flask user=www group=www threads=5
WSGIScriptAlias /flask /usr/local/www/flask/adapter.wsgi
<Directory /usr/local/www/flask>
Options FollowSymLinks
AllowOverride None
WSGIProcessGroup flask
WSGIApplicationGroup %{GLOBAL}
<RequireAll>
Require all granted
</RequireAll>
</Directory>
ErrorLog "/var/log/www/error.log"
CustomLog "/var/log/www/access.log" combined
</VirtualHost>
4. コンテンツ作成
コンテンツを作成します。
プロジェクト所有者権限で。
vi /usr/local/www/flask/app.py
下記を記述します。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello, World with mod_wsgi!"
if __name__ == "__main__":
app.run()
vi /usr/local/www/flask/adapter.wsgi
下記を記述します。
import sys
import os
sys.path.insert(0, '/usr/local/www/flask')
from app import app as application
5. 確認
「root」ユーザ権限で。
設定を確認して。
service apache24 configtest
「apache」を再起動。
service apache24 restart
ブラウザで。
https://server_name/flask/
にアクセスして、下記のように表示されれば成功です。