LEMPスタック · 2 min read · Sep 10, 2025

Ubuntu 24.04にLEMPスタック(Linux、Nginx、PHP、MariaDB)をインストールする方法

LEMPスタック(Linux、Nginx、MySQL/MariaDB、PHP)は、PHPウェブアプリケーションをホスティングおよび開発するための無料でオープンソースのソフトウェアアプリケーションのグループです。LEMPスタックは、静的および動的ウェブアプリケーションの両方を展開するために使用できます。

このガイドでは、Ubuntu 24.04 “Noble Numbat”にLEMPスタック(Linux、Nginx、MySQL/MariaDB、PHP)をインストールする方法を示します。また、MariaDBサーバーを保護し、ウェブサイトやドメイン名をホストするためのNginxサーバーブロック構成を作成する方法も示します。

前提条件

始める前に、rootユーザーまたはsudo/管理者権限を持つ非rootユーザーでUbuntu 24.04 “Noble Numbat”があることを確認してください。また、UFW(Uncomplicated Firewall)が実行されており、有効になっていることを確認してください。

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

Nginxまたはengine-xは、インターネット上で最も人気のあるウェブサーバーです。Nginxは、最小限のシステムリソースで同時に高トラフィックを処理できるため、人気を博しました。この最初のステップでは、UbuntuサーバーにNginxウェブサーバーをインストールします。

パッケージをインストールする前に、次のコマンドでUbuntuパッケージリストを更新およびリフレッシュします。

sudo apt update

update repo

次のコマンドでUbuntuマシンにNginxウェブサーバーをインストールします。プロンプトが表示されたら、インストールを確認するためにYを入力します。

sudo apt install nginx

install nginx

インストールが完了すると、Nginxサービスはシステムで実行され、有効になっているはずです。次のコマンドでNginxサービスを確認します。

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

Nginxサービスが「 enabled 」であり、現在のステータスが「 active (running) 」であることが表示されるはずです。

check nginx service

Nginxにアクセスする前に、UFW(Uncomplicated Firewall)を介してUbuntuサーバーでHTTPおよびHTTPSポートの両方を開く必要があります。

次の「 ufw 」コマンドを実行して、「 Nginx Full 」プロファイルを有効にし、HTTPおよびHTTPSアクセスをUbuntuサーバーに許可します。

sudo ufw allow 'Nginx Full'

次のコマンドでUFWルールを確認します。「 Nginx Full 」プロファイルがステータス ‘ALLOW’ で有効になっていることを確認してください。

sudo ufw status

setup nginx ufw

最後に、お好みのウェブブラウザからhttp://192.168.5.30/にアクセスしてNginxインストールにアクセスします。成功した場合、次のようなデフォルトの「 index.html 」ページが表示されるはずです。

nginx index

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

Nginxをインストールした後、UbuntuにMariaDBサーバーをインストールします。この例では、Ubuntuリポジトリを介してMariaDBをインストールし、その後「 mariadb-secure-installation 」ユーティリティを介してMariaDBインストールを保護します。

UbuntuにMariaDBサーバーをインストールするには、次の「 apt install 」コマンドを実行します。Yを入力してENTERを押してプロセスを進めます。

sudo apt install mariadb-server

install mariadb server

インストールが完了したら、次のコマンドでMariaDBサービスを確認します。これにより、MariaDBサービスのステータスが表示されます。

sudo systemctl is-enabled mariadb  
sudo systemctl status mariadb

MariaDBサービスは「 enabled 」であり、現在のステータスは「 active (running) 」です。

check mariadb service

MariaDBサーバーをインストールしたら、「 mariadb-secure-installation 」を介してそれを保護する必要があります。これにより、MariaDBのrootパスワードを設定し、rootユーザーのリモート認証を無効にし、MariaDBサーバーインストールから不要なデータベースと権限を削除できます。

以下の「 mariadb-secure-installation 」コマンドを実行してMariaDBサーバーを保護します。

sudo mariadb-secure-installation

次に、以下のMariaDBサーバー構成について尋ねられます。

MariaDBのrootパスワードを求められたらENTERを押します。

Enter current password for root (enter for none):  
OK, successfully used password, moving on...

unix_socket認証に切り替えるように求められたら「 n 」と入力します。

Switch to unix_socket authentication [Y/n] n  
 ... skipping.

