WordPress (Ubuntu 上)で Python プログラムの実行結果を表示
前準備
WordPress のインストールが終わっていること
Ubuntu での WordPress のインストール手順は、 別ページで説明
インストール
- 端末を開く
- Python 3 処理系, apache2-dev のインストール
sudo apt -y update sudo apt -y install python3 python3-dev python3-pip sudo apt -y install apache2-dev
- Python のパッケージ mod_wsgi, mod_wsgi-httpd のインストール (pip3 を使用)
sudo pip3 install mod_wsgi sudo pip3 install mod_wsgi-httpd
それぞれの実行後に、エラーメッセージが出ていないことを確認する
/var/www/html/added/app/app.py の作成
ここでは、Flask を使ってみる
- python3-flask python3-simplejson のインストール
sudo apt -y update sudo apt -y install python3-flask python3-simplejson
- Flask のバージョン確認
エラーメッセージが出なければ OK。
python3 -c "import flask; print( flask.__version__ )"
- 次のようなPython プログラムを/var/www/html/added/app/app.pyのようなファイル名で保存
# coding:utf-8 from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run(debug=True)
- 動作確認
次のコマンドを実行.
python3 /var/www/html/added/app/app.py
-
Web ブラウザで、localhost:5000 を開く。次のような画面が出れば、動作OK
確認したら、「python /var/www/html/added/app/app.py」は CTRL + C で終了
mod_wsgi.so のロード
- wsgi ファイルの作成
次のようなPython プログラムを/var/www/html/added/app/app.wsgiのようなファイル名で保存
* 「as application」は変えないように
# coding:utf-8 import sys sys.path.insert(0, '/var/www/html/added/app') from app import app as application
- /etc/apache2/sites-available/added-wordpress.conf の編集
次の太字のように設定してみる
LoadModule wsgi_module /usr/local/lib/python3.6/dist-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so WSGIPythonPath "/usr/lib/python3/dist-packages:/usr/local/lib/python3/dist-packages" <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/added ServerName hoge-client.com ServerAlias www.hoge-client.com WSGIScriptAlias / /var/www/html/added/app/app.wsgi <Directory /var/www/html/added> Options +FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/added-error.log CustomLog ${APACHE_LOG_DIR}/added-access.log combined </VirtualHost>
- /etc/apache2/sites-available/added-wordpress.conf を書き換えたので Apache2 を再起動
sudo systemctl restart apache2.service
- Apache2 の動作確認
Web ブラウザで http://localhost/added を開く。