apache 由于套接字的所有权问题,无法以shell用户身份执行php

wqlqzqxt  于 2023-06-06  发布在  Apache
关注(0)|答案(1)|浏览(138)

我在Debian 11(Bullseye)上以FPM的形式运行Apache + PHP。* 我需要而且无法改变这些!*
我的PHP www池包含

user = shell_user
group = shell_user

同样,Apache也以同样的方式运行配置。
当我重新启动PHP服务(作为root)时,我遇到了这个问题:

cd /run/php
systemctl start php7.4-fpm.service
ls -la /run/php/

输出:

total 4
drwxr-xr-x  2 www-data www-data 100 Jun  5 11:07 .
drwxr-xr-x 23 root     root     700 Jun  5 10:53 ..
-rw-r--r--  1 root     root       5 Jun  5 11:07 php7.4-fpm.pid
srw-rw----  1 www-data www-data   0 Jun  5 11:07 php7.4-fpm.sock
lrwxrwxrwx  1 root     root      30 Jun  5 09:50 php-fpm.sock -> /etc/alternatives/php-fpm.sock

正如您所看到的,.sock 文件无论如何都被创建为 www-data:www-data 所有。
所以,当我从Web浏览器加载PHP文件时,我在浏览器中得到了一个503错误,这在Apache的错误日志文件中:

[Mon Jun 05 11:03:25.599836 2023] [proxy:error] [pid 19819:tid 139705513932544] (13)Permission denied: AH02454: FCGI: attempt to connect to Unix domain socket /run/php/php7.4-fpm.sock (*:80) failed

如果我将sock所有权手动更改为 www-data:shell_user,它就可以工作。
但我必须确保所有这些都能按预期工作,即使在重新启动或服务重新启动后也是如此。

oknwwptz

oknwwptz1#

解决了
在PHP www池配置文件中,我还需要设置

listen.owner = shell_user
listen.group = shell_user

相关问题