UbuntuサーバーにLOMPスタックをセットアップする方法

ウェブ開発者として、Linux、OpenLiteSpeed、MariaDB(またはMySQL)、PHPスタックサーバー(LOMP)をセットアップする必要がある状況に直面することがあります。これは daunting な作業です。ここでは、LinuxサーバーにLOMPスタックをインストールする手順を示します。
目次
- 他のスタック(LAMP、LEMP)よりLOMPを使用する理由
- 前提条件
- OpenLiteSpeedのインストール
- MariaDBのインストール
- PHPのインストール
- OpenLiteSpeedへのアクセスと設定
- よくある質問
他のスタック(LAMP、LEMP)よりLOMPを使用する理由?
LOMPはオープンソースであり、幅広いサポートがあるため、ウェブ開発に人気の選択肢です。さらに、LOMPスタック内のすべてのコンポーネントは互換性があり、セットアップとメンテナンスが容易です。
さらに、OpenLiteSpeedは、ApacheやNginxなどの他のウェブサーバーと比較して高性能なウェブサーバーです。OpenLiteSpeedは、より多くの同時リクエストを処理し、より少ないリソースを利用できるため、高トラフィックのウェブサイトに最適です。
前提条件
このガイドを始める前に、いくつかの準備が必要です。
Linuxサーバー。このチュートリアルでは、執筆時点での最新リリースであるUbuntu 22.04を使用します。
サーバーに設定されたsudo権限を持つ非rootユーザーアカウント。
サーバーを指すドメイン名。
OpenLiteSpeedのインストール
LOMPスタックでは、OpenLiteSpeedがウェブサーバーとして使用されます。ウェブサーバーは、ウェブサイトを構成するファイルのリクエストに応答するソフトウェアです。誰かがあなたのドメイン名を入力すると、そのブラウザはウェブサーバーにファイルのリクエストを送信します。ウェブサーバーは、そのファイルをブラウザに返します。
UbuntuにOpenLiteSpeedをインストールする前に、まずサーバーのパッケージインデックスを更新します:
sudo apt updatewgetコマンドでOLSリポジトリを取得します。
sudo wget -O - https://repo.litespeed.sh | cat-Oフラグは、wgetにスクリプトの出力をファイルではなくターミナルに書き込むよう指示します。|文字(パイプとして知られる)は、最初のコマンドの出力を第二のコマンドであるcatに入力として渡します。これにより、スクリプトを実行する前にレビューできます。

出力が良好であれば、次のコマンドでスクリプトを実行できます:
sudo wget -O - https://repo.litespeed.sh | sudo bashコマンドのsudo bash部分は、スクリプトをroot権限で実行するようシステムに指示します。これは、スクリプトがシステムのリポジトリを変更できる必要があるためです。

リポジトリが追加されたら、変更を反映するためにパッケージインデックスを再度更新します:
sudo apt update最後に、次のaptコマンドでOpenLiteSpeedをインストールします。
sudo apt install openlitespeed -yOpenLiteSpeedがサーバーにインストールされます。

OpenLiteSpeedサービスを開始し、サーバーが起動すると自動的に開始されるように有効にします:
sudo systemctl start openlitespeed
sudo systemctl enable openlitespeedOpenLiteSpeedサービスの状態を確認して、正常に実行されていることを確認できます:
sudo systemctl status openlitespeed出力は以下のようになります。

MariaDBのインストール
MariaDBは人気のあるMySQLデータベースサーバーのフォークです。LOMPスタックでは、他のソフトウェアと互換性があり、オープンソースライセンスの下で開発されているため、MySQLの代わりに使用されます。MariaDBは無料で使用および配布できます。
以下のaptコマンドを実行してMariaDBをインストールします:
sudo apt install mariadb-server -yOpenLiteSpeedと同様に、MariaDBサービスを開始し、サーバーが起動すると自動的に開始されるように有効にします。
sudo systemctl start mariadb
sudo systemctl enable mariadbMariaDBサービスの状態を確認して、正常に実行されていることを確認できます。
sudo systemctl status mariadb出力は以下のようになります。

