CentOS 8 に OpenLiteSpeed、MariaDB、PHP 7.4 をインストールして設定する手順

重要: 本手順は CentOS 8 を想定しています。別ディストリビューションや異なる PHP/MariaDB バージョンでは手順やパッケージ名が異なります。
目的と想定環境
- 目的: OpenLiteSpeed(高性能軽量 HTTP サーバ)を CentOS 8 に導入し、PHP 7.4(LSPHP)と MariaDB を組み合わせて稼働させる。管理ダッシュボードの認証を設定し、HTTP(ポート 80)で公開する。
- 想定サーバー: CentOS 8、2GB RAM、25GB 空きディスク、2 CPU
- 対象読者: Linux サーバ管理者、ホスティング/DevOps 初〜中級者
主要な作業一覧
- OpenLiteSpeed リポジトリを追加してインストール
- LSPHP (PHP 7.4) をインストール
- MariaDB をインストールして初期セキュリティ設定を実行
- 管理ダッシュボード(ポート 7080)の認証を有効化
- OpenLiteSpeed を PHP 7.4 に紐付ける(External App / Script Handler)
- リスナーをポート 80 に変更して公開
- 動作確認(トップページ、phpinfo)と基本のトラブルシューティング
前提知識(1行定義)
- OpenLiteSpeed: LiteSpeed Technology が提供するオープンソースの HTTP サーバ。
- LSPHP: OpenLiteSpeed 用の PHP 実行モジュール(LSAPI 形式)。
ステップ 1 - OpenLiteSpeed のインストール
- OpenLiteSpeed の CentOS 用リポジトリを追加します。
rpm -Uvh http://rpms.litespeedtech.com/centos/litespeed-repo-1.1-1.el8.noarch.rpm
- 利用可能なリポジトリを確認します。
dnf repolist
- OpenLiteSpeed をインストールします。
sudo dnf install openlitespeed
- サービスを起動して自動起動を有効化します。
systemctl start lsws
systemctl enable lsws
- ステータスを確認します。
systemctl status lsws
ノート: OpenLiteSpeed はデフォルトでポート 8088 を使用します。後述の手順でポート 80 に変更します。
ステップ 2 - PHP 7.4(LSPHP)のインストール
- EPEL リポジトリを追加します。
sudo dnf install epel-release
- OpenLiteSpeed リポジトリから LSPHP(php 7.4)パッケージをインストールします。
sudo dnf install lsphp74 lsphp74-mysqlnd lsphp74-process lsphp74-mbstring lsphp74-mcrypt lsphp74-gd lsphp74-opcache lsphp74-bcmath lsphp74-pdo lsphp74-common lsphp74-xml
- PHP のソケットが稼働しているか確認します。
netstat -pl | grep lsphp
成功すれば LSPHP(PHP 7.4)のソケットが表示され、OpenLiteSpeed 側で利用可能になります。
重要: PHP のパッケージ名はリポジトリや配布によって異なる場合があります。epel や litespeed のパッケージリストを参照してください。
ステップ 3 - MariaDB のインストールと初期設定
- MariaDB をインストールします。
sudo dnf install mariadb mariadb-server
- サービスを起動して自動起動を有効化します。
systemctl start mariadb
systemctl enable mariadb
- 初期セキュリティ設定を行います(root パスワード設定、匿名ユーザー削除、test DB 削除など)。
mysql_secure_installation
プロンプトの例:
Set a root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
- MySQL シェルにログインしてユーザー情報を確認します。
mysql -u root -p
# パスワードを入力
select User, Host from mysql.user;
注意: MariaDB の初期パスワードや root ユーザーの認証方式(unix_socket など)がディストリにより異なる場合があります。認証方式によっては php からの接続設定を追加で調整する必要があります。
ステップ 4 - 管理ダッシュボードの認証設定
OpenLiteSpeed は web ベースの管理ダッシュボード(デフォルト: ポート 7080)を持っています。まずファイアウォールでポートを開け、管理者ユーザーを作成します。
- firewalld にポート 7080 を追加して再読み込みします。
firewall-cmd --add-port=7080/tcp --permanent
firewall-cmd --reload
- 管理認証を設定します。
cd /usr/local/lsws/admin/misc
sh admpass.sh
プロンプトで管理ユーザー名とパスワードを入力します。
- ブラウザで管理画面にアクセスします。
https://<サーバーIP>:7080/
ログイン画面とダッシュボードのスクリーンショット:
セキュリティ注記: 管理ポートはデフォルトで TLS(HTTPS)を使用しますが、公開サーバーでは IP 制限や VPN、ポートの変更、二要素認証など追加対策を検討してください。
ステップ 5 - OpenLiteSpeed を PHP 7.4(lsphp74)に紐付ける
Web 管理画面で External App(外部アプリ)として LSPHP を追加し、Script Handler を更新して PHP をデフォルトにします。
- 管理画面 > Server Configuration を開き、External App タブを選択します。
- 追加ボタン(+)を押し、「LiteSpeed SAPI App」を選びます。
- 以下のように設定します(例):
Name: lsphp74
Address: uds://tmp/lshttpd/lsphp.sock
Notes: lsphp74 for OpenLiteSpeed
Max Connections: 35
Initial Request Timeout (secs): 60
Retry Timeout (secs): 0
Command: $SERVER_ROOT/lsphp74/bin/lsphp
保存すると PHP 7.4 の External App が追加されます。
- Server Configuration > Script Handler タブで既存の PHP ハンドラを編集し、Handler Name を lsphp74 に変更して保存します。
保存後、設定を反映させるためにサーバーを再起動します。
ステップ 6 - OpenLiteSpeed をポート 80 で稼働させる
デフォルトでは OpenLiteSpeed はポート 8088 を使用します。管理画面で Listener のアドレス設定を編集してポート 80 に変更します。さらに HTTP/HTTPS を firewalld に追加します。
- firewalld に HTTP/HTTPS サービスを追加して再読み込みします。
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
- 管理画面で Listener を開き、Default リスナーの Address Settings を編集、ポートを 80 に変更して保存します。
- サーバーを再起動して設定を反映します。
結果: OpenLiteSpeed がポート 80 で稼働します。
ステップ 7 - 動作確認
- ブラウザで http://<サーバーIP>/ にアクセスし、デフォルトのインデックスページが表示されることを確認します。
- PHP が動作しているか確認するため、phpinfo を呼び出します。管理画面の Test PHP > click here を使うか、自前で以下の内容をドキュメントルートに作成して確認します。
これで OpenLiteSpeed + PHP 7.4 + MariaDB の基本セットアップは完了です。
運用チェックリスト(導入直後に確認すべき項目)
- 管理ダッシュボード(7080)に強力なパスワードを設定済み
- 管理アクセスは IP 制限または VPN で保護
- firewalld に http/https (80/443) と管理ポート (7080) が必要最小限で開放されている
- MariaDB の root パスワードが設定され、匿名ユーザー/テストDBを削除済み
- PHP 拡張(mysqlnd, mbstring, gd など)をアプリ要件に合わせて追加済み
- OpenLiteSpeed と LSPHP のバージョンを記録して変更管理を実施
トラブルシューティング(よくある問題と確認項目)
- サービスが起動しない
- systemctl status lsws でログを確認
- /usr/local/lsws/logs/error.log を確認
- PHP が動かない(404 や 500)
- External App の Command と Address を確認
- LSPHP の実行ファイルパスが存在するか確認($SERVER_ROOT/lsphp74/bin/lsphp)
- netstat で lsphp ソケットが listen しているか確認
- MariaDB に接続できない
- mysql -u root -p でログイン可否確認
- php から接続する場合はユーザーとホスト権限(% や localhost)を確認
- ファイアウォール関連
- firewall-cmd –list-all で zones の設定を確認
セキュリティ強化のポイント
- 管理ダッシュボード(7080)はデフォルトで公開しない。管理用ネットワークまたは IP ホワイトリストを設定。
- TLS 証明書を用意して https を有効化(Let’s Encrypt 等)。
- SSH はパスワード認証を無効にして公開鍵認証にする。
- 定期的に dnf update でセキュリティパッチを適用する。
- MariaDB のバックアップルールと定期的な確認を設定する。
役割別チェックリスト(運用時)
- 管理者(Admin)
- 管理コンソールのアクセスログを定期確認
- 設定変更はバージョン管理(スクリーンショットと手順の保存)
- アプリ開発者
- phpinfo で必要拡張がロードされているか確認
- ファイルパーミッションが安全に設定されているか(www ユーザー)
- セキュリティ担当
- 不要なポート・サービスの停止
- TLS 証明書の期限管理
テストケース / 受入基準
- HTTP トップページにアクセスして 200 応答が返る
- phpinfo のページが表示され、PHP バージョンが 7.4 である
- MySQL クライアントから MariaDB にログインできる
- 管理コンソールに設定した管理ユーザーでログインできる
- サーバー再起動後に lsws と mariadb が自動で起動する
代替アプローチと比較(簡潔)
- nginx + php-fpm + MariaDB
- 長所: エコシステムが広くドキュメントが豊富
- 短所: OpenLiteSpeed の LSAPI より一部ワークロードで性能差が出る場合あり
- Apache + mod_php / php-fpm
- 長所: 互換性・モジュールが豊富
- 短所: 高トラフィック時のリソース効率は劣ることがある
選択はアプリケーションの特性(PHP ベースか、静的コンテンツが多いか、同時接続数要件など)で決めるとよいです。
移行と互換性の注意点
- CentOS 8 のサポート終了に関する方針を検討する(AlmaLinux / RockyLinux などへの移行を想定)。
- PHP や MariaDB のバージョンアップ時は LSPHP のパッケージ名やパスが変わる可能性がある。移行前に公式リポジトリとパッケージ名を確認すること。
1行用語集
- LSPHP: OpenLiteSpeed 用の LSAPI ベース PHP 実装
- Listener: OpenLiteSpeed のポート/バインド設定
- External App: OpenLiteSpeed が起動する外部プログラム(PHP など)
コマンドチートシート(よく使うコマンド)
# OpenLiteSpeed 起動/停止/再起動
systemctl start|stop|restart lsws
systemctl status lsws
# MariaDB 起動/ステータス
systemctl start mariadb
systemctl enable mariadb
# ファイアウォール設定
firewall-cmd --add-port=7080/tcp --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
# LSPHP の確認
netstat -pl | grep lsphp
# MySQL セキュリティスクリプト
mysql_secure_installation
よくある失敗例と回避策
- 失敗: 管理ポートを公開したまま放置して不正アクセスを受ける
- 回避: IP 制限を追加、または管理アクセスは VPN 経由にする
- 失敗: LSPHP のパスが間違って External App が起動しない
- 回避: Command の絶対パスを確認し、$SERVER_ROOT が期待する場所か確認
- 失敗: CentOS 8 のサポート切れで将来的に脆弱性が残る
- 回避: 長期的には Rockylinux/AlmaLinux 等への移行計画を策定
参考・追加リソース
- 公式: https://openlitespeed.org/
- MariaDB ドキュメント
- 各ディストリビューションのパッケージリポジトリ情報
まとめ
このガイドでは CentOS 8 上に OpenLiteSpeed、LSPHP(PHP 7.4)、MariaDB を導入して管理ダッシュボードを保護し、ポート 80 で公開するまでの一連の手順を詳述しました。導入後はセキュリティ設定、ログ監視、バックアップ計画を整えて本番運用に移行してください。
専門家の一言: 運用フェーズでは定期的なパッチ適用と権限管理が最も重要です。