Webmin / Virtualmin 将 php 作为 www-data 运行,无法查看 .htaccess 和写入

Webmin / Virtualmin 将 php 作为 www-data 运行,无法查看 .htaccess 和写入

我已在 virtualmin 论坛上询问过这个问题,但没有得到任何帮助。

最近发生了“一些事情”,似乎 apache 服务变得有点奇怪。

它的作用:它将所有 Apache 流量作为 www-data 运行,并且有时将 php5-cgi 进程生成为 www-data,这是一个问题,因为所有域用户都拥有自己的目录,而默认权限不允许 www-data 写入这些文件夹(文件上传已失效)或读取 .htaccess(wordpress 中的永久链接已损坏)。

我已经连续在 Google 上搜索了这个问题大约一个星期,尝试了几乎所有能找到的方法,但一无所获。

我认为唯一可能导致这一切的原因是这个页面:http://-i.imgur.com/NYW3x.png(被垃圾邮件过滤器关闭)所以我想如果我将它设置为“默认”,它可能会神奇地再次开始工作,但它所做的只是“崩溃”apache(所有网站超时)。

我认为它与“mpm”模块或其他东西有关,但我在设置中找不到任何相关内容可以修改以使其正常工作。

有人能给我指明正确的方向吗?

系统信息:

Webmin version   1.580
Kernel and CPU    Linux 2.6.35.4-rscloud on x86_64
Virtualmin version 3.90.gpl GPL
Ubuntu 10.04 LTS (Lucid)

顶部的几张截图

答案1

在 Debian 服务器上更新到 php 5.4+ 时我遇到了同样的问题。

默认情况下,php5.4+ 发行版将SetHandler在其 apache conf 文件中包括该指令。Virtualmin 为每个站点添加自己的SetHandler配置指令。因此,为了使其正常工作,您需要从默认 php conf 文件中禁用该指令。

打开您的php.confphp5.confapache conf 文件。

/etc/apache2/mods-available/php5.conf
/etc/apache2/mods-available/php_cgi5.conf

用 .注释掉SetHandler#,或者整个 FilesMatch 节点。

#<FilesMatch ".+\.ph(p[345]?|t|tml)$">
#    SetHandler application/x-httpd-php
#</FilesMatch>

重新启动 apache。

答案2

重新检查配置将检测您的系统上的 suexec 是否以某种方式配置错误,但由于它有时有效,这意味着您在 Apache 配置中有一些配置覆盖了 Virtualmin 的设置。

某些域或目录未调用 suexec 是导致问题的根源。这表明存在几种可能性...mod_php 不支持 suexec,因此您需要使用 FCGId 模式或 CGI 模式才能使 suexec 正常工作。

我的假设是,您的 httpd 配置中有一些自定义 PHP 处理程序,导致某些应用程序使用 mod_php 而不是 CGI 或 FCGId。Virtualmin 仅通过域级特异性来控制这一点,因此如果对于给定域来说确实是“有时”,则必须是目录级或更具体。

因此,请检查配置文件中是否存在导致使用 mod_php 而不是 FCGId 或 CGI 的自定义处理程序。此外,据我所知,MPM 与 mod_php 不兼容。因此,如果您曾经使用过 MPM,您甚至应该加载 mod_php,因为您无法安全地使用它。

相关内容