我在一台运行基于 Apache 2.4/Debian 的 wordpress 网站的服务器上继承了 sysadmin 角色。它几乎可以正常工作,但它不时发出“500 内部服务器错误”。在我的 error.log 文件中,我看到:
End of script output before headers: php5, referer: http://www.xxxxxxx.xxx/wp-admin/post-new.php
我认为服务器正在系统范围内运行 mod_fcgid,因为我有
/etc/apache2/conf-enabled/fcgid.conf
内容如下:
<Location />
AddHandler fcgid-script .php
Options +ExecCGI +FollowSymLinks
FcgidWrapper /usr/bin/php-cgi .php
</Location>
<Files ~ (\.php)>
AddHandler fcgid-script .php
FCGIWrapper /usr/lib/cgi-bin/php5 .php
Options ExecCGI FollowSymLinks
allow from all
</Files>
我还发现了其他问题,这里和这里,它们与我得到的错误大致相同,并且指出一些 mod_fcgid 配置错误是可能的原因(PHP_FCGI_CHILDREN 和 PHP_FCGI_MAX_REQUESTS 变量中的值错误)。本论坛中的回复还表明 fcgid 配置错误,并且似乎提供了有关该问题的更多详细信息(接受的线程/连接数量可能存在瓶颈),但缺少对如何处理的逐步解释。
我不是 mod_fcgid 专家。您能帮助我了解应该在哪里以及如何设置 PHP_FCGI_CHILDREN 和 PHP_FCGI_MAX_REQUESTS 变量的正确值吗?
答案1
您可以在 Apache pre_virtualhost_global.conf 或 wordpress 安装的 .htaccess 文件中添加 FCGI 指令,或者在域本身的 vhost 中添加。