
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
よろしくお願いいたします。幸運を祈ります!