php-fpmとnginx

2018-12-02 22:34:38

PHPを利用するに当たってApacheであればモジュールとして内部に組み込むことができる
一方nginxはphp-fpmを別に起動して連携する方式となる

php-fpmのインストール

2019-03-17 22:35:15

CentOS7ではデフォルトが5系統になっているが、Ubuntuでは現時点で7.2がデフォルトになっている

php-fpmとxdebugをインストールする
apt -y install php-fpm


7.3をインストールする場合は事前に以下のコマンドを実行
apt -y install software-properties-common
apt-add-repository -y ppa:ondrej/php
apt -y install php7.3-fpm


php-fpmの起動と有効化

2018-12-02 22:37:36

php-fpmを起動時に有効にし、その場で起動する 

systemctl enable php7.3-fpm
systemctl start php7.3-fpm

php-fpmにnginxと連携するための設定を行う

2018-12-02 22:39:16

/etc/php/7.2/fpm/pool.d/www.conf に設定を記述していくことになる
デフォルトではwww-dataというユーザに対する設定が入っている

これはUbuntuのnginxのユーザ名である
CentOS7ではデフォルトがApacheになっていたので修正が必要だったが、Ubuntuでは必要ない

nginxからphp-fpmに接続するための設定

2018-12-02 22:46:44

/etc/nginx/sites-enabled/default 

        location ~ \.php$ {
               include snippets/fastcgi-php.conf;
         
               # With php-fpm (or other unix sockets):
               fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
               # With php-cgi (or other tcp sockets):
               #fastcgi_pass 127.0.0.1:9000;
        }


親切に最初からPHPを利用するためのコードが入っている
やることは#のコメントアウトを解除するだけだ
fastcgi_passはphp7.0になっているところを7.3に直す必要がある
また、fastcgi_passの127.0.0.1:9000の方はコメントアウトしたままにすること

UNIXドメインソケットを使った方が高速に動作する

確認方法

2018-12-02 22:55:15

/var/www/html/test.php

<?php
phpinfo();



http://アドレス/test.php

これでphpinfoの出力結果が表示されれば作業完了だ