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

Я только что выполнил новую установку 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 после новой установки.

0
задан 28 March 2019 в 13:06
2 ответа

После того, как я копался в коде 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 .

0
ответ дан 5 December 2019 в 18:43

У меня возникла эта ошибка, так как несколько месяцев назад мне пришлось установить старые версии 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

С уважением и удачи!

-1
ответ дан 5 December 2019 в 18:43

Теги

Похожие вопросы