この記事を書くにあたっての経緯
ubuntu20.04、apache2.4環境でwsgiを使おうといくつかのサイトを参考にしましたが、これだ!という記事が見つからず、試行錯誤してたらできたのでそれを共有しようと思います。
本編
1. 必要なもののインストール
必要なものはapache2とmod_wsgiです。まずはこれらをインストールします。
$ sudo apt install apche2
$ sudo apt install libapache2-mod-wsgi-py3
$ pip3 install mod_wsgi flask
今回はpython3を使うのでlibapache2-mod-wsgi-py3
を使います、python2を使う場合はlibapache2-mod-wsgi
を使ってください。間違えると動作しません。
2. プログラムを書こう!
pythonでプログラムを書いていきます。今回はflaskを使います。
# -*- coding: utf-8 -*-
from flask import Flask
app = Flask(__name__)
@app.route('/')
def get():
return "Hello wsgi!"
if __name__ == '__main__':
app.debug = True
app.run()
これともう一つpythonプログラムを書きます。
import sys,site
site.addsitedir('/home/user/.local/lib/python3.8/site-packages')
sys.path.insert(0,'/home/user/sample')
sys.path.append('/home/user/sample')
from sample import app as application
site.addsitedir()
にはpythonのsite-packagesの絶対パスを入れてください。分からない場合はターミナルでpip3 show mod_wsgi
と打つと調べられます。
プログラムの書き方についてはこの記事では割愛させていただきます。
3. apache2の設定ファイルを書こう!
次はapache2上でwsgiを使うための設定ファイルを書いていきます。
<VirtualHost *:80>
ServerName sample.com
ServerAlias www.sample.com
WSGIDaemonProcess root
WSGIScriptAlias / /home/user/sample/wsgi.py
<Directory /home/user/sample>
WSGIProcessGroup root
WSGIScriptReloading On
Require all granted
</Directory>
</VirtualHost>
sample.com
や各種パス、ユーザー(rootのところ)は適当なものに変更してください。
4. アクセスできることを確認して完了!
webブラウザでsample.com
にアクセスして確認しましょう。
最後に
この記事に書いてある内容は最低限動けばいいやというレベルです。もしかしたらいろいろとまずいことがあるかもしれません。