Debian10サーバーにLEMPをインストールする方法


「LEMP」スタックは、動的アプリケーションをデプロイするために通常Linuxサーバーにインストールされるオープンソースソフトウェアの混合物です。この用語は、Linuxオペレーティングシステム、Nginx Webサーバー、MariaDBデータベース、およびPHPプログラミングを表す頭字語です。

この「LEMP」スタックには通常、データベース管理システムとしてMySQLが含まれていますが、Debianなどの一部のLinuxディストリビューションでは、MySQLのドロップイン代替としてMariaDBを使用しています。

  1. How to Install a Debian 10 (Buster) Minimal Server

この記事では、MariaDBをデータベース管理プラットフォームとして使用して、Debian10サーバーにLEMP環境をインストールおよびセットアップする方法について説明します。

Debian10へのNginxWebサーバーのインストール

Nginxは、オープンソースでクロスプラットフォームであり、軽量でありながら強力で、構成が簡単なHTTPおよびリバースプロキシサーバー、メールプロキシサーバー、およびモジュラーアーキテクチャを備えた汎用TCP/UDPプロキシサーバーです。

その基本的な機能のいくつかには、静的ファイルとインデックスファイルの提供が含まれます。 FastCGI、uwsgi、SCGI、およびMemcachedサーバーのキャッシュによるサポートの高速化、負荷分散とフォールトトレランス、SSLとTLS SNIのサポート、加重および依存関係ベースの優先順位付けによるHTTP/2のサポート。

Nginxパッケージをインストールするには、図のようにDebianのaptパッケージマネージャーを使用します。

# apt update 
# apt install nginx 

Nginxのインストールが完了すると、インストーラーはsystemdをアクティブにして、今のところNginxサービスを開始し、システムの起動時に自動的に開始できるようにします。次のsystemctlコマンドを使用して、Nginxのステータスを確認できます。

# systemctl status nginx

次の重要なコマンドを使用して、systemdでNginxサービスの構成を開始、再起動、停止、および再ロードすることもできます。

# systemctl start nginx
# systemctl restart nginx 
# systemctl stop nginx
# systemctl reload nginx 
# systemctl status nginx 

次に、UFWファイアウォールを実行している場合(通常はデフォルトで無効になっています)、Nginxでの着信トラフィックを許可するには、ポート80(HTTP)と443(HTTPS)を開く必要があります。

# ufw allow 80
# ufw allow 443
# ufw status

この時点で、Nginxが正しくインストールされているかどうか、実行されており、Webページを提供できるかどうかをテストする必要があります。これを行うには、Webブラウザーを開き、次のURLをポイントして、Nginx Debian DefaultWebページにアクセスします。

http://SERVER_IP/
OR
http://localhost/

Debian10へのMariaDBのインストール

次に、データベースシステムをインストールして、WebサイトまたはWebアプリのデータを保存および管理できるようにする必要があります。 Debian 10は、MySQLのドロップイン代替として、デフォルトでMariaDBをサポートしています。

MariaDBをインストールするには、次のコマンドを実行します。

# apt install mariadb-server

次に、MariaDBサービスがsystemdによって自動開始され、システムの起動時に開始できるようになっているため、MariaDBサービスのステータスを確認し、稼働していることを確認するには、次のコマンドを使用します。

# systemctl status mariadb

systemdでMariaDBサービスを管理(開始、再起動、停止、再読み込み)するには、次のコマンドを使用できます。

# systemctl start mariadb
# systemctl restart mariadb
# systemctl stop mariadb
# systemctl reload mariadb

次に、MariaDBデプロイメントはデフォルトで安全ではなくなります。データベースのセキュリティを向上させるには、パッケージに同梱されているシェルスクリプトを実行する必要があります。

# mysql_secure_installation

スクリプトを実行した後、次のスクリーンショットに示すように、MariaDBインストールのデフォルト設定を変更するための一連の次の質問に進みます。

Debian 10へのPHP-FPM(Fast Process Manager)のインストール

Apacheや他のWebサーバーとは異なり、NginxはPHP-FPMを使用してPHPページの要求を処理するため、PHPのネイティブサポートを提供しません。 PHP-FPMは、PHPの代替FastCGIデーモンであり、ワーカープロセスを使用して要求を処理することにより、Webサイトが高負荷を処理できるようにします。

PHP-FPMバージョン7.3とPHPモジュールをインストールしてMariaDB/MySQLデータベースシステムと通信するには、次のコマンドを実行します。

# apt install php-fpm php-mysqli

PHP-FPMがインストールされた後、インストーラーはsystemdをアクティブにして、今のところPHP-FPMサービスを開始し、システムの起動時に自動開始できるようにします。稼働しているかどうかを確認するには、次のコマンドを発行します。

# systemctl status php-fpm

次のように、systemdでPHP-FPMサービスの構成を開始、再起動、停止、および再ロードすることもできます。

# systemctl start php-fpm
# systemctl restart php-fpm
# systemctl stop php-fpm
# systemctl reload php-fpm
# systemctl status php-fpm

次に、構成ファイル/etc/php/7.3/fpm/php.iniに次のように変更を加えて、PHP-FPMを保護する必要があります。

# vi /etc/php/7.3/fpm/php.ini

; cgi.fix_pathinfo u003d 1 を探し、先頭の; 文字を削除してコメントを解除し、その値を 0 に設定します。これにより、Nginxが非PHPファイルをPHPとして実行することを許可しなくなります。

cgi.fix_pathinfo=0

デフォルトでは、PHP-FPMは、/ etc/php/7.3/fpm/pool.d /www.conf構成ファイルで定義されているUNIXソックス/run/php/php7.3-fpm.sockでリッスンするように構成されています。 PHPページを処理および提供する場合は、このソケットを使用するようにすべてのサーバーブロック(または仮想ホスト)を構成する必要があります。

Nginxのデフォルトのサーバーブロック構成ファイル/ etc/nginx/sites-available/defaultを使用してテストできます。

# vi /etc/nginx/sites-available/default 

スクリーンショットに示すように、次のセクションを探してコメントを解除し、PHPスクリプトをFastCGIサーバーに渡します。

location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}

次に、次のコマンドを使用して、Nginx構成構造に問題がないかどうかをテストします。

# nginx -t

Nginxの構成に問題がない場合、最近行った変更を適用するには、次のようにphp7.3-fpmおよびnginxサービスを再起動します。

# systemctl restart php7.2-fpm
# systemctl restart nginx

NginxでのPHP-FPM処理のテスト

PHP-FPMとNginxが連携するように構成した後、2つのサービスがPHPページを処理してクライアントに提供できるかどうかをテストする必要があります。これを行うには、次のようにWebDocumentRootに簡単なPHPスクリプトを作成します。

# echo “<?php phpinfo(); ?>”  | tee /var/www/html/info.php

最後に、ブラウザーを開き、次のアドレスを入力して、 phpinfo()関数によって生成されたシステム上のPHP構成を確認します。

http://SERVER_IP/info.php
OR
http://localhost/info.php

この記事では、Debian 10にLEMPスタックをインストールして構成する方法を示しました。質問やフィードバックがある場合は、下のコメントフォームからご連絡ください。