LiteSpeedを使ってみよう

最近、『次世代共用サーバサービス』と謳ってCloudLinux + LiteSpeed + cPanelで構築したサーバを提供している会社が増えている
しかも、ストレージオールSSD+メモリ数百GB+Gbps回線で1,000円以下なんてのもざらにある

個人的にはそのスペックをその価格で提供できるカラクリを知りたいところだけど、教えてくれそうなところが無いので、とりあえずLiteSpeedは無料でも使えるOpenLiteSpeedというのがあるみたいなので使えるのか試してみる

openlitespeed.org


----- 環境
OS:CentOS 8.x
----------

1.インストールは公式サイトにリポジトリがあるので簡単

# dnf install http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el8.noarch.rpm
# dnf install openlitespeed

2.PHPもインストール
LiteSpeed用にパッケージングされてるlsphpってのがあるので、これをインストールする
epelのリポジトリも必要みたいなので、先にepelのリポジトリも使えるようにする
# dnf install epel-release

次にlsphpをインストールする。今回はこれを書いてる時に最新であるバージョン7.4をインストールする

# dnf install lsphp74 \
lsphp74-common \
lsphp74-mysql \
lsphp74-gd |
lsphp74-process \
lsphp74-mbstring \
lsphp74-xml \
lsphp74-mcrypt \
lsphp74-pdo \
lsphp74-imap \
lsphp74-soap \
lsphp74-bcmath

公式サイトにはここまでしか書いて無いが、必要なパッケージがあれば追加でインストールする
個人的にはpearも欲しいのでインストールする
# dnf install lsphp74-pear

インストールしてもLINKを張ってくれないのでフルパスで指定して実行しないと動かないlsphp74の場合は以下のパスで実行する

# /usr/local/lsws/lsphp74/bin/pear -h

無事にヘルプが表示されたらOK
適当にサーチとかしたらchannel-updateを実行しろってメッセージがあるので素直に更新する

# /usr/local/lsws/lsphp74/bin/pear channel-update pear.php.net

ちなみにpeclも同じところにあるので以下のコマンドでヘルプが表示される

# /usr/local/lsws/lsphp74/bin/pecl -h

3.OpenLiteSpeedの設定
ポート番号7080でアクセスすれば管理画面にアクセスができる
ちなみにポート番号8088でWEBサイトも表示可能

ただ・・・その前にログイン用の管理者ユーザの作成が必要なので、コマンドを実行して作成する

# /usr/local/lsws/admin/misc/admpass.sh

  ※ 管理者ユーザ名はデフォルトadminだけど、ここで変更する事が可能

さて、無事にログインが出来たなら設定をしよう

メニューを見ると「バーチャルドメイン」と「VHostテンプレート」がある
「バーチャルドメイン」の方は1つ1つ項目を埋めて設定する必要がある
「VHostテンプレート」を作成しておけば同じ設定のバーチャルドメイン設定を簡単に出来る
ただし、そのままテンプレート内で運用するとテンプレートの設定を変更すると紐づいたドメインが全て変更されてしまうので「インスタンス化」する必要がある
インスタンス化」する事でテンプレートに紐づいていたドメインが「バーチャルドメイン」に移動して個別で設定変更が出来るようになる

作成したドメインにアクセスしてみるが、表示されない・・・
firewalldで止めてたのでhttpとhttpsのサービスを許可する

# firewall-cmd --add-service=http --add-service=https --permanent
# firewall-cmd --reload

再び作成したドメインにアクセスするが表示されず・・・うーん
デフォルトではListenは8088でしていて80や443はListenしてない事が原因
「リスナー」メニューを開いて80と443ポートを追加してやる
443はSSL証明書の設定とか面倒なのでとりあえず80だけを設定w

リスナー名はラベルみたいなモノなのでわかりやすくしとく
IPアドレスはどこからのアクセスを許可するか?なのでANYのままにしておく
ポートはもちろん80
バインディングはとりあえず全部チェックしとけば間違いないかとw
セキュアはいいえにする。これを「はい」にするとSSL証明書の設定が必要

バーチャルホストマップがあるが、これは設定しなくても大丈夫な気がする・・・とりあえず作ったドメインでアクセスしてダメなら設定してみる事に・・・

設定内容や項目については別にまとめる事にする
今回、一番書いておきたかったPHP周りの設定について

まず、「基本」タブの「スクリプト/外部アプリを有効にする」を「はい」と設定しておかないとPHPが実行出来ない

次にlsphpのバージョン
テストした環境ではlsphp74をインストールしたが、OpenLiteSpeedをインストールした際にlsphp73がインストールされていてデフォルトはPHP 7.3系だった
サーバワイドで変更しても良いのだけど、今回は作成したドメインのみlsphp74を使えるようにする

作成したドメインの設定画面を開き「外部アプリ」タブを開く
基本的なところはサーバワイドの「外部アプリ」に登録されているlsphp73を参考にすればOK
変更したのはコマンドのパスのみ

これだけではダメで「スクリプトハンドラ」タブを開き、新規追加を行います
サフィックス」はPHP
「ハンドラタイプ」はLiteSpeed SAPI
「ハンドラ名」は[VHostレベル]:lsphp74
「ノート」は備考欄

これで設定したドメインPHPバージョンが7.4になっているか確認する

完璧!って思ったが、なぜかPHPのエラーがログに吐かれない

「一般」タブにある「php.ini Override」でエラーログを出力する設定を書いてやる必要がある
いくつかのサイトを見てみたが

php_flag log_error On
php_value error_log $VH_ROOTlogs/error.log

を追記すればOKって書いてあるが、これではエラーログは出力しない
実際にエラーログが出力したのは以下の2行を設定した場合

php_value error_log $VH_ROOTlogs/error.log
php_value error_reporting 22527

22527はApachePHPの設定を参考にした
lsphpではデフォルトが0(何も出力しない)となっているのでエラーが出ないっぽい

うーん、ちゃんとしたのはWiKiにまとめた方がいいかな・・・
-----

Zenfone 3がヘタってきたのでZenfone 6が欲しいなぁ・・・
Zenfone 7が出ても安くならないのだろうな(--;)