MariaDBインストールのセキュリティ
デフォルトでは、MariaDBの新しいインストールには、データベースサーバーを攻撃にさらす可能性のある危険なデフォルト設定がいくつか含まれています。インストールを保護するために、MariaDBに付属のmariadb-secure-installationスクリプトを実行します。
sudo mariadb-secure-installationこのスクリプトは、あまり安全でないデフォルトオプションのいくつかを変更し、MariaDBのrootユーザーのパスワードを設定します。
一連の質問が表示されます。各質問に対して「Y」(はい)または「N」(いいえ)で答えます。
最初に、rootパスワードを入力するように求められます。MariaDBをインストールしたばかりなので、rootユーザーのパスワードはまだ設定していないため、空白のままEnterを押します。

次に、rootユーザーのために「unix_socket認証」メソッドを使用するかどうかを尋ねられます。これは、システムのrootユーザーとしてログインしているときに、MariaDBに自動的にログインできることを意味します。Yを入力してEnterを押します。
次の質問は、rootユーザーのパスワードを変更したいかどうかです。Yを入力してEnterを押します。新しいパスワードを入力して確認するように求められます。推測が難しい強力なパスワードを使用することがベストプラクティスです。
その後、データベースから匿名ユーザーを削除するかどうかを尋ねられます。匿名ユーザーとは、ユーザー名やパスワードが与えられていないユーザーのことです。Yを入力してEnterを押します。デフォルトでは、MariaDBは誰でもユーザー名やパスワードなしでデータベースサーバーに接続できるようにしています。これは安全ではないため、これらの匿名ユーザーを削除します。
次に、リモートでのrootログインを禁止するかどうかを尋ねられます。リモートでのrootログインを禁止することは良いセキュリティ対策です。攻撃者がrootユーザーとしてログインするには、サーバーへの物理的アクセスが必要になるためです。Yを入力してEnterを押します。
最後に、テストデータベースとそのアクセスを削除するかどうかを尋ねられます。これらはテスト目的で使用され、もはや必要ありません。Yを入力してEnterを押します。
変更を有効にするために特権テーブルを再読み込みするように求められます。Yを入力してEnterを押します。これでMariaDBのインストールが安全になりました。

PHPのインストール
PHPは、フォームデータや画像などの動的コンテンツを処理するために使用されるサーバーサイドスクリプト言語です。WordPressを使用している場合は、PHPをインストールする必要があります。
以下のコマンドを実行して、利用可能なPHPパッケージを検索します。
sudo apt-cache search lsphpPHPで始まるパッケージのリストが表示されます。これらはPHP7.4、PHP8.0、およびPHP8.1パッケージです。このガイドでは、最新のPHPバージョンであるPHP8.1をインストールします。このパッケージには最新の機能とセキュリティ更新が含まれています。
PHP8.1をインストールするには、以下のコマンドを実行します:
sudo apt install lsphp81 lsphp81-{common,mysql} -y{common,mysql}部分は、aptにPHP8.1の共通およびmysqlモジュールをインストールするよう指示します。commonモジュールは、ほとんどのPHPアプリケーションに必要な基本的な関数のセットを提供します。mysqlモジュールは、PHPがMariaDBと対話するための関数を提供します。

あなたのPHPアプリケーションは異なるバージョンのPHPと互換性があるかもしれないので、PHPのバージョンを選択する前にアプリケーションのドキュメントを確認してください。
他のバージョンのPHPをインストールしたい場合は、lsphp81を希望のバージョンに置き換えます。たとえば、PHP7.4をインストールするには、以下のようにlsphp74パッケージ名を使用します:
sudo apt install lsphp74 lsphp74-{common,mysql}OpenLiteSpeedへのアクセスと設定
ファイアウォールの設定
Ubuntuには、UFWというデフォルトのファイアウォールが付属しています。Web管理コンソールとウェブサイトにアクセスするために、ポート7080と8088でのトラフィックを許可する必要があります。
以下のコマンドを実行して、これらのポートでのトラフィックを許可します:
sudo ufw allow 7080/tcp && sudo ufw allow 8088/tcp以下のコマンドを実行して、ファイアウォールの状態を確認します:
ufw status以下のような出力が表示されます。出力には、ポート7080と8088でのトラフィックが許可されていることが示されています。

OpenLiteSpeedへのアクセス
すべての設定が完了したので、OpenLiteSpeedにアクセスする準備が整いました。
これを行うには、ウェブブラウザを開き、http://your_domain:8088にアクセスします。「your_domain」をあなたのドメイン名に置き換えます。
以下のようなページが表示されます:OpenLiteSpeedのウェルカムページ。

