Phplist が 500 内部サーバー エラーで応答するのはなぜですか?

Phplist が 500 内部サーバー エラーで応答するのはなぜですか?

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 エラーを返す理由をデバッグするのを手伝ってください。

答え1

phplist コードを何時間も調べた後、サーバーに libsodium をインストールしてこの問題を修正しました。

まず、phplistはデフォルトで抑制するエラーがログに書き込まれないようにします。これはどこにも文書化されていないので、エラー メッセージをログ ファイルに書き込む方法を再度有効にする方法を文書化するよう、ドキュメント ページにメモを残しました (以下のリンク)。

したがって、phplistがログファイルからエラーを抑制しないようにするには、 inとasを次のerror_reporting(0)ように変更する必要があります。error_reporting(1)'lists/admin/init.php''lists/admin/index.php'ここで説明した

次に、 phplist に含まれているライブラリの一部であるファイルerror_logによって apache ファイルに次の例外がスローされているのを確認できました。'lists/admin/inc/random_compat/random.php'random_compat

[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 リポジトリの問題 #99 を参照してください。)を'/dev/urandom'に追加するだけです。個人的には、これはあまり賢明な選択肢ではないように思えました。open_basedir'/etc/php.ini'

あるいは、libsodium をインストールすることにしました。CentOS 7 では、パッケージをインストールして'php-pecl-libsodium'Apache Web サーバーを再起動するだけです。

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

このエラーの詳細については、私の記事「random_compat による phplist 500 エラーを修正

答え2

数か月前からこのエラーに悩まされており、phplist の古いバージョンをインストールする必要がありました。

新しいバージョンの PHP (私の場合は PHP-5.2 を使用していましたが、CentOS 7 には PHP-5.4 が付属していました) には、「date.timezone」という新しいパラメータ (私にとっては新しいパラメータ) があることを発見しました。私の「/etc/php.ini」には、次の内容が含まれています。

date.timezone = "アメリカ/グアヤキル"

有効なタイムゾーン名は次の場所で確認できます。

http://php.net/manual/es/timezones.php

よろしくお願いいたします。幸運を祈ります!

関連情報