金子邦彦研究室プログラミングPython による Web アプリの見本(Dash, Flash を使用)WordPress (Ubuntu 上)で Python プログラムの実行結果を表示

WordPress (Ubuntu 上)で Python プログラムの実行結果を表示

前準備

WordPress のインストールが終わっていること

Ubuntu での WordPress のインストール手順は、 別ページで説明

インストール

  1. 端末を開く
  2. Python 3 処理系, apache2-dev のインストール
    sudo apt -y update
    sudo apt -y install python3 python3-dev python3-pip
    sudo apt -y install apache2-dev
    
  3. Python のパッケージ mod_wsgi, mod_wsgi-httpd のインストール (pip3 を使用)
    sudo pip3 install mod_wsgi
    sudo pip3 install mod_wsgi-httpd
    

    それぞれの実行後に、エラーメッセージが出ていないことを確認する

    [image]

/var/www/html/added/app/app.py の作成

ここでは、Flask を使ってみる

  1. python3-flask python3-simplejson のインストール
    sudo apt -y update
    sudo apt -y install python3-flask  python3-simplejson
    
  2. Flask のバージョン確認

    エラーメッセージが出なければ OK。

    python3 -c "import flask; print( flask.__version__ )"
    

    [image]
  3. 次のような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)
    

    [image]
  4. 動作確認

    次のコマンドを実行.

    python3 /var/www/html/added/app/app.py
    

    [image]
  5. Web ブラウザで、localhost:5000 を開く。次のような画面が出れば、動作OK

    確認したら、「python /var/www/html/added/app/app.py」は CTRL + C で終了

    [image]

mod_wsgi.so のロード

  1. 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
    

    [image]
  2. /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>
    

    [image]
  3. /etc/apache2/sites-available/added-wordpress.conf を書き換えたので Apache2 を再起動
    sudo systemctl restart apache2.service
    

    [image]
  4. Apache2 の動作確認

    Web ブラウザで http://localhost/added を開く。