我有一个 centos 6 服务器,它使用 apache 连接 php-fpm 来运行 php 站点,我使用用户的主目录作为网站根目录,例如 /home/user1, 。另一方面,php-fpm www.conf,用户和组行我设置为apache。
因此,当 php 写入或创建文件(例如 /home/user1/var/log/file)时,它将使用 apache:apache 作为所有者。然后我需要在 /home/user1/var/log/“chmod -R ug+s ”运行命令。让 php 创建一个文件作为 apache:user1 而 user1 是组
所以我的问题是,可以设置 php-fpm 使用目录用户所有者(user1:user1)而不是 apache:apache 创建文件
答案1
您可以使用 Apache 中的 suPHP 模块来指定用户权限来运行 PHP 脚本。你可以看看这篇文章 http://blog.secaserver.com/2012/02/linux-install-configure-apache-suphp/
答案2
在 pool.d 目录中创建 site.conf 文件,而不是 www.conf。
然后您可以为每个站点设置一个用户:
user = myuser
group = $user
你也可以做
site = $pool
group = $pool
如果您的用户名是site.example.com
(对于 devops 来说很方便)。
但考虑到您可能需要
site = $pool
group = httpd
或者
group = www-data
(在 Debian 上)如果您希望 apache 读取池创建的文件,例如图像上传,如果您使用最低权限。
确保您的套接字位置和权限也一致,以便 apache 可以与 php_fpm 通信。