Wie kann ich die PHP-Zeitzone für Cloud-basierte Webserver einstellen, die in verschiedenen geografischen Regionen verteilt sind?

465
jww

Beim Laufen bekomme ich folgende Warnung php -i:

PHP Warnung: Unbekannt: Es ist nicht sicher, sich auf die Zeitzoneneinstellungen des Systems zu verlassen. Sie müssen die Einstellung date.timezone oder die Funktion date_default_timezone_set () verwenden. Falls Sie eine dieser Methoden verwendet haben und diese Warnung immer noch angezeigt wird, haben Sie wahrscheinlich die Zeitzonen-ID falsch geschrieben. Wir haben vorerst die Zeitzone 'UTC' ausgewählt, aber setzen Sie bitte date.timezone, um Ihre Zeitzone auszuwählen. in Unknown in Zeile 0
...

Unsere VM wird gehostet und in verschiedene geografische Regionen verteilt. Es ist ähnlich wie "us-east" und "us-west" von Amazon (obwohl wir Amazon nicht verwenden).

Wie stellen wir ein, date.timezonewenn der Server in verschiedenen Zeitzonen repliziert wird?

1

1 Antwort auf die Frage

1
Deltik

Sie setzen date.timezonein Ihre php.iniDatei.

Dieser Befehl sucht die php.iniDatei, die PHP derzeit verwendet:

php -i | grep 'Configuration File.* => ' 

Im folgenden Beispiel php.inibefindet sich my /opt/cpanel/ea-php56/root/etc/php.iniunter und date.timezoneist auf Folgendes eingestellt UTC:

root@node2 [~]# php -i | grep 'Configuration File.* => ' Configuration File (php.ini) Path => /opt/cpanel/ea-php56/root/etc Loaded Configuration File => /opt/cpanel/ea-php56/root/etc/php.ini  root@node2 [~]# grep 'date\.timezone' /opt/cpanel/ea-php56/root/etc/php.ini ; http://php.net/date.timezone date.timezone = "UTC" 
Vielen Dank. Wir verwenden ein CentOS-Image, und ich glaube, die Konfigurationsdatei ist `/ etc / php.ini`. Auf was wird es eingestellt, wenn die VM verteilt wird, um die Verfügbarkeit zu erhöhen? Wenn wir "us-east" auf "America / New_York" setzen, wird es für "us-west" und "America / Los_Angeles" (und umgekehrt) falsch sein. Beachten Sie, dass wir nur ein einzelnes Spiegelglas erhalten - es scheint uns eine einzige VM zu sein. jww vor 7 Jahren 0
@jww: Benutze einfach jede Zeitzone, die du bevorzugst. Ich habe meine Einstellung auf "UTC" gesetzt, um wie Stack Exchange zu sein. Wenn Ihre Anwendung aus irgendeinem Grund zeitzonenabhängig ist, sollte sie mit date_default_timezone_set () `programmiert werden, das auf Ihre Bedürfnisse eingestellt ist. Deltik vor 7 Jahren 0
Am besten ist es, immer auf UTC zu setzen. Wenn Sie in andere Zeitzonen konvertieren müssen, führen Sie dies bei jeder Operation explizit durch. Verlassen Sie sich nicht auf Systemvorgaben. Matt Johnson vor 7 Jahren 1
Perfekt, danke Deltik und Matt. Wenn dies eine bewährte Methode ist, sollte es standardmäßig unkommentiert sein. jww vor 7 Jahren 0