MariaDBのrootパスワードを設定するためにYを入力します。次に、新しいパスワードを入力し、再度入力します。

Change the root password? [Y/n] Y  
New password:  
Re-enter new password:  
Password updated successfully!  
Reloading privilege tables..  
 ... Success!

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

Remove anonymous users? [Y/n] Y  
 ... Success!

MariaDBのrootユーザーのリモートログインを無効にするためにYを入力します。rootユーザーは常にlocalhostから接続する必要があります。

Disallow root login remotely? [Y/n] Y  
 ... Success!

次に、MariaDBサーバーからデフォルトのデータベーステストとその権限を削除するためにYを再度入力します。

Remove test database and access to it? [Y/n] Y  
 - Dropping test database...  
 ... Success!  
 - Removing privileges on test database...  
 ... Success!

権限テーブルを再読み込みし、これまでに行ったすべての変更を適用するためにYを入力します。

Reload privilege tables now? [Y/n] Y  
 ... Success!

完了すると、次のメッセージが表示されます。

All done! If you've completed all of the above steps, your MariaDB  
installation should now be secure.  
  
Thanks for using MariaDB!

PHP-FPMのインストール

PHP-FPM(FastCGI Process Manager)は、PHPのFastCGI実装の代替です。主にNginxをウェブサーバーとして使用する高トラフィックサイトで使用されます。このセクションでは、MySQL/MariaDBドライバー用のmysqli、キャッシング用のopcacheおよびAPCuなどの追加拡張機能を持つPHP-FPMをインストールします。

次のコマンドでUbuntuサーバーにPHP-FPMをインストールします。プロンプトが表示されたらYを入力し、ENTERを押して進めます。

sudo apt install php-fpm php-mysql php-curl php-gd php-json php-intl php-bcmath php-opcache php-apcu php-mbstring php-fileinfo php-xml php-soap php-tokenizer php-zip

install php-fpm

インストールが完了すると、PHP-FPMサービスは起動しているはずです。次のコマンドでPHP-FPMサービスのステータスを確認します。

sudo systemctl is-enabled php8.3-fpm  
sudo systemctl status php8.3-fpm

以下のように、PHP-FPMは「 active (running) 」であり、システム起動時に「 enabled 」です。

check php-fpm service

Ubuntuでは、デフォルトのPHP-FPMはsockファイルの下で実行されています。PHP-FPMのsockファイルのパスを知ることは重要であり、これはNginxウェブサーバーとの統合に使用されます。

次のコマンドでPHP-FPMのsockファイルの場所を確認します。

ss -pl | grep php

次の出力で、PHP-FPMのsockファイルが「 /run/php/php8.3-fpm.sock 」にあることがわかります。

NginxとPHP-FPMの統合

PHP-FPMをインストールしたので、Nginxウェブサーバーと統合する時が来ました。そのためには、PHP-FPMのsockファイルの正確なパスを知っておく必要があり、次にデフォルトのNginxサーバーブロックファイルを修正します。

次のnanoエディタコマンドを使用してサーバーブロック構成「 /etc/nginx/sites-available/default 」を開きます。

sudo nano /etc/nginx/sites-available/default

次の行のコメントを解除し、PHP-FPMのsockファイルのパスを新しい場所に変更します。

 # pass PHP scripts to FastCGI server  
 #  
 location ~ \.php$ {  
     include snippets/fastcgi-php.conf;  
  
     # # With php-fpm (or other unix sockets):  
     fastcgi_pass unix:/run/php/php8.3-fpm.sock;  
  
     # # With php-cgi (or other tcp sockets):  
     # fastcgi_pass 127.0.0.1:9000;  
 }

ファイルを保存してエディタを終了します。

次に、Nginx構成を変更した後にこのコマンドを実行してNginxの構文を確認します。

sudo nginx -t

適切なNginx構文がある場合、次のような確認が表示されます。

integrate nginx and php-fpm

次に、Nginxサービスを再起動してNginxとPHP-FPMの統合を適用するために、次のコマンドを実行します。

sudo systemctl restart nginx

Nginxが再起動したら、PHPINFOファイルを介して統合を確認できます。次のコマンドを実行して、デフォルトのウェブルートディレクトリ「 /var/www/html/ 」にPHPINFOファイル「 info.php 」を作成します。

echo "" > /var/www/html/info.php

