ウェブサイト検索

Ubuntu 22.04にMariaDBとPHP-FPMを使用してLighttpdをインストールする方法


Ubuntu 22.04にMariaDBとPHP-FPMを使用してLighttpdをインストールする方法

このチュートリアルはこれらのOSバージョンのために存在します

  • Ubuntu 22.04 (ジャミー・ジェリーフィッシュ)
  • Ubuntu 20.04 (フォーカルフォッサ)
  • Ubuntu 18.04 (ビオニックビーバー)
  • Ubuntu 16.04 (ゼニアル・ゼクサス)
  • Ubuntu 14.04 LTS (トラスティ・タール)
  • Ubuntu 12.04 LTS(精密なパンゴリン)

このページで

  1. 前提条件
  2. Lighttpdウェブサーバーのインストール
  3. MariaDBサーバーのインストール
  4. PHP-FPM 8.1のインストール
  5. LighttpdとPHP-FPMの設定
  6. Phpinfoのテスト
  7. Lighttpdでバーチャルホストを設定する
  8. LighttpdウェブサーバーでHTTPSを有効にする
  9. 結論

LLMPスタック(Linux、Lighttpd、MariaDB、PHP-FPM)は、ウェブアプリケーションを提供するためのソフトウェアスタックです。LLMPスタックの各コンポーネントは無料でオープンソースであり、複数のオペレーティングシステムにインストール可能です。LLMPスタックは、静的HTMLサイトやWordPress、Drupal、JoomlaなどのPHPアプリケーションを提供できます。

このチュートリアルでは、最新のUbuntu 22.04システムにLLMPスタック(Linux、Lighttpd、MariaDB、PHP-FPM)をインストールして構成する方法を示します。このチュートリアルには、Lighttpdウェブサーバーでのバーチャルホストの設定方法とSSL/HTTPSの有効化に関する指示が含まれています。

前提条件

このチュートリアルでは、次の前提条件が必要です:

  • Ubuntu 22.04サーバー。
  • ルート/管理者権限を持つ非ルートユーザー

Lighttpdウェブサーバーのインストール

Lighttpd(ライトティーピーディー)またはLightyは、高性能なウェブサーバーで、c10k問題「1つのサーバーで10,000の接続を同時に処理する方法」の概念実証として作成されました。

Lighttpdは、速度、安全性、軽量性、柔軟性のために設計されています。最小限のCPUとメモリ使用量を持ち、FastCGI、CGI、認証、圧縮、URLリライティングなどの高度な機能を提供します。

パッケージをインストールする前に、以下のaptコマンドを実行してUbuntuリポジトリのパッケージインデックスを更新およびリフレッシュしてください。

sudo apt update

次のコマンドを使用してLighttpdウェブサーバーをインストールしてください。

sudo apt install lighttpd

インストールを確認するにはYを入力し、続行するにはENTERを押してください。これでLighttpdのインストールが始まります。

Lighttpdのインストールが完了したら、以下のコマンドを実行してLighttpdサービスを開始し、有効にします。

sudo systemctl start lighttpd
sudo systemctl enable lighttpd

以下のコマンドを使用してLighttpdサービスをチェックおよび確認してください。Lighttpdサービスが実行中で有効になっているのが確認できるはずです。これは、システム起動時に自動的に実行されることを意味します。

sudo systemctl status lighttpd

UbuntuマシンにUFWファイアウォールが実行されている場合は、Lighttpdウェブサーバーへの着信トラフィックのためのファイアウォールルールを追加する必要があります。

以下のufwコマンドを実行して、LighttpdのルールをUFWファイアウォールに追加してください。その後、以下のようにUFWルールのリストを確認して検証できます。

sudo ufw allow "Lighttpd Full"
sudo ufw status

UFWファイアウォールにアプリケーションプロファイル「Lighttpd Full」が追加されているはずです。これは、すべての着信HTTPおよびHTTPSポートが許可されていることを意味します。

今、以下のコマンドを使用してディレクトリ「/var/www/html」を確認してください。index.htmlファイルが見当たらない場合は、以下のコマンドを使用して作成できます。

ls -lah /var/www/html
echo "<h1><center>Welcome to Lighttpd Web Server</center></h1>" > /var/www/html/index.html

