Почему Phplist отвечает ошибкой 500 Internal Server Error?

Почему Phplist отвечает ошибкой 500 Internal Server Error?

Я только что выполнил новую установку phplist, но когда я пытаюсь получить к нему доступ в своем браузере, я получаю пустую страницу с кодом состояния:"500 Internal Server Error"

Я использую CentOS 7, а Phplist обслуживается Apache v2.4.6 с PHP v5.6.33.

Я вижу запрос в моем apache's access_log, но в error_log нет записей. Файл конфигурации vhost и .htaccessвсе файлы кажутся в порядке.

Пожалуйста, помогите мне разобраться, почему phplist выдает ошибку 500 после новой установки.

решение1

После многих часов копания в коде phplist я исправил это, установив libsodium на свой сервер.

Прежде всего, я обнаружил, что по умолчанию phplist будетподавлятьошибки от записи в журналы. Это нигде не документировано, поэтому я оставил заметку на их странице документации с просьбой задокументировать, как снова включить запись сообщений об ошибках в файлы журналов (ссылка ниже)

Поэтому, чтобы запретить phplist скрывать ошибки в ваших файлах журнала, вам нужно будет изменить error_reporting(0)на error_reporting(1) in 'lists/admin/init.php'и 'lists/admin/index.php'asЯ описал здесь.

Затем я смог увидеть следующее исключение, выдаваемое файлом 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

Для получения более подробной информации об этой ошибке, пожалуйста, ознакомьтесь с моей статьей под названиемисправить ошибку phplist 500 из-за random_compat.

решение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

Всего наилучшего и удачи!

Связанный контент