最後に、ウェブブラウザに戻り、http://192.168.5.30/info.phpにアクセスします。NginxとPHP-FPMの統合が成功した場合、次のようになります。

Nginxウェブサーバーの下でPHP 8.3がサーバーAPI PHP-FPMで実行されていることがわかります。

phpinfo

ページを下にスクロールすると、PHP mysqli/mysqlnd拡張機能もインストールされていることがわかります。

php mysql enabled

最後に、PHPインストールでAPCを介したキャッシングも有効になっていることがわかります。

php apc enabled

Nginxサーバーブロック(仮想ホスト)の作成

サーバーブロックは、Nginxウェブサーバーの「仮想ホスト」の別名です。これは、単一のサーバーで複数のウェブサイトやドメイン名をホストするために使用されます。このセクションでは、Nginxサーバーブロックを作成する方法を学びます。

サーバーブロック構成を作成する前に、次のコマンドを実行して新しいウェブルートディレクトリ「 ‘/var/www/newsite/public_html’ 」とカスタム「 index.html 」ページを作成します。

mkdir -p /var/www/newsite/public_html  
echo "Welcome to newsite.com" > /var/www/newsite/public_html/index.html

次に、次のコマンドを実行して「 /var/www/newsite 」ディレクトリの所有権をユーザー「 www-data 」に変更します。Ubuntuシステムでは、Nginxウェブサーバーは「 www-data 」ユーザーとして実行されています。

sudo chown -R www-data:www-data /var/www/newsite

次に、次のnanoエディタコマンドを実行して新しいサーバーブロック構成「 ‘/etc/nginx/sites-available/newsite’ 」を作成します。

sudo nano /etc/nginx/sites-available/newsite

以下の構成を挿入し、server_nameオプションをドメイン名に変更し、ウェブルートディレクトリを新しいパス「 /var/www/newsite/public_html 」に変更します。

server {  
   listen 80;  
   server_name newsite.com;  
  
   root /var/www/newsite/public_html;  
   index index.html;  
  
   location ~ \.php$ {  
     include snippets/fastcgi-php.conf;  
     fastcgi_pass unix:/run/php/php8.3-fpm.sock;  
   }  
  
   location / {  
     try_files $uri $uri/ =404;  
   }  
}

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

次に、次のコマンドを実行してサーバーブロック構成「 newsite 」を有効にします。このコマンドで、「 /etc/nginx/sites-available/newsite 」ファイルの新しいシンボリックリンクを「 /etc/nginx/sites-enabled/ 」ディレクトリに作成します。

sudo ln -s /etc/nginx/sites-available/newsite /etc/nginx/sites-enabled/

サーバーブロックが有効になったら、次の「 nginx 」コマンドを実行してNginxの構文を確認します。

sudo nginx -t

エラーがなければ、「 … syntax is ok / … test is successful 」という出力が得られるはずです。

最後に、次のコマンドを実行してNginxウェブサーバーを再起動し、新しいサーバーブロック構成を適用します。これにより、サーバーブロック構成がローカルマシンからアクセス可能になります。

sudo systemctl restart nginx

create server block

サーバーブロック構成のテスト

Nginxサーバーブロック構成が成功したことを確認するために、ローカルコンピュータからサーバーブロック構成のドメイン名にアクセスします。パブリックドメイン名を使用している場合は、ドメイン名に直接アクセスします。しかし、ローカルドメインユーザーの場合は、ローカルコンピュータの「hosts」ファイルを編集します。

  • LinuxおよびMacOSユーザーは、root/管理者権限で「 /etc/hosts 」ファイルを編集します。
  • Windowsユーザーは、管理者として「 C:\Windows\System32\drivers\etc\hosts 」ファイルを編集します。

次のように、サーバーのIPアドレスとドメイン名を追加します。

192.168.5.30 newsite.com

ファイルを保存して終了します。

次に、ウェブブラウザを開いてhttp://newsite.com/にアクセスします。Nginxサーバーブロック構成が成功した場合、次のように作成したカスタム「index.html」ページが表示されるはずです。

nginx server block

結論

おめでとうございます! Ubuntu 24.04 “Noble Numbat”にLEMPスタック(Linux、Nginx、MySQL/MariaDB、PHP)をインストールしました。また、MariaDBサーバーインストールを保護し、複数のウェブサイトをホストするためのNginxサーバーブロックを作成しました。

Share: X/Twitter LinkedIn

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

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