为什么子域中的 php 文件不在与主域 (Webmin) 相同的用户/组下运行


Why don't php files in subdomain run under same user/group as main domain (Webmin)?

System:运行 CentOS 6 和 Virutalmin/Webmin 的 LAMP 堆栈。

我在现有的主域(也使用 Webmin 创建)中使用 Webmin 设置了一个子域。 主域以用户 910 组 582 身份运行。 使用以下代码将 php 脚本放在主域的public_html目录中:

<? echo `whoami`; ?>

生成域所有者的用户名。

将相同的脚本放在子域的public_html中会生成"apache"。

目录和文件具有相同的所有权 (910:582)。

在/etc/httpd/

conf/httpd.conf 中,两个虚拟主机具有相同的 SuexecUserGroup 行:

SuexecUserGroup "#910" "#582"

我需要子域在同一用户下运行,以便Wordpress可以直接访问文件。否则,我必须将子域中的所有内容都归结为 apache:apache,这是一种安全风险/不良做法。

我在这里错过了什么?

谢谢!

事实证明,这个问题是由于以下几点原因造成的:

  1. 默认情况下mod_php5启用。添加指令

    php_admin_value engine Off
    

到此虚拟主机的 httpd.conf 文件禁用与 Suexec 不兼容的mod_php5。

  1. 添加FCGIWrapper指令,该指令不是由Webmin创建的

    FCGIWrapper [home dir]/fcgi-bin/php5.fcgi .php
    
  2. 在 fcgi-bin 目录中创建 php5.fcgi 文件。 我刚刚从另一个虚拟主机复制了这个文件,因为它只是一个启动 php 解释器的 bash shell 脚本。

  3. 将 AddHandler 和 AddType 指令添加到主 VirtualHost 部分以及public_html <directory>部分:

    AddType application/x-httpd-php .php
    AddHandler fcgid-script .php
    
  4. 确保将所有文件所有权和权限正确设置为帐户的所有者。