我繼承了在 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 指令,或在網域本身的虛擬主機中新增 FCGI 指令。