首先要明确php-fpm的master是用root启用的,而pool是用www-data启用的,如下图

在Dockerfile中开启了cron后,cron是使用root运行的,如下截图

php-fpm用root运行-LMLPHP

于是就产生一个问题:

1、同一个项目用户使用浏览器访问会生产的log的属主是www-data(原因请查看这篇文章

2、同一个项目在cron跑会产生的log的属主是root

3、www-data用户权限是不准对root用户权限的log进行写操作

但不幸的是cron只允许用root权限去run

所以我们只能将php-fpm的pool也使用root权限

1、修改php-fpm.conf下include的www.conf的路径,如下图:

php-fpm用root运行-LMLPHP

2、在/usr/local/etc/php-fpm.d/www.conf下找到权限配置,如下图:

php-fpm用root运行-LMLPHP

修改为root

3、我们使用php-fpm -l会发现有一个命令可以让php-fpm用root运行,如下图:

php-fpm用root运行-LMLPHP

4、使用php-fpm -R命令就可以完全,如下图

php-fpm用root运行-LMLPHP

09-01 22:38