Linux で LNMP を展開する

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

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はその速度と効率で知られており、トラフィックの多いサイトやアプリケーションに人気のある選択肢になっています。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux/BasicSystemCommandsGroup -.-> linux/exit("Shell Exiting") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/PackagesandSoftwaresGroup -.-> linux/curl("URL Data Transferring") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") linux/PackagesandSoftwaresGroup -.-> linux/software("Linux Software") linux/VersionControlandTextEditorsGroup -.-> linux/vim("Text Editing") subgraph Lab Skills linux/exit -.-> lab-7787{{"Linux で LNMP を展開する"}} linux/service -.-> lab-7787{{"Linux で LNMP を展開する"}} linux/sudo -.-> lab-7787{{"Linux で LNMP を展開する"}} linux/curl -.-> lab-7787{{"Linux で LNMP を展開する"}} linux/apt -.-> lab-7787{{"Linux で LNMP を展開する"}} linux/software -.-> lab-7787{{"Linux で LNMP を展開する"}} linux/vim -.-> lab-7787{{"Linux で LNMP を展開する"}} end

Nginx のインストール

さて、Linux システムに Nginx をインストールする具体的な手順は以下の通りです。

  1. パッケージリストを更新する:サーバー上のパッケージリストを更新するには、次のコマンドを実行します。
sudo apt-get update
  1. 次のコマンドを使用して Nginx をインストールする:
sudo apt-get install nginx
  1. Nginx が正常にインストールされたかどうかを確認する
nginx -v

次の画像は、Nginx が正常にインストールされ、現在インストールされているバージョンが 1.18.0 であることを示しています。

nginx version: nginx/1.18.0

MySQL のインストール

Linux システムに MySQL をインストールする具体的な手順は以下の通りです。

  1. MySQL をインストールするには、次のコマンドを使用します。
sudo apt update
sudo apt-get install mysql-server
  1. MySQL サーバーがインストールされているかどうかを確認する:
mysql --version

次の図は、MySQL が正常にインストールされていることを示しています。

mysql  Ver 8.0.35-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
  1. MySQL が起動しているかどうかを確認し、起動していない場合は、次のコマンドで起動します。
sudo systemctl status mysql
sudo systctl start mysql

PHP のインストール

Linux システムに PHP をインストールする具体的な手順は以下の通りです。

  1. PHP と関連モジュールをインストールする:PHP とその関連モジュールをインストールするには、次のコマンドを使用します。
sudo apt update
sudo apt-get install php8.1-fpm php-mysql

これにより、PHP FastCGI プロセスマネージャ (php-fpm) と PHP 用の MySQL 拡張機能 (php-mysql) がインストールされます。

  1. PHP のバージョンを確認する。
sudo php -v

次の図は、PHP が正常にインストールされていることを示しています。

PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)

Nginx の設定

Nginx をインストールしたら、他のコンポーネントと連携するように設定する必要があります。そのための手順は以下の通りです。

  1. Nginx の設定ファイル /etc/nginx/sites-available/default を編集する:
sudo vim /etc/nginx/sites-available/default
  1. 既存のコンテンツを以下のものに置き換える:
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;
        }
}
  1. Nginx の設定が正しいかどうかを確認する:
sudo nginx -t
  1. nginx を再読み込みする
sudo nginx -s reload

MySQL の設定

  1. 次のコマンドを実行して MySQL にアクセスします。
sudo mysql
  1. 次のコマンドを実行してルートユーザーのパスワードを設定します。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'Mysql@1234';
  1. 次のコマンドを実行して MySQL データベースから退出します。
exit

PHP の設定

  1. PHP の情報を表示するための新しい phpinfo.php ファイルを作成して編集する。
sudo vim /var/www/html/phpinfo.php

以下のコンテンツを記入する。

<?php echo phpinfo();?>

ヒント:/var/www/html はサイトのルートディレクトリで、cat /etc/nginx/sites-enabled/default コマンドを実行することで確認できます。

  1. PHP-FPM を起動する:インストールが完了したら、次のコマンドを使用して PHP-FPM サービスを起動します。
sudo systemctl start php8.1-fpm

ヒント:PHP-FPM サービスの正確な名前は、Linux のディストリビューションや PHP のバージョンによって異なる場合があります。

  1. 起動時に PHP-FPM を自動起動に設定する:サーバーが起動する際に PHP-FPM が自動的に起動するようにするには、次のコマンドを実行します。
sudo systemctl enable php8.1-fpm

検証

ブラウザのアドレスバーに http://127.0.0.1/phpinfo.php と入力してアクセスします。

アクセス結果は以下の通りで、PHP の設定情報ページが正常に表示され、LNMP 環境が正常に展開されたことがわかります。

PHP info page displayed

または、curl コマンドを使用して確認することもできます。

curl http://127.0.0.1/phpinfo.php -I

まとめ

これらの手順を完了すると、LNMP スタックを正常に展開できたはずです。ウェブサイトのコードを /var/www/html ディレクトリに配置し、ウェブサイトにアクセスして正常に動作することを確認できます。