前巻の補足(PHP-FPM実行ユーザ権限の変更)の巻

Date:

Share post:

前回の ブログ で記載した件で、配慮が足りない部分がありましたので今回追記しようと思います。

前回の巻でPHP-FPMの実行ユーザ権限については何も触っていませんので、そのまま使用するとPHPのデフォルトユーザーのままになっていると思います。特に問題がない場合はこれでもいいのですが、パーミッションの調整を行っていたりした場合には、CMSでの動作時にファイルの書き込みができないというケースもあるかと思います。

ですので、今回はPHP-FPMの実行ユーザ権限を自分(仮にjiiji)に変更します。

1)PHP-FPMのconfigを追加

PHP-FPM設定ファイルを追加する必要がありますので、今回はコマンドで行います。

cd /etc/opt/remi/php80/php-fpm.d
cp -p www.conf www-dev.conf

設定ファイルをコピーして使用します。

2)PHP-FPMのconfigの設定変更

vi www-dev.conf

設定ファイルを開き、以下のように変更しました。

*********************************************************************
[www]
  ↓
[www-dev]
*********************************************************************
user = apache
 ↓
user = jiiji

group = apache
 ↓
group = jiiji
*********************************************************************
listen = /var/opt/remi/php80/run/php-fpm/www.sock
 ↓
listen = /var/opt/remi/php80/run/php-fpm/www-dev.sock
*********************************************************************
slowlog = /var/opt/remi/php80/log/php-fpm/www-slow.log
 ↓
slowlog = /var/opt/remi/php80/log/php-fpm/www-dev-slow.log
*********************************************************************
php_admin_value[error_log] = /var/opt/remi/php80/log/php-fpm/www-error.log
 ↓
php_admin_value[error_log] = /var/opt/remi/php80/log/php-fpm/www-dev-error.log

php_value[session.save_path] = /var/opt/remi/php80/lib/php/session
 ↓
php_value[session.save_path] = /var/opt/remi/php80/lib/php/dev/session
*********************************************************************
      • 実行ユーザ権限の変更
      • ソケットの変更
      • 出力ログの変更
      • セッションディレクトリの追加

上記を行なっています。

3)セッションディレクトリを追加

先程セッションディレクトリ指定を変更しましたので、以下のようにディレクトリを追加します。併せてオーナー権限もユーザーの権限に変更します。

cd /var/opt/remi/php80/lib/php
mkdir -p dev/session
chown -R jiiji:jiiji dev/session

4).htaccessを変更

前回の巻でディレクトリごとに使用するPHPを変更するために、.htaccessに使用するソケットを指定する記述をしていましたので、それを変更します。

vi .htaccess

<FilesMatch \.(php|phar|html)$>
SetHandler "proxy:unix:/var/opt/remi/php80/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>
 ↓
<FilesMatch \.(php|phar|html)$>
SetHandler "proxy:unix:/var/opt/remi/php80/run/php-fpm/www-dev.sock|fcgi://localhost"
</FilesMatch>

5)ApacheとPHP-FPMを再起動

設定ファイルを追加しましたので、PHP-FPMとApacheを再起動します。

6)ソケット追加の確認

再起動後にソケットのファイルが作成できているかを確認します。

cd /var/opt/remi/php80/run/php-fpm
ls
total 4
-rw-r--r-- 1 root root 5 Aug 25 12:35 php-fpm.pid
srw-rw----+ 1 root root 0 Aug 25 12:35 www-dev.sock
srw-rw----+ 1 root root 0 Aug 25 12:35 www.sock

上記のような感じでソケットが作成されていると思います。

7)phpinfoでのPHPバージョン確認

該当ディレクトリでphpinfoを表示して、自分が思っているPHPバージョンで動作しているかを確認します。

8)CMSで各種動作を確認

自分が思っているPHPバージョンで動作しているCMSで各種動作(例:投稿追加・削除、画像追加・削除、プラグイン追加・削除)などが実行できるかを確認します。

Related articles

ローカルSMTPメールサーバ(Mailpit)をE...

ローカル環境でのメール送受信テストにつ...

EC-CUBE 4系のプラグイン開発について その...

今回は、ちょっとハマったプラグインのイ...

EC-CUBE 4系のプラグイン開発について その...

前回のブログの最後でちょっと書いたので...

EC-CUBE 4系のプラグイン開発について その...

前回、プラグインを一旦有効化させて管理...