服务php-fpm没有获得用户权限

我有一个php-fpm的问题。 它实际上是php7版本。 我有Drupal,它会抱怨某些目录不可写。 只有当我启动php-fpm作为这样的服务:

#service php-fpm start

我使用nginx作为web服务器和php-fpm,在端口127.0.0.1:9000。 这是我在/etc/php-fpm.d/www.conf中的conf:

; Start a new pool named 'www'. [www] user = nginx group = nginx listen = 127.0.0.1:9000 

web的所有文档 – drupal – 属于nginx:nginx。 如果我开始服务,也是

#service php-fpm start

要么

#systemctl启动php-fpm

它会抱怨权限,即使ps显示(ps aux | grep php-fpm):

 root 1591 0.0 0.8 528916 31260 ? Ss 07:49 0:00 php-fpm: master process (/etc/php-fpm.conf) nginx 1593 0.0 2.2 567252 79768 ? S 07:49 0:03 php-fpm: pool www nginx 1594 0.0 1.9 565248 72004 ? S 07:49 0:01 php-fpm: pool www nginx 1595 0.0 2.0 567268 73040 ? S 07:49 0:02 php-fpm: pool www nginx 1596 0.0 2.0 573440 75320 ? S 07:49 0:01 php-fpm: pool www nginx 1597 0.0 1.9 568704 71812 ? S 07:49 0:02 php-fpm: pool www nginx 1600 0.0 2.0 572360 74632 ? S 07:50 0:01 php-fpm: pool www nginx 1604 0.0 1.8 565264 68584 ? S 07:53 0:01 php-fpm: pool www 

所以它看起来像用户被正确设置。 但它不工作。

现在我真的不明白,如果我执行这个:

#/ usr / sbin / php-fpm –nodeemonize –fpm-config /etc/php-fpm.conf

服务中描述的是哪个命令(/usr/lib/systemd/system/php-fpm.service) – 然后我没有权限问题。

ps aux |的输出 grep php-fpm是相同的,nginx是用户。

我正在执行一切作为根。

这怎么可能?

编辑

这已成为SElinux的一个问题。 我在审计日志中有这个:

 denied { write } for pid=2755 comm="php-fpm" name="files" dev="xvda1" ino=9167949 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:httpd_sys_content_t:s0 tclass=dir 

我想要php-fpm写的目录就是名为vanilladrupal的目录

 # ls -Z . drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 html drwxr-xr-x. nginx nginx unconfined_u:object_r:httpd_sys_content_t:s0 vanilladrupal 

这个过程php-fpm有这样的背景:

  ps Zaux | grep php-fpm system_u:system_r:httpd_t:s0 root 2749 0.0 0.8 528916 31212 ? Ss 03:03 0:00 php-fpm: master process (/etc/php-fpm.conf) system_u:system_r:httpd_t:s0 nginx 2751 0.0 0.5 529548 19456 ? S 03:03 0:00 php-fpm: pool www and the other pool wwww look the same 

selinuxconfiguration是这样的:

 SELINUX=enforcing SELINUXTYPE=targeted 

我应该做什么改变?

( 这里有一种说法,它的设置方式,应该没有权限问题)

(我试图改变目录“香草Drupal”的上下文看起来一样的HTML(我认为,如果我已经把目录里面的HTML我不会有任何问题),通过改变用户。更多的错误(禁止{execmem})。

您需要更改Drupal需要写入httpd_sys_rw_content_t所有文件的SELinux上下文,如下所示:

semanage fcontext -a -t httpd_sys_rw_content_t'/usr/share/nginx/html/drupal/admin/config/media/file-system(/.*)?'

我不知道你的path是什么,你需要检查在Configuration – > Media – > Filesystem Drupal界面以获取更多信息。