Open LiteSpeed でWebサーバーを構築する（Rocky Linux）

# はじめに



LiteSpeed には下記の呼び方がありますが、ここでは **LiteSpeed** もしくは **LSWS** と表記します。

* LiteSpeed Web Server （有料ライセンス版を含む正式な呼称）
* LSWS （上記を略した呼称）
* OpenLiteSpeed （OSS版のみを指す呼称）

実際にインストールするのは Open LiteSpeed となります。



# 環境

* アーキテクチャ　x86_64（x64，AMD64）
* OS
     * Rocky Linux 8.4
     * Rocky Linux 9.1

（RHEL系であれは大体同じです。Alma Linux, CentOS Stream など）

Oracle Linux の方はコチラです

https://qiita.com/dxa/items/01d78bda1ca5df73bab6

# インストール

```
# dnf -y install epel-release
# curl -fsSL https://repo.litespeed.sh | sh
# dnf install -y openlitespeed lsphp80 lsphp80-gd  lsphp80-imap lsphp80-mbstring lsphp80-mysqlnd lsphp80-opcache lsphp80-pdo lsphp80-process lsphp80-xml lsphp80-zip
```

# 各種設定

# 初期設定
```bash:パスワードの設定
[root@vm opc]# /usr/local/lsws/admin/misc/admpass.sh

Please specify the user name of administrator.
This is the user name required to login the administration Web interface.

User name [admin]: USERNAME 

Password: PASSWORD
Retype password: PASSWORD
Administrator's username/password is updated successfully!
```

USERNAME と PASSWORD は各自置き換えてください。


PHP 8を使えるようにします。WebConsoleからもできますが、既存の設定をコピペして編集した方が圧倒的に早いです。

```bash:設定ファイル
[root@vm opc]# vi /usr/local/lsws/conf/httpd_config.conf
```

初期設定の行をコピペして、PHP 8を外部アプリとして定義します。

```diff_vim_l:/usr/local/lsws/conf/httpd_config.conf
extProcessor lsphp{
    type                            lsapi
    address                         uds://tmp/lshttpd/lsphp.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/lsphp73/bin/lsphp
    backlog                         100
    instances                       1
    priority                        0
    memSoftLimit                    2047M
    memHardLimit                    2047M
    procSoftLimit                   1400
    procHardLimit                   1500
}

+ extProcessor lsphp80{
+     type                            lsapi
+     address                         uds://tmp/lshttpd/lsphp80.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/lsphp80/bin/lsphp
+     backlog                         100
+     instances                       1
+     priority                        0
+     memSoftLimit                    2047M
+     memHardLimit                    2047M
+     procSoftLimit                   1400
+     procHardLimit                   1500
+ }
```

下記の変更をお忘れなく。

> extProcessor <font color="blue">lsphp</font> ▶ extProcessor <font color="Red">lsphp80</font>
> uds://tmp/lshttpd/<font color="blue">lsphp.sock</font> uds://tmp/lshttpd/<font color="Red">lsphp80.sock</font>
> path $SERVER_ROOT/<font color="blue">lsphp73</font>/bin/lsphp ▶ path $SERVER_ROOT/<font color="Red">lsphp80</font>/bin/lsphp


ポートを80番に変更します。

```diff_vim_l:/usr/local/lsws/conf/httpd_config.conf
listener Default{
-    address                  *:8088
+    address                  *:80
    secure                   0
    map                      Example *
}
```

いざ起動。

```bash:サービスに登録して、すぐ起動する
[root@vm opc]# systemctl enable --now lsws
```

# Firewall に穴を開ける

```bash:管理画面用
[root@vm opc]# firewall-cmd --zone=public --permanent --add-port=7080/tcp
[root@vm opc]# firewall-cmd --zone=public --permanent --add-port=80/tcp
[root@vm opc]# firewall-cmd --zone=public --permanent --add-port=443/tcp
[root@vm opc]# firewall-cmd --reload
```


# PHP 8 をデフォルトにする

インストールしたサーバーの＜IPアドレス:7080＞にアクセスして、下記の要領で設定を済ませます。

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vSJehuJl8OCrqwqam1T576QchG-Emi7eV02GA11p7JHUPbE2yDRr2gs3C7JfQ92Kyfa_trXCTU7tQb7/embed?start=false&loop=false&delayms=3000" frameborder="0" width="500" height="570" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

同じ手順で別のバージョン（PHP 7.4 など）をデフォルトにすることもできます。
またバーチャルホストごとに PHP バージョンを切り替える事もできます。


# メモ

```bash:インストールディレクトリ
/usr/local/lsws/
```

```bash:設定ファイル
/usr/local/lsws/conf/httpd_config.conf
```

```bash:初期設定のドキュメントルート
/usr/local/lsws/Example/html/
```

# 関連リンク

[公式マニュアル（英語）](https://openlitespeed.org/kb/)

# Next

https://qiita.com/dxa/items/bf6e9bc05b353fb50226

https://qiita.com/dxa/items/d973be04b0032813b416