何かの役に立つかもしれないので、「JSON」のチェックをいれておきます。
make NO_DIALOG=yes
make install
「make」は、速いですが、わけわからないメッセージがわらわらと表示されました。
インストール時のメッセージを残しておきます。
===> Installing for uwsgi-py311-2.0.31
===> Checking if uwsgi-py311 is already installed
===> Registering installation for uwsgi-py311-2.0.31
Installing uwsgi-py311-2.0.31...
===> Creating groups
Creating group 'uwsgi' with gid '165'
===> Creating users
Creating user 'uwsgi' with uid '165'
3. uwsgi 設定
プロジェクトルートを。
/usr/local/www/flask
として、「uwsgi」のコンフィグレーションファイルを作成します。
mkdir -pv /usr/local/www/flask
vi /usr/local/www/flask/uwsgi.ini
下記を記述します。
[uwsgi]
chdir = /usr/local/www/flask
mount = /=app:app
manage-script-name = true
socket = /tmp/uwsgi.sock
chmod-socket = 666
master = true
processes = 5
vacuum = true
die-on-term = true
logto = /var/log/www/uwsgi.log
2行目は、「flask」のアプリケーションの場所を定義しています。
4、5行目は、実行ファイル名と、「flask」のインスタンス名を定義しています。
7、8行目は、「apache」との通信に使用するソケットの定義です。
10、11行目は、プロセス管理を定義しています。
12、13行目は、終了時にソケットファイルをクリアする定義を行っています。
15行目は、ログファイルの定義を行っています。
「uwsgi」のプロセス定義を行います。
sysrc uwsgi_enable="YES"
sysrc uwsgi_profiles="flaskapp"
sysrc uwsgi_flaskapp_enable="YES"
sysrc uwsgi_flaskapp_configfile="/usr/local/www/flask/uwsgi.ini"
sysrc uwsgi_flaskapp_logfile="/var/log/www/uwsgi.log"
起動します。
service uwsgi start
Processing uwsgi profile: flaskapp
Starting uwsgi.
[uWSGI] getting INI configuration from /usr/local/www/flask/uwsgi.ini
4. apache 設定
「root」ユーザ権限で。
vi /usr/local/etc/apache24/httpd.conf
LoadModule proxy_module libexec/apache24/mod_proxy.so
#LoadModule proxy_connect_module libexec/apache24/mod_proxy_connect.so
#LoadModule proxy_ftp_module libexec/apache24/mod_proxy_ftp.so
#LoadModule proxy_http_module libexec/apache24/mod_proxy_http.so
LoadModule proxy_fcgi_module libexec/apache24/mod_proxy_fcgi.so
#LoadModule proxy_scgi_module libexec/apache24/mod_proxy_scgi.so
#LoadModule proxy_uwsgi_module libexec/apache24/mod_proxy_uwsgi.so
129、135行目(proxy_module、proxy_uwsgi_module)が有効であることを確認します。
上記の場合は、135行目がコメント化されていますので、先頭の「#」を削除して、有効化します。
末尾の方にある。
Include etc/apache24/extra/httpd-ssl.conf
をコメントアウトします。
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"
ProxyPass /flask/ unix:/tmp/uwsgi.sock|uwsgi://localhost/
ProxyPassReverse /flask/ unix:/tmp/uwsgi.sock|uwsgi://localhost/
Redirect permanent /flask /flask/
ErrorLog "/var/log/www/error.log"
CustomLog "/var/log/www/access.log" combined
</VirtualHost>
5. コンテンツ作成
コンテンツを作成します。
プロジェクト所有者権限で。
vi /usr/local/www/flask/app.py
下記を記述します。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello, World with uwsgi!"
if __name__ == "__main__":
app.run()
6. 確認
「root」ユーザ権限で。
設定を確認して。
service apache24 configtest
「apache」を再起動。
service apache24 restart
ブラウザで。
https://server_name/flask/
にアクセスして、下記のように表示されれば成功です。