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の間で交わされるプロトコルとなります。

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が実行されることを確認します。