php-fpmパーミッション設定

CentOS Stream 8

phpMyAdmin構築からしばらく時間がたった時にブラウザで接続しようとしたら、エラーが出て接続できなかった(確かエラー内容はInternal Server Error)
php-fpmのsockの所有者をh2oに設定していたのだが、php-fpmが定期的に再起動されており、その都度所有者がrootに戻ってしまっていることが原因らしい

所有者が変わらないように恒久的な設定を行う

configの編集

cp /etc/php-fpm.d/www.conf{,.org}
vi /etc/php-fpm.d/www.conf

変更箇所その1

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = apache

; RPM: Keep a group allowed to write in log dir.
group = apache

下記の通りuserとgroupをh2oに変更

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = h2o

; RPM: Keep a group allowed to write in log dir.
group = h2o

変更箇所その2

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server.
; Default Values: user and group are set as the running user
;                 mode is set to 0660

;listen.owner = nobody
;listen.group = nobody
;listen.mode = 0660

; When POSIX Access Control Lists are supported you can set them using
; these options, value is a comma separated list of user/group names.
; When set, listen.owner and listen.group are ignored
listen.acl_users = apache,nginx

下記の通りlisten.~を変更
listen.acl_users が設定されているとlisten.ownerとlisten.groupが無視されるとのことなので、listen.acl_usersのコメントアウトを忘れないようにする

; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server.
; Default Values: user and group are set as the running user
;                 mode is set to 0660
listen.owner = h2o
listen.group = h2o
;listen.mode = 0660

; When POSIX Access Control Lists are supported you can set them using
; these options, value is a comma separated list of user/group names.
; When set, listen.owner and listen.group are ignored
;listen.acl_users = apache,nginx


php-fpm再起動

systemctl restart php-fpm
systemctl status php-fpm

phpMyAdmin接続

接続すると、下記のようにエラーがいっぱい出る

どうやらまだ権限周りで設定足りていないところがありそうなので引き続き修正していく

/var/lib/phpMyAdminの権限変更

以前別のサーバーでnginxで構築してた際、/var/lib/phpMyAdminフォルダ以下の権限をnginxに変更していたので、それにならって今回はh2oで設定する

ll /var/lib/phpMyAdmin/
合計 20
drwxr-x--- 2 apache apache 4096  2月 26 10:48 cache
drwxr-x--- 2 apache apache 4096  2月 24 16:56 config
drwxr-x--- 2 apache apache 4096  2月 24 16:56 save
drwxr-x--- 3 apache apache 4096  3月  3 11:47 temp
drwxr-x--- 2 apache apache 4096  2月 24 16:56 upload
chown h2o. /var/lib/phpMyAdmin/*
ll /var/lib/phpMyAdmin/
合計 20
drwxr-x--- 2 h2o h2o 4096  2月 26 10:48 cache
drwxr-x--- 2 h2o h2o 4096  2月 24 16:56 config
drwxr-x--- 2 h2o h2o 4096  2月 24 16:56 save
drwxr-x--- 3 h2o h2o 4096  3月  3 11:47 temp
drwxr-x--- 2 h2o h2o 4096  2月 24 16:56 upload

再度phpMyAdminに接続

再度接続してみる

エラーが無事消えました

参考

コメント

タイトルとURLをコピーしました