Debian 9 StretchにLEMP(Linux、Nginx、MariaDB、PHP-FPM)をインストールする方法


Debianは世界中のWebサーバーの大部分に電力を供給しているため、この記事では、LAMPの代わりにDebian 9 StretchにLEMP(Linux + Nginx + MariaDB + PHP-FPM)スタックをインストールする方法を説明します(このガイドを使用) DebianにLAMPをインストールするには9)。

さらに、最小限のNginx/PHP-FPM構成を実行して、新しいシステム管理者でも新しいWebサーバーをセットアップして動的ページをセットアップできるようにする方法を示します。

これを行うために、ディストリビューションの公式リポジトリに対する最近の更新を活用します。ベアメタル、仮想マシン、またはVPSにDebian 9をインストールしたか、Jessieからアップグレードしたことを前提としています。

Debian 9StretchへのLEMPのインストール

LEMPスタックの一部としてPHPではなくPHP-FPMについて言及したのはなぜか疑問に思われるかもしれません。他のWebサーバーとは対照的に、NginxはPHPのネイティブサポートを提供していません。

そのため、PHPページのリクエストを処理するためにPHP-FPM(Fast Process Manager)が使用されます。 PHP-FPMの詳細については、PHPの公式サイトをご覧ください。

Debianリポジトリphp7.0-fpmで提供されるデフォルトバージョン。パッケージの名前から推測できるように、このバージョンではPHP7コードを含むページへのリクエストも処理できます。

注:Apacheが以前に同じボックスにインストールされている場合は、続行する前に、Apacheが停止して無効になっていることを確認してください。

それでは、LEMPスタックのコンポーネントを次のようにインストールしましょう。

# aptitude update 
# aptitude install nginx mariadb-server mariadb-client php-mysqli php7.0-fpm

インストールが完了したら、まずNginxとPHP-FPMが実行されており、起動時に起動できるようになっていることを確認しましょう。

# systemctl status nginx php7.0-fpm

一方または両方のサービスが実行されていないことを示している場合は、実行します。

# systemctl start nginx php7.0-fpm
# systemctl enable nginx php7.0-fpm

すべてのMariaDBまたはMySQLのインストールの場合と同様に、mysql_secure_installationを実行して最小限のセキュリティ構成を実行し、データベースルートアカウントのパスワードを設定することが重要です。

# mysql_secure_installation

これを行う方法がわからない場合は、DebianおよびUbuntuにMariaDB10をインストールする方法のステップ4を参照してください。

Debian9でPHP-FPMを使用するようにNginxを構成する

Nginxのメイン構成ファイルは/ etc/nginx/sites-available/defaultです。ここで、サーバーブロック内で次の変更を行う必要があります。

  • Ensure the location block that handles PHP requests is enabled, with the exception of the one where the fastcgi_pass directive points to the loopback NIC.
  • Add index.php after the index directive to indicate that if found, it should be served by default before index.html or other files.
  • Add the server_name directive pointing to the IP address or hostname of your server. This will be 192.168.0.35 in our case.
  • Additionally, make sure the root directive points to the location where your .php files will be stored (/var/www/html by default).

完了したら、次のコマンドを使用して、構成ファイルのエラーをテストできます。

# nginx -t 

この時点で、/ etc/nginx/sites-available/defaultは次のようになります。ここで、番号は構成を示し、上記のリストを表しています。

# grep -Ev '#' /etc/nginx/sites-available/default

Debian9でのNginxとPHP-FPMのテスト

NginxをWebサーバーとして使用していることを確認するために、次の内容で/ var/www/html内にinfo.phpという名前のファイルを作成しましょう。

<?php
	phpinfo();
?>

次に、http://192.168.0.35/info.phpにアクセスし、これが表示されるページの上部を確認します。

最後に、Debian 9のInstall LAMP(Linux、Apache、MariaDB、またはMySQLとPHP)スタックで作成したbooksandauthors.phpファイルをブラウザーで指定します。

次の画像でわかるように、このファイルは現在Nginxによって提供されています。

注:Nginxが .php ファイルを実行するのではなくダウンロードとして提供していることに気付いた場合は、ブラウザのキャッシュをクリアするか、別のブラウザを試してください。特に、Chromeを使用している場合は、シークレットモードでテストすることをお勧めします。

この記事では、動的な .php ページを提供するようにNginxをインストールして構成する方法について説明しました。この初期設定の後、Webサーバーを保護するために考慮すべき設定があることに注意することが重要です。

Nginx Webサーバーのパフォーマンスを保護、強化、および改善するための究極のガイドに基本的な要約があります。

Nginxで仮想ホスティングを探している場合は、NGINXで名前ベースおよびIPベースの仮想ホストをセットアップする方法をお読みください。

いつものように、この記事について質問やコメントがあれば、遠慮なくお知らせください。