nginxからphpが使えるようにPHP-FPMをインストールする
nginxをWebサーバとして選択した場合、PHPとはどのように連携するのでしょうか?そこで、PHPを実行するために必要なPHP-FPMについて確認していきます。
PHP-FPMとは
FPMとは、FastCGI Process Managerの略でPHP5.4.0から公式サポートされたPHP標準のアプリケーションサーバです。名前にあるFastCGIというプロトコルで通信するよう実装されています。 FastCGIは、Webサーバとアプリケーションサーバの間で使われるプロトコルの一つで、ここでの例ではnginxとPHP-FPMの間で交わされるプロトコルとなります。
PHP-FPMのインストールと設定
それでは、PHP-FPMをインストールしていきます。
$ sudo yum -y install php-fpm
PHP-FPM側の設定を行います。PHP-FPMの設定ファイルである/etc/php-fpm.d/www.confにPHP-FPMプロセスを実行できるユーザー及びグループを設定します。ここでは、ユーザーもグループもnginxへ修正していきます。
$ sudo vi /etc/php-fpm.d/www.conf
user = nginx
group = nginx
サービスとして実行されるよう登録していきます。
$ sudo systemctl enable php-fpm
$ sudo systemctl start php-fpm
次にnginx側の設定を行います。/etc/nginx/nginx.confを次のように設定していきます。ドキュメントルートやindexファイルの設定を行い、locationの部分でphpファイルの場合にPHP-FPMに処理を受け渡せるよう設定しています。
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name hogehoge.com;
root /var/www;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
root /var/www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
nginxとPHP-FPMを再起動して、ブラウザからphpが実行されることを確認します。