Я только что выполнил новую установку phplist, но когда я пытаюсь получить к нему доступ в моем браузере, я получаю пустую страницу с кодом состояния: » 500 Internal Server Error "
Я использую CentOS 7, и Phplist обслуживается на Apache v2.4.6 с Php v5.6.33.
Я вижу запрос в моем apache access_log
, но в error_log нет записей. Конфигурационный файл vhost и файлы .htaccess
кажутся нормальными.
Пожалуйста, помогите мне отладить, почему phplist выдает ошибку 500 после новой установки.
После того, как я копался в коде phplist в течение многих часов, я исправил это, установив libsodium на свой сервер.
Прежде всего, я обнаружил, что по умолчанию phplist будет подавить запись в журналы ошибок . Это нигде не задокументировано, поэтому я оставил заметку на их странице документации с просьбой задокументировать, как повторно включить запись сообщений об ошибках в файлы журнала (ссылка ниже)
Чтобы предотвратить подавление ошибок phplist из ваших файлов журнала , вам нужно изменить error_reporting (0)
на error_reporting (1)
в списках 'lists / admin / init.php'
и ' /admin/index.php'
как Я описал здесь .
Затем я смог увидеть следующее исключение, созданное в файле apache error_log
файлом 'lists / admin / inc / random_compat / random.php'
, то есть часть библиотеки random_compat
, которая включена в phplist.
[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
Официальный ответ от сопровождающих ( см. выпуск № 99 репозитория random_compat на github ) - просто добавить От '/ dev / urandom'
до open_basedir
в '/ etc / php.ini'
. Лично мне это показалось не самым разумным вариантом…
В качестве альтернативы я решил установить libsodium. В CentOS 7 это означает просто установку пакета 'php-pecl-libsodium'
и перезапуск веб-сервера apache.
yum install php-pecl-libsodium
httpd -t && service httpd restart
Для получения дополнительной информации об этой ошибке см. Мою запись под названием fix Ошибка phplist 500 из-за random_compat .
У меня возникла эта ошибка, так как несколько месяцев назад мне пришлось установить старые версии phplist.
Я только что обнаружил, что новые версии php (в моем случае я работал с php-5.2, но centos 7 поставляется с php-5.4) имеет новый параметр (хорошо ... новый для меня), называемый "date.timezone". В моем "/etc/php.ini" теперь есть:
date.timezone = "America / Guayaquil"
Вы можете проверить действительные названия часовых поясов по адресу:
http://php.net/manual/es /timezones.php
С уважением и удачи!