我在 CentOS 7 上设置了 php-fpm,每个用户都有自己的池和日志文件。我想确保每个用户都能查看自己的日志文件。
这对于 PHP error_log 非常有用,它由与 php-fpm 池进程运行相同的用户/组所有者创建。
不幸的是,每个池的 PHP slowlog 都是以“root”身份创建的,权限为“600”。有没有办法配置 php-fpm 以使用正确的文件所有者和/或可配置的文件权限创建 slowlog 文件?
以下配置:
user = some_user
group = some_group
php_admin_value[error_log] = path-to-logs/php-error.log
php_admin_flag[log_errors] = on
request_slowlog_timeout = 10s
slowlog = path-to-logs/php-slow.log
导致 path-to-logs 中的文件权限如下:
-rw-r--r-- 1 some_user some_group 7244 Mar 10 22:54 php-error.log
-rw------- 1 root root 2307 Mar 9 20:21 php-slow.log
答案1
据我所知,没有办法直接在配置上设置所有权或权限级别。一种解决方法是强制 initscript 在重启后为您设置这些权限。
事实上,如果您决定(并且应该)轮换 slowlog,那么更好的方法是使用 logrotate.d 脚本来确保该脚本会改变您在 initscript 上设置的任何内容。
这可能看起来很奇怪,尽管在池级别(以指定用户运行)中定义了慢日志,但慢日志是由主进程生成的,因此归 root 所有。
配置文件中肯定应该有一个设置来设置权限级别和所有权,类似于@sandyskies-chan 在评论中链接的设置