Wordpress、Virtualmin & PHP7:mod_fcgid:从 FastCGI 服务器读取数据时出错

Wordpress, Virtualmin & PHP7: mod_fcgid: error reading data from FastCGI server

我在我的服务器上安装了 Wordpress,我在其中使用版本为 PHP7(主要版本)和 PHP56(次要版本)的 Virtualmin。我面临的问题是 xmlrpc.php:

(104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server, referer: https://example.com/xmlrpc.php?for=jetpack&token=sometokenhere
End of script output before headers: xmlrpc.php, referer: https://example.com/xmlrpc.php?for=jetpack&token=sometokenhere

自从我升级到 PHP 版本 7 后,这种情况一直在发生。如果我切换回 5.6,对 xmlrpc 的调用工作正常。

当我 运行 httpd -V 使用非 sudo 用户时,出现以下错误:

SuexecUserGroup configured, but suEXEC is disabled: Invalid owner or file mode for /usr/sbin/suexec

... 发生这种情况是因为权限不正确,即 510。我已将 suexec 的权限更改为 4755,现在看起来像这样 -rwsr-xr-x 1 root apache 15352 Jul 19 2016 /usr/sbin/suexec 和错误消失了。

此更改后,如果我 运行 httpd -V 使用非 sudo 用户,我会收到一个新错误:

AH00112: Warning: DocumentRoot [/home/mydomain_com/public_html] does not exist
AH00526: Syntax error on line 378 of /etc/httpd/conf/httpd.conf:
Wrapper /home/mydomain_com/fcgi-bin/php5.6.fcgi cannot be accessed: (13)Permission denied

当我 运行 httpd -V 与未关联域的用户一起使用时,会发生此错误。如果我使用 mydomain_com 用户和 运行 httpd -V 登录,错误不再是关于 mydomain.com,而是关于另一个托管域(没有任何 Wordpress 安装事情)。

所以这与特定的 domain/CMS 无关。我认为这是 PHP7.

的错误配置

你对此有何看法?

这是 Jetpack JSON API 和 PHP7 的一个已知问题,似乎是由 opcache 引起的。问题详情 here.

我通过在 Wordpress 的根目录中创建一个包含以下行的 .user.ini 文件来禁用 opcache:
opcache.enable=0
没有更多的错误,Wordpress Android 应用程序工作:)

有关禁用临时 opcache 的更多信息here