Raspberry Pi4で始める自宅サーバー生活#6(PHP-FPMのインストールとNginxの設定)

Raspberry Pi4で始める自宅サーバー生活

前回、Raspberry Pi4にインストールしたUbuntu Server 20.10にWebサーバーとしてNginxをインストールしたのですが、今回は、NginxでPHPのプログラムを使用することができるようにするためにPHP-FPMをインストールして一部設定を変更したいと思います。

Nginxのインストールについては、以下の記事をご覧下さい。

NginxでPHPを動作させるための設定

ApacheはモジュールとしてPHPスクリプトを動かすことが可能で、PHPのインストール時にPHPモジュールも一緒にインストールされるためWebサーバーにApacheを使用している場合は、特に何もしなくてもそのままPHPを使用することができます

しかし、WebサーバーにNginxを使用している場合は、デフォルトのままではPHPを扱うことができず、FastCGIという処理速度が向上してWebサーバーの負荷を低下させたCGIを使用してPHPを扱う必要があるため、先ずはPHP-FPMというFastCGI Process Managerをインストールする必要があります

PHP-FPMのインストール

以下のコマンドでPHP-FPMをインストールします。

$ sudo apt -y install php-fpm

Web用のルートディレクトリの作成

Webサーバーがドキュメント等を配信するために使用するディレクトリは「/var/www/html」がデフォルトとなっています。1つのWebサイトだけを作成するのであればデフォルトのままでも良いのですが、将来的に複数サイトを作ることも考えて新しいWeb用のルートディレクトリを作成します。

$ sudo mkdir /var/www/xxxxxx(←ディレクトリ名は自由に決めて下さい)

新しく作成したルートディレクトリの所有権を自分に設定します。

$ sudo chown -R $USER:$USER /var/www/xxxxxx

Nginxの設定変更

新しく作成したルートディレクトリをNginxに設定します。Nginxの「sites-available」ディレクトリに新しい設定ファイルを作成します。

$ sudo nano /etc/nginx/sites-available/xxxxxx

新しい設定ファイルには以下の通り記述します。下記の中の「server_name」にはWebサイトのドメインまたはIPアドレスを入力して下さい。

server {
  listen 80;
  server_name xxxxxx www.xxxxxx;
  root /var/www/xxxxxx;

  index index.html index.htm index.php;

  location / {
    try_files $uri $uri/ =404;
  }

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

  location ~ /\.ht {
    deny all;
  }
}

Nginxの設定ファイルを有効化します。以下によりNginxが次にリロードした際に設定ファイルが読み込まれるようになります。

$ sudo ln -s /etc/nginx/sites-available/xxxxxx /etc/nginx/sites-enabled/

設定ファイルに構文エラーが無いかをテストします。

$ sudo nginx -t

設定ファイルに問題が無ければ以下のように表示されます。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nginxをリロードして新しい設定を読み込ませます。

$ sudo systemctl reload nginx

Nginxの動作確認

テスト用のHTMLの作成と表示

新しく設定したルートディレクトリにテスト用のHTMLを作成してブラウザで表示されるかをテストするためディレクトリの中に新たにindex.htmlファイルを作成します。

$ sudo nano /var/www/xxxxxx/index.html

空のファイルが開くので、以下のようにテスト用のHTMLを記述します。

<html>
 <head>
  <title>TEST HTML</title>
 </head>
 <body>
  <p>これはテスト用のHTMLです</p>
 </body>
</html>

Webブラウザでサーバーのドメイン名またはIPアドレスにアクセスしてテスト用のHTMLが表示されるかを確認しましょう。

NginxでPHPが動作するかをテストする

NginxでPHPが動作するかを確認するため、ルートディレクトリにPHPの情報を見るためのPHPファイルを作成します。

$ sudo nano /var/www/xxxxxx/test.php

空のファイルが開くので、以下のようにテスト用のPHPを記述します。

<?php
phpinfo();
?>

Webブラウザで「http://サーバーのドメイン名またはIPアドレス/test.php」にアクセスしてPHPやサーバーの情報が記載されたページが開くかを確認しましょう。

最後に

今回は、NginxでPHPのプログラムを動作させるためにPHP-FPMのインストールと設定変更を行いました。Nginxの設定は若干手間が掛かりますが、勉強になることも多いので、今後も色々と調べて纏めていければと思います。

それでは、また!!

タイトルとURLをコピーしました