WordPress へようこそ。こちらは最初の投稿です。編集または削除し、コンテンツ作成を始めてください。
あらまし
Oracle Linux 9にOpenLiteSpeed Web Server(LSWS)をインストールした時の記録。
2023年8月現在、Oracle Linux 9にLSWSをインストールしようとするとリポジトリの追加時にエラーが発生します。これを回避するためには、リポジトリ追加用のシェルスクリプトを修正する必要があり、本記事では主にその手順について説明を行います。
環境
- Oracle Linux Server release 9.2
- LiteSpeed/1.7.17 Open
インストール手順
事前準備として拡張パッケージリポジトリ(EPEL)を有効化します。
dnf -y install epel-release
LSWSのリポジトリを追加します[1]。
curl -fsSL https://repo.litespeed.sh | sh
他のRHELクローンやOracle Linux 7, 8の場合、通常は上記操作でリポジトリが追加できます。しかし、Oracle Linux 9ではリポジトリ追加時に以下のエラーが生じ、そのままではリポジトリを追加できません。
Non-supported operating system: ol
エラーが発生する理由ですが、Oracle Linux 7, 8では/etc/os-releaseにID="oracle"がセットされていたのに対し、Oracle Linux 9ではID="ol"に変更されており、これがシェルスクリプト内のOS判定処理で弾かれています。
※LSWS側の更新が追いついていない様です
仕方ないので、リポジトリ追加用のシェルスクリプトを修正することで対応します。具体的には、シェルスクリプト内のOS判定処理で用いられている文字列oracleをolに書き換えてOS判定をパスできるようにします。
シェルスクリプトをダウンロードし、ファイル名litespeed.shで保存します。
curl -fsSL https://repo.litespeed.sh -o litespeed.sh
litespeed.sh内の文字列oracleをolに置換します。
sed -i s/oracle/ol/ litespeed.sh
書き換えたシェルスクリプトを実行してLSWSのリポジトリを追加します。
sh litespeed.sh
コンソールにComplete!と出力されれば、リポジトリの追加は完了です。
LSWS本体およびLSWS用のPHP8.2とその関連パッケージをインストールします。
dnf install -y openlitespeed lsphp82 lsphp82-gd lsphp82-imap lsphp82-mbstring lsphp82-mysqlnd lsphp82-opcache lsphp82-pdo lsphp82-process lsphp82-xml lsphp82-zip lsphp82-intl
別のリポジトリ追加方法(/etc/os-release側を編集)
上記の方法ではLSWSのシェルスクリプト側を編集しましたが、/etc/os-releaseのID="ol"をID="oracle"に書き換えることでもエラーを回避することが可能です。ただし、こちらの手順ではむやみに触るべきではないファイル(/etc/os-release)を操作することになるので、あまり良いやり方ではありません。/etc/os-releaseをバックアップした上で以下の様に編集します。
cp /etc/os-release /etc/os-release-backup
vim /etc/os-release
ID="ol"
↓修正
ID="oracle"
拡張パッケージリポジトリ(EPEL)の有効化を行い、LSWSのリポジトリを追加します。
dnf -y install epel-release
curl -fsSL https://repo.litespeed.sh | sh
リポジトリの追加が完了したら/etc/os-releaseを元に戻します。
mv /etc/os-release-backup /etc/os-release
初期設定
以後の初期設定は参考文献[1]などで紹介されている方法と特に変更はありませんが、PHP8.2に合わせて一部パス等が異なる箇所があるので備忘録として記載します。
初めに管理インターフェース用の初期パスワードを設定します。
/usr/local/lsws/admin/misc/admpass.sh
/usr/local/lsws/conf/httpd_config.confにPHP8.2用の設定を追記します。
vim /usr/local/lsws/conf/httpd_config.conf
以下を追記
extProcessor lsphp82{
type lsapi
address uds://tmp/lshttpd/lsphp82.sock
maxConns 10
env PHP_LSAPI_CHILDREN=10
env LSAPI_AVOID_FORK=200M
initTimeout 60
retryTimeout 0
persistConn 1
pcKeepAliveTimeout
respBuffer 0
autoStart 1
path $SERVER_ROOT/lsphp82/bin/lsphp
backlog 100
instances 1
priority 0
memSoftLimit 2047M
memHardLimit 2047M
procSoftLimit 1400
procHardLimit 1500
}
リスナーのポートを8088から80に変更します。
vi /usr/local/lsws/conf/httpd_config.conf
listener Default{
address *:8088
secure 0
map Example *
}
↓修正
listener Default{
address *:80
secure 0
map Example *
}
ファイヤーウォールに穴を開けて外部ホストからLSWSにアクセス可能とします。また、LSWSはHTTP/3をサポートしていますが、HTTP/3で通信するためにはQUIC(RFC9000)で使用するUDPについても許可する必要があります。HTTP/3を使用したい場合はUDPも併せて開けておきます。
firewall-cmd --zone=public --permanent --add-port=7080/tcp
firewall-cmd --zone=public --permanent --add-port=80/tcp
firewall-cmd --zone=public --permanent --add-port=80/udp
firewall-cmd --zone=public --permanent --add-port=443/tcp
firewall-cmd --zone=public --permanent --add-port=443/udp
firewall-cmd --reload
最後に、LSWSをサービスに追加して起動します。
systemctl enable --now lsws
起動後、https://[サーバのIPアドレス]:7080にアクセスすればLSWSのWeb管理用インターフェースに接続できます。
参考文献
[1] LiteSpeed Web Server を構築する(Rocky Linux 8, 9)
https://qiita.com/dxa/items/b7b5a9e1f8aa12b545e7

コメント