Apache-2.4

為什麼 Phplist 響應 500 內部伺服器錯誤?

  • March 28, 2019

我剛剛重新安裝了 phplist,但是當我嘗試在瀏覽器中訪問它時,我得到一個帶有狀態程式碼的空頁面:"500 Internal Server Error"

我正在執行 CentOS 7,並且 Phplist 正在使用 Php v5.6.33 的 Apache v2.4.6 上提供服務。

我可以在我的 apache 中看到查詢access_log,但 error_log 中沒有條目。vhost 配置文件和.htaccess文件似乎都正常。

請幫助我調試為什麼 phplist 在全新安裝後給我一個 500 錯誤。

在研究了 phplist 程式碼幾個小時後,我通過在我的伺服器上安裝 libsodium 來解決這個問題。

首先,我發現——預設情況下——phplist 會禁止將錯誤寫入日誌。這在任何地方都沒有記錄,所以我在他們的文件頁面上留下了一個註釋,要求他們記錄如何重新啟用將錯誤消息寫入日誌文件(下面的連結)

因此,為了防止 phplist 抑制日誌文件中的錯誤,您需要更改error_reporting(0)error_reporting(1) in'lists/admin/init.php'我在此處描述'lists/admin/index.php'的。

然後我能夠看到文件在 apacheerror_log文件中引發了以下異常,該'lists/admin/inc/random_compat/random.php'文件是random_compatphplist 中包含的庫的一部分。

[Thu Aug 23 00:06:29.560157 2018] [:error] [pid 17617] [client 127.0.0.1:51262] PHP Fatal error:  Uncaught exception 'Exception' with message 'There is no suitable CSPRNG installed on your system' in /var/www/html/phplist.opensourceecology.org/public_html/lists/admin/inc/random_compat/random.php:204\nStack trace:\n#0 /var/www/html/phplist.opensourceecology.org/public_html/lists/admin/defaultconfig.php(3): random_bytes(10)\n#1 /var/www/html/phplist.opensourceecology.org/public_html/lists/admin/index.php(103): require_once('/var/www/html/p...')\n#2 {main}\n  thrown in /var/www/html/phplist.opensourceecology.org/public_html/lists/admin/inc/random_compat/random.php on line 204

維護者的官方回應(參見 github 上 random_compat repo 的 issue #99)是簡單地添加'/dev/urandom'open_basedirin '/etc/php.ini'. 就個人而言,這似乎不是最明智的選擇..

或者,我決定安裝 libsodium。在 CentOS 7 中,這意味著只需安裝'php-pecl-libsodium'軟體包並重新啟動 apache 網路伺服器。

yum install php-pecl-libsodium
httpd -t && service httpd restart

有關此錯誤的更多資訊,請參閱我的文章,標題為fix phplist 500 error due to random_compat

引用自:https://serverfault.com/questions/927998