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,这是一种安全风险/不良做法。
我在这里错过了什么?
谢谢!
事实证明,这个问题是由于以下几点原因造成的:
-
默认情况下mod_php5启用。添加指令
php_admin_value engine Off
到此虚拟主机的 httpd.conf 文件禁用与 Suexec 不兼容的mod_php5。
-
添加FCGIWrapper指令,该指令不是由Webmin创建的
FCGIWrapper [home dir]/fcgi-bin/php5.fcgi .php
-
在 fcgi-bin 目录中创建 php5.fcgi 文件。 我刚刚从另一个虚拟主机复制了这个文件,因为它只是一个启动 php 解释器的 bash shell 脚本。
-
将 AddHandler 和 AddType 指令添加到主 VirtualHost 部分以及public_html
<directory>
部分:AddType application/x-httpd-php .php AddHandler fcgid-script .php
-
确保将所有文件所有权和权限正确设置为帐户的所有者。