
以前、
これらの記事を投稿しました。
今回は、これらを組み合わせ、OpenLiteSpeedでFlaskを使えるようにしていきたいと思います。
(FastAPIはUvicornじゃないと動かないっぽいのでFlaskにしました。)
この記事が向いている人
- OpenLiteSpeedを使っている人
- PythonでAPIを作ってみたい人
用意するもの
- Ubuntu / Debian
- インストール済みOpenLiteSpeed(インストール方法はこちらから)
- Python3環境(3.5以上、pip)
実際にやってみる
必要なライブラリのインストール
sudo apt install build-essential
sudo apt-get install python3-dev
Pythonの拡張機能を構築するためのものをインストールします。
WSGIをインストール
Pythonのプログラムとリクエストの橋渡し的なものですね。
curl -O http://www.litespeedtech.com/packages/lsapi/wsgi-lsapi-2.1.tgz
tar xf wsgi-lsapi-2.1.tgz
cd wsgi-lsapi-2.1
python3 ./configure.py
make
cp lswsgi /usr/local/lsws/fcgi-bin/
仮想ホストを作る
[WebAdmin] > [仮想ホスト] を開き、[追加] をクリック。
そして以下のように入力していきます。

そして [コンテキスト] タブに移動&以下のように設定
URI = /
Location = $DOC_ROOT
Binary Path = <lswsgiまでのパス> (/usr/local/lsws/fcgi-bin/lswsgi)
Application Type = WSGI
(Environment = LS_PYTHONBIN=/srv/vhadm/venv/bin/python)
最終的には以下のようになります。

リスナーの作成
省略します。
Pythonファイル作成
まず仮想環境をセットアップします。
$DOC_ROOT
に入った状態で作業してください。
virtualenv -p python3 venv
source venv/bin/activate
which python
このコードでPythonのパスが$DOC_ROOT
以降になっていたらOKです。
この状態でFlaskをインストール
pip install flask
次に、$DOC_ROOT
にwsgi.py
を作成します。
#!<自分のドキュメントルートのパス>/env python
import sys
sys.path.insert(0, '<自分のドキュメントルートのパス>')
from app import app as application
また、$DOC_ROOT/app
には、__init__.py
を作成
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello Flask!"
これでライブラリとして読み込めるようにします。
その後所有権の変更
sudo chown -R nobody:nogroup <ドキュメントルートパス>
これで完了です。
アクセス
<IPアドレス>:<ポート>
にアクセスしてみてください。
成功すると、Hello Flask!
が表示されるはずです。
もしそうならない場合はサーバーの再起動などをしてみてください。(あとPythonのログの確認とか)
おわりに
いかがでしたでしょうか?
だらだらと書いてしまいすみません。
途中から何をしているのかわからなくなってきたためどこかおかしいところがあると思います。
疑問に思ったところがありましたらコメントでお教えください。
それでは快適なFlaskライフを!
さよなら~
参考にさせていただいた記事
Python LSAPI | Application Server | Configuration | OpenLiteSpeed Documentation | OpenLiteSpeed Documentation
Using Python WSGI Apps with LSAPI and OpenLiteSpeed

OpenLiteSpeed で Falcon を動かす
OpenLiteSpeed を使い、Python ウェブフレームワーク Falcon を 仮想環境 (virtualenv) 内で動かす方法を紹介
コメント