下にスクロールして、「Test PHP」リンクをクリックして、PHPがOpenLiteSpeedと正しく動作しているかどうかをテストします。

以下のようなページが表示されます。このページは、PHPがOpenLiteSpeedと正しく動作していることを示しています。PHPのバージョンはPHP7.4として表示されますが、次のセクションでそのバージョンをPHP8.1に変更します。

「Hello World CGI」スクリプトの下にあるリンクをクリックして、OpenLiteSpeedのCGI機能が正しく動作しているかどうかをテストします。
CGIは、ウェブサーバー上でプログラムを実行するためのメカニズムであり、ウェブブラウザからのリクエストに応じて実行されます。OpenLiteSpeedは、任意の言語で書かれたCGIスクリプトを実行できますが、CGIの最も一般的な使用法はPerlまたはPHPスクリプトを実行することです。
この機能は、OpenLiteSpeedがサポートしていないプログラミング言語を使用したい場合に非常に便利です。

以下のようなHello Worldページが表示されます。これはCGI機能が正しく動作していることを意味します。
次に、以下のコマンドを実行してWeb管理コンソールのパスワードを設定します。
sudo /usr/local/lsws/admin/misc/admpass.shプロンプトが表示されたら、Web管理コンソールのユーザー名とパスワードを入力し、ENTERを押します。

http://your_domain:7080に移動してWeb管理コンソールを開きます:OpenLiteSpeedサーバーを管理するためのグラフィカルユーザーインターフェース(GUI)です。
これにより、従来のウェブサーバーのように設定ファイルを編集することなく、ウェブブラウザ上で直接サーバーを構成できます。
「your_domain」を実際のドメイン名に置き換えて、以下のようなページを表示します。
前のステップで作成したユーザー名とパスワードを入力し、「Login」をクリックしてWeb管理コンソールにログインします。

以下のようなページが表示されます。このページはWeb管理コンソールのメインページです。サーバーの概要が表示されます。

OpenLiteSpeedをPHP8.1を使用するように設定する
デフォルトでは、OpenLiteSpeedはPHP7.4で動作するように設定されています。異なるバージョンのPHPを使用している場合は、OpenLiteSpeedにどのPHPバージョンを使用するかを指示する必要があります。
Web管理コンソールのメインページで、「Server Configuration」タブをクリックし、「External App」をクリックします。現在設定されているすべての外部アプリケーションのリストが表示されます。
「LiteSpeed SAPI App」の横にある「Edit」アイコンをクリックします。

以下のようなページが表示されます。「Command」フィールドにlsphp81/bin/lsphpと入力します。これはlsphpバイナリへのパスです。この設定により、OpenLiteSpeedはデフォルトのPHP7.4の代わりにPHP8.1を使用するようになります。

他の設定はデフォルトのままにして、変更を保存するために保存アイコンをクリックします。
巻き戻し矢印アイコンをクリックして、グレース再起動を実行します。変更はOpenLiteSpeedをグレース再起動するまで有効になりません。
最後に、http://your_domain:8088/phpinfo.phpに移動します。以下のようなページが表示され、OpenLiteSpeedがPHP8.1を使用していることが示されます。
おめでとうございます!UbuntuサーバーにLOMPスタックを正常にインストールして構成しました。
よくある質問
OpenLiteSpeedを他のウェブサーバーと一緒に使用できますか?
いいえ。OpenLiteSpeedはスタンドアロンのウェブサーバーとして使用するように設計されています。他のウェブサーバーと一緒に動作するようには設計されていません。OpenLiteSpeedは、他のウェブサーバーと同じポート(HTTP用の80およびHTTPS用の443)を使用します。これは、サーバー上で同時に実行できるウェブサーバーは1つだけであることを意味します。
無料のSSL証明書(Let’s Encryptなど)でOpenLiteSpeedウェブサーバーを保護できますか?
はい、できます。OpenLiteSpeedはLet’s Encryptや他のACMEv2準拠の証明書機関をサポートしています。Web管理コンソールを使用して、数回のクリックで無料のSSL証明書をインストールできます。詳細については、公式のOpenLiteSpeedドキュメントを参照してください。
画像クレジット:Unsplash。すべてのスクリーンショットはNicholas Xuan Nguyenによるものです。