CentOS 8 で、nginx + php-fpm を使用するための設定について
インストール
CentOS 8
CentOS 8では、remiレポジトリの登録が完了していれば、以下でphp-fpmはインストールできます。
yum install php[バージョン]-php-fpmPHP 7.4の場合は、以下になります。
yum install php74-php-fpm
nginx用設定
remiでインストールしている場合、php-fpmの設定ファイルは以下のディレクトリにあります。 この中の設定ファイルをnginx用に編集します。
/etc/opt/remi/php[バージョン]/PHP 7.4の場合は、以下のディレクトリになります。
/etc/opt/remi/php74/
nginxの設定は、以下を参照
www.conf
www.confファイルの場所は、以下になります。
/etc/opt/remi/php[バージョン]/php-fpm.d/www.confPHP 7.4の場合は、以下になります。
/etc/opt/remi/php74/php-fpm.d/www.conf
編集前にバックアップを作成しておきます。
cp /etc/opt/remi/php74/php-fpm.d/www.conf /etc/opt/remi/php74/php-fpm.d/www.conf.org
バックアップを作成したら、www.confの以下の項目を変更します。
user = apache group = apache listen = /var/opt/remi/php74/run/php-fpm/www.sock ;listen.owner = nobody ;listen.group = nobody ;listen.mode = 0660 listen.acl_users = apache上記項目を以下のように変更します。
user = nginx ; 変更 group = nginx ; 変更 listen = /var/run/php-fpm/php-fpm.sock ; 変更 ;listen.owner = nobody ;listen.group = nobody ;listen.mode = 0660 listen.owner = nginx ; 新規追加 listen.group = nginx ; 新規追加 ;listen.acl_users = apache ; 無効化
ソケット通信用のsockファイルは、PHPのバージョンに依存しないように、/var/run/php-fpm/php-fpm.sockに変更しています。 また、デフォルトで/var/run/php-fpm/ディレクトリが無いので、ディレクトリを作成します。 ただし、CentOS7、8では、OS再起動時に/var/run/以下は毎回初期化されるので、起動時に自動でディレクトリを作成するための 設定ファイルを追加する必要があります。詳細は以下を参照。
listen.xxxの箇所はアクセス権の設定で、デフォルトでは POSIX ACLが有効になっています。 ここでは、POSIX ACLを無効にして、listen.ownser, groupで指定するように変更しています。
起動
CentOS 8の場合は、以下のコマンドで起動します。
systemctl start php[バージョン]-php-fpmPHP 7.4の場合は、以下になります。
systemctl start php74-php-fpm
エラーが発生せずに正常に起動できたら、sockファイルのアクセス権限の確認をしておきます。 ユーザー、グループが、nginxでない場合は、www.confを修正して再起動します。
ls -l /var/run/php-fpm total 0 srw-rw----. 1 nginx nginx 0 Oct 4 02:56 php-fpm.sock
自動起動の設定
CentOS 8の起動時に自動起動するように、以下を実行します。
systemctl enable php[バージョン]-php-fpmPHP 7.4の場合は、以下になります。
systemctl enable php74-php-fpm