Oracle Linux 9へのOpenLiteSpeed Web Serverのインストール方法

Linux

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-releaseID="oracle"がセットされていたのに対し、Oracle Linux 9ではID="ol"に変更されており、これがシェルスクリプト内のOS判定処理で弾かれています。
※LSWS側の更新が追いついていない様です

仕方ないので、リポジトリ追加用のシェルスクリプトを修正することで対応します。具体的には、シェルスクリプト内のOS判定処理で用いられている文字列oracleolに書き換えてOS判定をパスできるようにします。
シェルスクリプトをダウンロードし、ファイル名litespeed.shで保存します。

curl -fsSL https://repo.litespeed.sh -o litespeed.sh

litespeed.sh内の文字列oracleolに置換します。

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-releaseID="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

コメント