
Ich habe gerade eine Neuinstallation von phplist durchgeführt, aber wenn ich versuche, in meinem Browser darauf zuzugreifen, erhalte ich eine leere Seite mit dem Statuscode:"500 Internal Server Error"
Ich verwende CentOS 7 und Phplist wird auf Apache v2.4.6 mit Php v5.6.33 bereitgestellt.
Ich kann die Abfrage in meinem Apache sehen access_log
, aber es gibt keine Einträge im Fehlerprotokoll. Die vhost-Konfigurationsdatei und .htaccess
die Dateien scheinen alle in Ordnung zu sein.
Bitte helfen Sie mir, den Grund dafür zu beheben, dass phplist mir nach einer Neuinstallation einen 500-Fehler anzeigt.
Antwort1
Nachdem ich mich viele Stunden durch den phplist-Code gewühlt hatte, habe ich das Problem behoben, indem ich libsodium auf meinem Server installiert habe.
Zunächst habe ich festgestellt, dass phplist standardmäßigunterdrückenFehler werden nicht in Protokolle geschrieben. Dies ist nirgendwo dokumentiert, daher habe ich auf ihrer Dokumentationsseite eine Notiz hinterlassen und sie gebeten, zu dokumentieren, wie das Schreiben von Fehlermeldungen in Protokolldateien wieder aktiviert werden kann (Link unten).
Um zu verhindern, dass phplist Fehler aus Ihren Protokolldateien unterdrückt, sollten Sie error_reporting(0)
in und as ändern error_reporting(1)
.'lists/admin/init.php'
'lists/admin/index.php'
Ich habe hier beschrieben.
Dann konnte ich sehen, dass die folgende Ausnahme in der Apache- error_log
Datei von der 'lists/admin/inc/random_compat/random.php'
Datei ausgelöst wurde, die Teil der random_compat
in phplist enthaltenen Bibliothek ist.
[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
Die offizielle Antwort der Betreuer (siehe Problem Nr. 99 des random_compat-Repos auf GitHub) besteht darin, einfach in hinzuzufügen '/dev/urandom'
. open_basedir
Mir '/etc/php.ini'
persönlich schien das nicht die klügste Option zu sein.
Alternativ habe ich mich für die Installation von libsodium entschieden. In CentOS 7 bedeutet das, dass ich nur das 'php-pecl-libsodium'
Paket installieren und den Apache-Webserver neu starten muss.
yum install php-pecl-libsodium
httpd -t && service httpd restart
Weitere Informationen zu diesem Fehler finden Sie in meinem Artikel mit dem TitelBeheben Sie den phplist 500-Fehler aufgrund von random_compat.
Antwort2
Ich litt seit einigen Monaten unter diesem Fehler, da ich alte Versionen von phplist installieren musste.
Ich habe gerade entdeckt, dass die neuen Versionen von PHP (in meinem Fall habe ich mit PHP 5.2 gearbeitet, aber CentOS 7 kam mit PHP 5.4) einen neuen Parameter (ok... neu für mich) namens „date.timezone“ haben. Meine „/etc/php.ini“ hat jetzt:
Datum.Zeitzone = "Amerika/Guayaquil"
Sie können die gültigen Zeitzonennamen hier überprüfen:
http://php.net/manual/es/timezones.php
Viele Grüße und viel Erfolg!