fragen stichworte

PHP-Fehler 500: Die Zeitzonen-Datenbank ist beschädigt - dies sollte * niemals * vorkommen

Ich habe eine Neuinstallation eines Ubuntu Servers 16.04 amd64 mit Apache 2.4.18 und PHP 7.0.

Ich habe den Apache mit mod_env und gechrootet ChrootDir/var/www in /etc/apache2/apache2.conf und soweit ich weiß ist hier das Problem. Ich möchte eine NexctCloud 11-Installation durchführen, aber beim ersten Start wird ein Fehler 500 angezeigt.

Apache-Fehlerprotokoll:

[Fri Mar 17 08:21:22.262901 2017] [:error] [pid 31480] [client 193.175.51.226:55749] PHP Notice:  date_default_timezone_set(): Timezone ID 'UTC' is invalid in/html/sub.example.com/public_html/lib/base.php on line 637, referer: https://sub.example.com/
[Fri Mar 17 08:21:22.266581 2017] [:error] [pid 31480] [client 193.175.51.226:55749] PHP Warning:  DateTime::createFromFormat(): Invalid date.timezone value 'Europe/Berlin', we selected the timezone 'UTC' for now. in/html/sub.example.com/public_html/lib/private/Log/File.php on line 85, referer: https://sub.example.com/
[Fri Mar 17 08:21:22.266610 2017] [:error] [pid 31480] [client 193.175.51.226:55749] PHP Fatal error:  DateTime::createFromFormat(): Timezone database is corrupt - this should *never* happen! in/html/sub.example.com/public_html/lib/private/Log/File.php on line 85, referer: https://sub.example.com/

Wenn ich den Chroot deaktiviere, ist alles in Ordnung, aber ich bevorzuge eine andere Lösung, bei der ich die Chroot nicht deaktivieren muss.

Ich habe im Internet einen Vorschlag gefunden: http://ivanbayan.com/index.php/2013/06/26/how-to-fix-timezone-database-is-corrupt-this-soll -never-happen/ was ich ausprobiert habe (angepasst für mein PHP7), aber das Problem konnte nicht gelöst werden. Ich habe auch hier einige Vorschläge ausprobiert, ohne mein Problem zu lösen: PHP Startup: Die Timezone-Datenbank ist

beschädigt

//Bearbeiten: Es scheint, dass nicht nur NextCloud ein Problem ist. Es ist ein Problem bei der Verwendung der date () - Funktion in PHP. Das folgende Skript führt zu demselben Fehler:

<?php
date_default_timezone_set('Europe/Berlin');

echo date("l");
?>

antworten

Lösung:

mkdir -p/var/www/usr/lib/locale
mkdir -p/var/www/usr/share/zoneinfo

cd/var/www
cp/etc/localtime etc/localtime
cp/usr/share/zoneinfo/usr/share/zoneinfo/

Das behebt das Problem (es gab mehr Fehler mit NectCloud und Chroot, z. B. Gebietsschema, das ich mit den gleichen Prozeduren behoben habe).