はじめに
LNMP は、Linux、Nginx、MySQL、PHP の 4 つのオープンソースソフトウェアコンポーネントを組み合わせたものです。このスタックは、動的な Web アプリケーションとウェブサイトを動作させるためによく使用されます。以下は、各コンポーネントの概要です。
- Linux:スタックの残りの部分の基礎を提供するオペレーティングシステム。
- Nginx:大量のトラフィックを処理し、静的コンテンツを効率的に提供できる高性能な Web サーバーおよびリバースプロキシ。
- MySQL:人気のあるリレーショナルデータベース管理システムで、Web アプリケーション用のデータを格納および取得するための信頼性の高い方法を提供します。
- PHP:Web 開発に広く使用されるスクリプト言語で、動的な HTML コンテンツを生成するサーバーサイドコードを記述できます。
これらのコンポーネントは一緒になって、現代の Web アプリケーションを構築および展開するための強力で柔軟なプラットフォームを形成します。LNMP は LAMP(Linux、Apache、MySQL、および PHP)に似ていますが、Web サーバーとして Apache の代わりに Nginx を使用しています。Nginx はその速度と効率で知られており、トラフィックの多いサイトやアプリケーションに人気のある選択肢になっています。
Nginx をインストールする
さて、Linux システムに Nginx をインストールする具体的な手順は以下の通りです。
- パッケージリストを更新する:サーバー上のパッケージリストを更新するには、次のコマンドを実行します。
sudo apt-get update
- 次のコマンドを使用して Nginx をインストールする:
sudo apt-get install nginx
Nginxが正常にインストールされたかどうかを確認する
nginx -v
次の画像は、Nginx が正常にインストールされ、現在インストールされているバージョンが 1.18.0 であることを示しています。
nginx version: nginx/1.18.0
MySQL をインストールする
Linux システムに MySQL をインストールする具体的な手順は以下の通りです。
- MySQL をインストールするには、次のコマンドを使用します。
sudo apt update
sudo apt-get install mysql-server
- MySQL サーバーがインストールされているかどうかを確認する:
mysql --version
次の図は、MySQL が正常にインストールされていることを示しています。
mysql Ver 8.0.35-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
- MySQL が起動しているかどうかを確認し、起動していない場合は、次のコマンドで起動します。
sudo systemctl status mysql
sudo systctl start mysql
PHP をインストールする
Linux システムに PHP をインストールする具体的な手順は以下の通りです。
- PHP と関連モジュールをインストールする:PHP とその関連モジュールをインストールするには、次のコマンドを使用します。
sudo apt update
sudo apt-get install php8.1-fpm php-mysql
これにより、PHP FastCGI プロセスマネージャ (php-fpm) と PHP 用の MySQL 拡張機能 (php-mysql) がインストールされます。
PHPのバージョンを確認する。
sudo php -v
次の図は、PHP が正常にインストールされていることを示しています。
PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)
Nginx を設定する
Nginx をインストールしたら、他のコンポーネントと連携するように設定する必要があります。そのための手順は以下の通りです。
- Nginx の設定ファイル
/etc/nginx/sites-available/defaultを編集する:
sudo vim /etc/nginx/sites-available/default
- 既存のコンテンツを以下のものに置き換える:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
index index.php index.html index.htm;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
- Nginx の設定が正しいかどうかを確認する:
sudo nginx -t
- nginx を再読み込みする
sudo nginx -s reload
MySQL を設定する
- 次のコマンドを実行して MySQL にアクセスします。
sudo mysql
- 次のコマンドを実行してルートユーザーのパスワードを設定します。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'Mysql@1234'
- 次のコマンドを実行して MySQL データベースから退出します。
exit
PHP を設定する
- PHP の情報を表示するための新しい phpinfo.php ファイルを作成して編集する。
sudo vim /var/www/html/phpinfo.php
以下のコンテンツを記入する。
<?php echo phpinfo();?>
ヒント:
/var/www/htmlはサイトのルートディレクトリで、cat /etc/nginx/sites-enabled/defaultコマンドを実行することで確認できます。
- PHP-FPM を起動する:インストールが完了したら、次のコマンドを使用して PHP-FPM サービスを起動します。
sudo systemctl start php8.1-fpm
ヒント:PHP-FPM サービスの正確な名前は、Linux のディストリビューションや PHP のバージョンによって異なる場合があります。
- 起動時に PHP-FPM を自動起動に設定する:サーバーが起動する際に PHP-FPM が自動的に起動するようにするには、次のコマンドを実行します。
sudo systemctl enable php8.1-fpm
検証する
ブラウザのアドレスバーに http://127.0.0.1/phpinfo.php と入力してアクセスします。
アクセス結果は以下の通りで、PHP の設定情報ページが正常に表示され、LNMP 環境が正常に展開されたことがわかります。

または、curl コマンドを使用して確認することもできます。
curl http://127.0.0.1/phpinfo.php -I
まとめ
これらの手順を完了すると、LNMP スタックを正常に展開できたはずです。ウェブサイトのコードを /var/www/html ディレクトリに配置し、ウェブサイトにアクセスして正常に動作することを確認できます。



