前回、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の設定は若干手間が掛かりますが、勉強になることも多いので、今後も色々と調べて纏めていければと思います。
それでは、また!!