最後に、ウェブブラウザーを開いてサーバーのIPアドレス(つまり http://192.168.5.28/)にアクセスすると、index.htmlページが表示されるはずです。

MariaDBサーバーのインストール

Lighthttpdウェブサーバーをインストールした後、UbuntuシステムにMariaDBサーバーをインストールする時が来ました。これには、MariaDBパッケージが提供する<em>mysql_secure_installation</em>ツールを使用して、MariaDBサーバーを安全にデプロイする方法も含まれています。

次のaptコマンドを実行してMariaDBサーバーをインストールしてください。現在の状態では、デフォルトのUbuntuリポジトリはMariaDB v10.6を提供しています。

sudo apt install mariadb-server

今、インストールを確認するにはYを入力し、ENTERを押してください。これでMariaDBのインストールが始まります。

MariaDBのインストールが完了したら、以下のsystemctlコマンドを実行してMariaDBサービスを開始し、有効にします。

sudo systemctl start mariadb
sudo systemctl enable mariadb

次のコマンドを使用してMariaDBサービスを確認および検証してください。そして、MariaDBサービスが実行中であることが確認できるはずです。

sudo systemctl status mariadb

次に、「mysql_secure_installation」ツールを使用してMariaDBのデプロイを設定します。このツールは、MariaDBサーバーのルートパスワードを設定し、リモートのルートログインを無効にし、デフォルトのデータベースや匿名ユーザーアクセスをクリーンアップするのに役立ちます。

次に、以下のように "mysql_secure_installation" コマンドを実行します。

sudo mysql_secure_installation

デフォルトのMariaDBインストールにはルートパスワードがありません。続行するにはENTERを押してください。

今、「n」を入力して、認証方法をデフォルトのままにします(MariaDBのルートユーザー用)。

Y を入力して、MariaDB サーバーのルートパスワードを設定してください。展開のために強力なパスワードを使用することを忘れないでください。

現在、MariaDBのrootユーザーのリモートログインを無効にするにはYを入力してください。クラスタ環境にいない場合は、MariaDBのrootユーザーのリモートログインを無効にすることを常にお勧めします。

今度はYを入力して、MariaDBのインストールからデフォルトの匿名ユーザーを削除してください。

再度Yを入力して、匿名ユーザーがアクセスできるMariaDBのデフォルトのデータベーステストを削除してください。

最後に、Yを再入力して、MariaDBサーバー上のすべてのテーブル権限をリロードし、新しい変更を適用します。

PHP-FPM 8.1のインストール

あなたは今、LighttpdウェブサーバーとMariaDBデータベースサーバーをインストールしました。次に、UbuntuシステムにPHP-FPMをインストールします。現在の状態では、Ubuntuのリポジトリは最新のPHP 8.1を提供しています。

UbuntuシステムにPHP-FPM 8.1をインストールするには、以下のaptコマンドを実行してください。

sudo apt install php-fpm php-common php-mysql php-cli php-curl php-xml

インストールを確認するには Y を入力し、ENTER を押してください。これでインストールが開始されます。

PHP-FPMパッケージのインストールが完了したら、下記のコマンドを実行してPHP-FPMサービスを開始し、有効にします。

sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm

以下のコマンドを使用してPHP-FPMサービスを確認し、検証してください。PHP-FPMサービスが実行中であることが表示されるはずです。

sudo systemctl status php8.1-fpm

「ss」コマンドを使用してPHP-FPMサービスを確認することもできます。デフォルトのPHP-FPMプロセスはソックファイルの下で実行されており、以下のコマンドを使用してPHP-FPMプロセスを確認できます。

ss -pl | grep php

PHP-FPMサービスをソックファイル「/run/php/php8.1-fpm.sock」で実行する必要があります。

LighttpdとPHP-FPMの設定

LLMPスタックパッケージのインストールは完了しましたが、PHP-FPMサービスと連携できるようにLighttpdウェブサーバーの設定を行う必要があります。これはLighttpdウェブサーバーのFastCGIモジュールを使用することで実現できます。

まず、nanoエディタを使用してPHP-FPM設定ファイル「/etc/php/8.1/fpm/php.ini」を編集します。

sudo nano /etc/php/8.1/fpm/php.ini

次の設定をファイルに追加してください。

cgi.fix_pathinfo = 1

作業が完了したら、ファイルを保存して閉じてください。

新しい変更を適用するために、以下のコマンドを使用してPHP-FPMサービスを再起動してください。

sudo systemctl restart php8.1-fpm

次に、以下のコマンドを実行してLighttpdの「fastcgi」および「fastcgi-php-fpm」モジュールを有効にします。

sudo lighty-enable-mod fastcgi fastcgi-php-fpm

nanoエディタを使用して、設定ファイル「/etc/lighttpd/conf-available/15-fastcgi-php-fpm.conf」を編集します。このファイルは、PHP-FPMソックファイルと通信するために使用されるfastcgi-php-fpmモジュールの設定です。

sudo nano /etc/lighttpd/conf-available/15-fastcgi-php-fpm.conf

次のようにソケットオプションのパスを「/run/php/php8.1-fpm.sock」に変更してください。

## Use PHP-FPM service for PHP via FastCGI
fastcgi.server += ( ".php" =>
        ((
                "socket" => "/run/php/php8.1-fpm.sock",
                "broken-scriptfilename" => "enable"
        ))
)

作業が完了したら、ファイルを保存して閉じてください。

最後に、以下のコマンドを実行して Lighttpd サービスを再起動し、新しい変更を適用します。これで、LLMP スタックは静的な HTML と動的な PHP ウェブアプリケーションの両方に対応できるようになりました。

sudo systemctl restart lighttpd

Phpinfoのテスト

LLMPスタックのインストールを確認するには、LighttpdとPHP-FPMの詳細な設定を表示するPHPINFOスクリプトを作成するだけです。

以下のコマンドを実行して新しいPHPスクリプト「/var/www/html/info.php」を作成し、所有者を「www-data」ユーザーに変更します。

echo "<?php phpinfo(); ?>" > /var/www/html/info.php
sudo chown -R www-data:www-data /var/www/html

ウェブブラウザに戻り、UbuntuサーバーのIPアドレスの後にURLパス「/info.php」(http://192.168.5.28/info.php)を入力してください。そして、以下のスクリーンショットのような詳細なphpinfoページが表示されるはずです。これは、LighttpdとPHP-FPMの設定が完了し、成功したことを意味します。

Lighttpdでバーチャルホストを設定する

この時点で、LLMPスタックのインストールと設定が完了しました。LLMPスタックは、PHP-FPMを介して動的なPHPウェブアプリケーションを提供する準備ができています。次に、Lighttpdウェブサーバーでバーチャルホストの設定方法を学びます。バーチャルホストを使用すると、単一のサーバーまたはIPアドレス上で複数のドメイン名を運営することができます。

次に、次のコマンドを実行して新しいディレクトリ「/etc/lighttpd/vhosts」を作成します。このディレクトリは、Lighttpdウェブサーバーのすべての仮想ホスト設定を保存するために使用されます。

sudo mkdir -p /etc/lighttpd/vhosts/

今、nanoエディタを使ってライトTPDの設定ファイル「/etc/lighttpd/lighttpd.conf」を編集します。

sudo nano /etc/lighttpd/lighttpd.conf

次の設定をファイルに追加してください。

include "/etc/lighttpd/vhosts/*.conf"

作業が完了したら、ファイルを保存して閉じてください。これで、Lighttpdの仮想ホストの設定を始める準備が整いました。

まず、仮想ホストのドキュメントルートディレクトリを作成します。この例では、ドキュメントルートディレクトリは「/var/www/hwdomain」となります。

mkdir -p /var/www/hwdomain/

ドキュメントルートディレクトリ「/var/www/hwdomain」に新しい「index.html」ファイルを作成し、所有権を正しいユーザー「www-data」に変更します。

echo "<h1><center>Welcome to howtoforge.local virtual host</center></h1>" > /var/www/hwdomain/index.html
sudo chown -R www-data:www-data /var/www/hwdomain

次に、nanoエディタを使用して新しい仮想ホスト設定「/etc/lighttpd/vhosts/hwdomain.conf」を作成します。

sudo nano /etc/lighttpd/vhosts/hwdomain.conf

次の構成をファイルに追加してください。この例では、仮想ホストに「howtoforge.local」というドメインが使用されます。

$HTTP["host"] =~ "(^|.)howtoforge.local$" {
    server.document-root = "/var/www/hwdomain"
    server.errorlog = "/var/log/lighttpd/howtoforge.local-error.log"
    accesslog.filename = "/var/log/lighttpd/howtoforge.local-access.log"
}

作業が完了したら、ファイルを保存して閉じてください。

その後、次のコマンドを実行してLighttpdの設定を確認および検証します。Lighttpdの設定が正しい場合は、"構文はOK"のような出力メッセージが表示されます。

sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf

新しい仮想ホスト設定を適用するために、以下のコマンドを使用してLighttpdサービスを再起動してください。

sudo systemctl restart lighttpd

ウェブブラウザに戻り、アドレスバーにドメイン名を入力します(例:http://howtoforge.local/)。そうすると、その仮想ホスト用のデフォルトのindex.htmlページを見ることができるはずです。

LighttpdウェブサーバーでHTTPSを有効にする

Lighthttpdのバーチャルホストを設定した後、次にLighttpdウェブサーバーでSSL/HTTPSを有効にする方法を学びます。

SSLの設定を開始する前に、以下のコマンドを実行してLighttpdウェブサーバーの「ssl」モジュールを有効にします。これにより、Lighttpdの基本的なSSL設定を含む「/etc/lighttpd/conf-enabled/10-ssl.conf」へのリンクファイルが作成されます。また、localhostのために「server.pem」という名前のSSL証明書を生成する必要があります。

sudo lighty-enable mod ssl

以下のコマンドを実行して、名前「server.pem」のローカルホスト用のSSL証明書を作成および生成します。

openssl req -new -newkey rsa:2048 -nodes -keyout server.com.key -out server.com.csr
openssl x509 -req -days 365 -in server.com.csr -signkey server.com.key -out server.com.crt
cat server.com.key server.com.crt > server.pem

さあ、仮想ホストの設定「hwdomain.conf」にSSL/HTTPSを実装する準備が整いました。

仮想ホストのSSLを設定する前に、ドメイン名のためにSSL証明書を生成していることを確認してください。この例では、ドメイン名は "howtoforge.local" であり、SSL証明書は "/etc/letsencrypt/live/hwdomain.io" ディレクトリにあります。

nanoエディタを使用して、仮想ホストの設定「/etc/lighttpd/vhosts/hwdomain.conf」を編集します。

sudo nano /etc/lighttpd/vhosts/hwdomain.conf

あなたが作成した設定を次の設定に置き換えてください。

$HTTP["scheme"] == "http" {
        $HTTP["host"] == "howtoforge.local" {
                url.redirect = ("/.*" => "https://howtoforge.local$0")
        }
}
$SERVER["socket"] == ":443" {
    ssl.engine = "enable"
    ssl.pemfile = "/etc/letsencrypt/live/howtoforge.local/fullchain.pem"
    ssl.privkey = "/etc/letsencrypt/live/howtoforge.local/privkey.pem"
    server.name = "howtoforge.local"
    server.document-root = "/var/www/hwdomain"
    server.errorlog = "/var/log/lighttpd/howtoforge.local-error.log"
    accesslog.filename = "/var/log/lighttpd/howtoforge.local-access.log"
}

作業が完了したら、ファイルを保存して閉じてください。

次に、以下のコマンドを実行してLighttpdウェブサーバーの設定を確認し、「Syntax OK」といった出力メッセージが表示されることを確認してください。その後、新しい変更を適用するためにLighttpdサービスを再起動できます。

sudo lighttpd -t -f /etc/lighttpd/lighttpd.conf
sudo systemctl restart lighttpd

最後に、ウェブブラウザに戻り、URLの前にhttpsを付けた仮想ホストのドメイン名(例: https://howtoforge.local)にアクセスしてください。SSL設定が成功していれば、下のスクリーンショットのようにURLにローカルアイコンが表示されます。

結論

おめでとうございます!あなたは成功裏にUbuntu 22.04サーバーにLLMPスタック(Linux、Lighttpd、MariaDB、PHP-FPM)をインストールしました。また、Lighttpdウェブサーバーで仮想ホストを設定する方法と、あなたのドメイン名のためにLighttpdでSSL/HTTPSを有効にする方法を学びました。

関連記事: