サーバー設定 · 2 min read · Sep 22, 2025

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

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

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

前提条件

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

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

Lighttpd Webサーバーのインストール

LighttpdまたはLightyは、c10k問題「単一サーバーで10,000接続を並行して処理する方法」の概念実証として作成された高性能Webサーバーです。

Lighttpdは、速度、セキュリティ、軽量性、柔軟性を考慮して設計されています。最小限のCPUおよびメモリ使用量を持ち、FastCGI、CGI、認証、圧縮、URLリライトなどの高度な機能を提供します。

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

sudo apt update

次に、以下のコマンドを使用してLighttpd Webサーバーをインストールします。

sudo apt install lighttpd

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

install lighttpd

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

sudo systemctl start lighttpd  
sudo systemctl enable lighttpd

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

sudo systemctl status lighttpd

start lighttpd

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

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

sudo ufw allow "Lighttpd Full"  
sudo ufw status

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

setup ufw firewall

次に、以下のコマンドを使用して「/var/www/html」ディレクトリを確認します。index.htmlファイルが表示されない場合は、以下のコマンドを使用して作成できます。

ls -lah /var/www/html  
echo "

Lighttpd Web Serverへようこそ

" > /var/www/html/index.html

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

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

Lighttpd Webサーバーのインストールが完了したら、UbuntuシステムにMariaDBサーバーをインストールする時間です。これには、MariaDBパッケージによって提供される「mysql_secure_installation」ツールを使用してMariaDBサーバーを安全にデプロイする方法も含まれます。

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

sudo apt install mariadb-server

次に、インストールを確認するためにYを入力し、ENTERを押します。これでMariaDBのインストールが始まります。

install mariadb

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

sudo systemctl start mariadb  
sudo systemctl enable mariadb

以下のコマンドを使用してMariaDBサービスを確認および検証します。MariaDBサービスが実行中であることが表示されるはずです。

sudo systemctl status mariadb

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

以下のように“mysql_secure_installation”コマンドを実行します。

sudo mysql_secure_installation

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

mysql_secure_installation

次に、MariaDBのrootユーザーの認証方法をデフォルトのままにするために「n」を入力します。

no unix_socket auth for root

MariaDBサーバーのrootパスワードを設定するためにYを入力します。デプロイのために強力なパスワードを使用することを忘れないでください。

setup root password

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

MariaDBインストールからデフォルトの匿名ユーザーを削除するために再度Yを入力します。

remove anonymous user

MariaDBの匿名ユーザーによってアクセス可能なデフォルトデータベーステストを削除するために再度Yを入力します。

remove database test

最後に、MariaDBサーバーのすべてのテーブル権限を再読み込みし、新しい変更を適用するために再度Yを入力します。

reload tables privileges

PHP-FPM 8.1のインストール

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

以下のaptコマンドを実行してUbuntuシステムにPHP-FPM 8.1をインストールします。

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

インストールを確認するためにYを入力し、ENTERを押します。これでインストールが始まります。

install php-fpm

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

start php-fpm

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

ss -pl | grep php

PHP-FPMサービスがsockファイル「/run/php/php8.1-fpm.sock」で実行されていることが表示されるはずです。

PHP-FPMをLighttpdと構成する

LLMPスタックパッケージのインストールが完了しましたが、Lighttpd WebサーバーをPHP-FPMサービスと連携させるために設定する必要があります。これは、Lighttpd Webサーバーの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 sockファイルと通信するために使用されるfastcgi-php-fpmモジュールの設定です。

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

ソケットオプションのパスを「/run/php/php8.1-fpm.sock」に変更します。

## PHP-FPMサービスをFastCGI経由で使用する  
fastcgi.server += ( ".php" =>  
        ((  
                "socket" => "/run/php/php8.1-fpm.sock",  
                "broken-scriptfilename" => "enable"  
        ))  
)

完了したら、ファイルを保存して閉じます。

最後に、以下のコマンドを実行してLighttpdサービスを再起動し、新しい変更を適用します。これでLLMPスタックは静的HTMLと動的PHP Webアプリケーションの両方を提供する準備が整いました。

sudo systemctl restart lighttpd

configure php-fpm lighttpd

Phpinfoのテスト

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

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

echo "" > /var/www/html/info.php  
sudo chown -R www-data:www-data /var/www/html

Webブラウザに戻り、UbuntuサーバーのIPアドレスの後にURLパス「/info.php」(http://192.168.5.28/info.php)を追加してアクセスします。詳細なphpinfoページが表示されるはずです。これにより、LighttpdとPHP-FPMの設定が完了し、成功したことが確認できます。

php info llmp

Lighttpdでのバーチャルホストの設定

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

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

sudo mkdir -p /etc/lighttpd/vhosts/

次に、nanoエディタを使用してLighttpd設定ファイル「/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 "

howtoforge.localバーチャルホストへようこそ

" > /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設定が正しい場合は、「Syntax OK」という出力メッセージが表示されます。

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

次に、以下のコマンドを実行してLighttpdサービスを再起動し、新しいバーチャルホスト設定を適用します。

sudo systemctl restart lighttpd

lighttpd virtual host

Webブラウザに戻り、アドレスバーにドメイン名を入力します(例:http://howtoforge.local/)。そのバーチャルホストのデフォルトのindex.htmlページが表示されるはずです。

Lighttpd WebサーバーでのHTTPSの有効化

Lighttpdバーチャルホストの設定が完了したら、次にLighttpd WebサーバーでSSL/HTTPSを有効にする方法を学びます。

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

sudo lighty-enable mod ssl

次に、以下のコマンドを実行してlocalhost用のSSL証明書を「server.pem」という名前で作成および生成します。

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.i o」ディレクトリにあります。

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 Webサーバーの設定を確認および検証し、「Syntax OK」という出力メッセージが表示されることを確認します。その後、新しい変更を適用するためにLighttpdサービスを再起動できます。

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

最後に、Webブラウザに戻り、URLの前にhttpsを付けてバーチャルホストのドメイン名にアクセスします(例:https://howtoforge.local)。SSL設定が成功していれば、URLにローカルアイコンが表示されます。

結論

おめでとうございます!Ubuntu 22.04サーバーにLLMPスタック(Linux、Lighttpd、MariaDB、PHP-FPM)を正常にインストールしました。また、Lighttpd Webサーバーでバーチャルホストを設定し、ドメイン名のSSL/HTTPSを有効にする方法を学びました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。