1

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

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

<? echo `whoami`; ?>

生成域所有者的用户名。

在子域的 public_html 中放置相同的脚本会生成“apache”。

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

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

SuexecUserGroup "#910" "#582"

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

我在这里想念什么?

谢谢!

4

1 回答 1

0

原来这个问题是由于几个原因:

  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. 确保所有文件所有权和权限都正确设置为帐户所有者。

于 2016-03-11T03:22:28.973 回答