目的
Python で動作するウェブフレームワーク、Falcon。
最速と謳っている。
https://falcon.readthedocs.io/en/stable/index.html
WSGI 経由で実行することができる。
OpenLiteSpeed は WSGI に対応している。
OpenLiteSpeed で実行させちゃおう。
手順
1. lswsgi をインストール
lswsgi は要は、OpenLiteSpeed 版の WSGI 実行バイナリ。
下記リンクの手順に従い、“Install WSGI” まで完了させてしまう。
https://openlitespeed.org/kb/python-wsgi-applications/
lsws の技術情報ページは古い場合が多いのでここから最新の lswsgi をダウンロードしよう。
https://www.litespeedtech.com/open-source/litespeed-sapi/download
2. 仮想環境と Falcon のインストール
|
|
3. wsgi.py スクリプトを作成
OpenLiteSpeed は wsgi.py を探して実行する。(設定で別のファイルに指定可能)。
また、wsgi.py 内の application
インスタンスを呼び出すので、wsgi ウェブインスタンスは application
という名前で定義しておく。
|
|
wsgi.py の中身はこれ ↓
|
|
4. lswsgi を設定
lsws の管理コンソールにアクセス。
サーバーもしくは仮想ホスト、どちらでも設定可能。
今回は仮想ホスト (vhost) の vhost root を /srv/vhadm
document root を /srv/vhadm/html
に設定して構築。
vhost Basic タブ
“Enable Scripts/ExtApps” は enabled にしておく。
vhost General タブ
vhost Context タブ
Context タブを開き、プラスのボタンを押し、App Server を選択して Next。
下記のように App Server を設定する:
URI = /
Location = $DOC_ROOT
Binary Path = <lswsgiまでのパス> eg: /usr/local/lsws/fcgi-bin/lswsgi
Application Type = WSGI
Environment = LS_PYTHONBIN=/srv/vhadm/venv/bin/python
変更を保存。
※ lsws 技術情報ページでは PYTHONPATH を Environment で指定しているがこれは無くてもいい。ちゃんと動く。
5. ファイルのパーミッションを確認
vhost Basic タブで External App Set UID Mode
が Not Set になっているので lsws のユーザーでスクリプトが実行される。
lsws ユーザーがファイルを読めるようにパーミッションを変更しておく。
自分の場合、lsws ユーザーは www-lsws
なので以下のように実行:
|
|
6. listener を設定して lsws をリスタート
7. 実行テスト
上記 wsgi.py スクリプトは “/things” しか受け付けていないので、下記URLをたたく:
http://<ホスト名>:<ポート>/things
“Hello World” が表示されれば成功。