
Acabo de realizar una nueva instalación de phplist, pero cuando intento acceder a él en mi navegador, aparece una página vacía con el código de estado:"500 Internal Server Error"
Estoy ejecutando CentOS 7 y Phplist se sirve en Apache v2.4.6 con Php v5.6.33.
Puedo ver la consulta en mi Apache access_log
, pero no hay entradas en error_log. El archivo de configuración de vhost y .htaccess
los archivos parecen estar bien.
Ayúdenme a depurar por qué phplist me da un error 500 después de una instalación nueva.
Respuesta1
Después de investigar el código phplist durante muchas horas, solucioné el problema instalando libsodium en mi servidor.
En primer lugar, descubrí que, de forma predeterminada, phplistreprimirerrores se escriban en registros. Esto no está documentado en ninguna parte, así que dejé una nota en su página de documentación pidiéndoles que documentaran cómo volver a habilitar la escritura de mensajes de error en archivos de registro (enlace a continuación)
Entonces, para evitar que phplist suprima errores de sus archivos de registro, querrá cambiar error_reporting(0)
a error_reporting(1)
in 'lists/admin/init.php'
y'lists/admin/index.php'
aslo describí aquí.
Luego pude ver la siguiente excepción lanzada en el error_log
archivo Apache por el 'lists/admin/inc/random_compat/random.php'
archivo, que es parte de la random_compat
biblioteca que se incluye con 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
La respuesta oficial de los mantenedores (consulte el número 99 del repositorio random_compat en github) es simplemente '/dev/urandom'
agregarle open_basedir
. '/etc/php.ini'
Personalmente, esa no me pareció la opción más inteligente.
Alternativamente, decidí instalar libsodium. En CentOS 7, eso significa simplemente instalar el 'php-pecl-libsodium'
paquete y reiniciar el servidor web Apache.
yum install php-pecl-libsodium
httpd -t && service httpd restart
Para obtener más información sobre este error, consulte mi artículo tituladocorregir el error phplist 500 debido a random_compat.
Respuesta2
Sufrí este error desde hace unos meses, tuve que instalar versiones antiguas de phplist.
Acabo de descubrir que las nuevas versiones de php (en mi caso estaba trabajando con php-5.2 pero centos 7 venía con php-5.4) tienen un nuevo parámetro (ok... nuevo para mí) llamado "date.timezone". Mi "/etc/php.ini" ahora tiene:
fecha.timezone = "América/Guayaquil"
Puede comprobar los nombres válidos de las zonas horarias en:
http://php.net/manual/es/timezones.php
¡Mis mejores deseos y buena suerte!