RaspberryPi 2B で、 Flask アプリを Apache2 + wsgi でデプロイする。
将来的に、そのアプリで RaspberryPi のハードウェアを制御する。
Python 3 用の apache2 mod-wsgi をインストールする。Python 2 用の mod-wsgi が入っていたらアンインストールする。
$ sudo a2dismod wsgi $ sudo apt remove libapache2-mod-wsgi$ sudo apt install apache2 $ sudo apt install libapache2-mod-wsgi-py3 $ sudo a2enmod wsgi $ sudo systemctl restart apache2
Flask app のディレクトリを作成する。
pi@raspberrypi:~ $ mkdir flask pi@raspberrypi:~ $ cd flask pi@raspberrypi:~/flask $ mkdir templates pi@raspberrypi:~/flask $ mkdir static
flask/my_app.py を作成する。
pi@raspberrypi:~/flask $ nano my_app.py
from flask import Flask
import sys
app = Flask(__name__)
@app.route('/')
def hello_world():
msg = 'Hello Flask ' + sys.version
return msg
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
flask.conf を作成する。
$ sudo nano /etc/apache2/sites-available/flask.conf
<VirtualHost *:80>
ServerName 0.0.0.0
WSGIDaemonProcess my_app user=pi group=pi threads=5
WSGIScriptAlias / /home/pi/flask/my_app.wsgi
<Directory /home/pi/flask/>
WSGIProcessGroup my_app
WSGIApplicationGroup %{GLOBAL}
WSGIScriptReloading On
Require all granted
</Directory>
</VirtualHost>
wsgi ファイルを作成する。
$ nano ~/flask/my_app.wsgi
import sys sys.path.insert(0, '/home/pi/flask/') from my_app import app as application
デフォルトのサイト 000-default を外して、先ほどの flask.conf を有効化する。
$ sudo a2dissite 000-default $ sudo a2ensite flask $ sudo systemctl reload apache2
確認。
$ curl http://localhost Hello Flask 3.7.3 (default, Jul 25 2020, 13:03:44)
他のパソコンなどからも同様に表示される。
0 件のコメント:
コメントを投稿