Por que o Phplist está respondendo com 500 Internal Server Error?

Por que o Phplist está respondendo com 500 Internal Server Error?

Acabei de fazer uma nova instalação do phplist, mas quando tento acessá-lo no meu navegador, recebo uma página vazia com código de status:"500 Internal Server Error"

Estou executando o CentOS 7 e o Phplist está sendo servido no Apache v2.4.6 com Php v5.6.33.

Posso ver a consulta no meu apache access_log, mas não há entradas no error_log. O arquivo de configuração do vhost e .htaccesstodos os arquivos parecem ok.

Por favor, ajude-me a depurar por que o phplist está me dando um erro 500 após uma nova instalação.

Responder1

Depois de vasculhar o código do phplist por muitas horas, resolvi isso instalando o libsodium no meu servidor.

Primeiro de tudo, descobri que - por padrão - o phplist irásuprimirerros sejam gravados nos logs. Isso não está documentado em nenhum lugar, então deixei uma nota na página de documentação solicitando que documentassem como reativar a gravação de mensagens de erro nos arquivos de log (link abaixo)

Então, para evitar que o phplist suprima erros dos seus arquivos de log, você vai querer mudar error_reporting(0)para error_reporting(1) in 'lists/admin/init.php'e 'lists/admin/index.php'asEu descrevi aqui.

Então pude ver a seguinte exceção sendo lançada no error_logarquivo Apache pelo 'lists/admin/inc/random_compat/random.php'arquivo, que faz parte da random_compatbiblioteca incluída no 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

A resposta oficial dos mantenedores (veja a edição nº 99 do repositório random_compat no github) é simplesmente '/dev/urandom'adicionar open_basedirin '/etc/php.ini'. Pessoalmente, essa não parecia a opção mais sábia.

Alternativamente, decidi instalar o libsodium. No CentOS 7, isso significa apenas instalar o 'php-pecl-libsodium'pacote e reiniciar o servidor apache.

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

Para obter mais informações sobre esse erro, consulte meu artigo intituladocorrigir erro phplist 500 devido a random_compat.

Responder2

Eu estava sofrendo com esse erro há alguns meses, tive que instalar versões antigas do phplist.

Acabei de descobrir que as novas versões do php (no meu caso eu estava trabalhando com php-5.2 mas o centos 7 veio com php-5.4) tem um novo parâmetro (ok... novo para mim) chamado "date.timezone". Meu "/etc/php.ini" agora tem:

date.timezone = "América/Guiaquil"

Você pode verificar os nomes de fuso horário válidos em:

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

Atenciosamente e boa sorte!

informação relacionada