Andreas Korthaus: /LINUX: Was tun gegen falsche Uhrzeit?

Beitrag lesen

Hallo!

Also ich habe ein neues Script probiert:
<?php
echo date("H:i:s T"), "\n";
echo gmdate("H:i:s T"),"\n";
echo exec('date'), "\n";
?>

was ich erwarte is folgendes:

18:20:09 CEST
16:20:09 GMT
Fri Jul 11 18:20:09 CEST 2003

Was ich aber erhalte ist das:

17:20:09 BST
16:20:09 GMT
Fri Jul 11 18:20:09 CEST 2003

Tja, wie kommt denn PHP da drauf dass ich was mit Engländern zu tun habe?(British Summer Timer)
Ich dachtze erst an eien Problem mit DST, aber das glaube ich hier nach nicht mehr. Ich hätte da 3 Theorien:

1. "date" hat nicht immer in de2r Kommandozeile die CEST ausgegeben, da bin ich erst später drauf gekommen, nachdem ich PHP kompiliert und koinfiguriert habe. Ich bin jetz tnicht sicher ob es BST war, aber ich bin sicher dass damals auch die "date" Version der Shell 1 Stunde nachging, also exakt das geliefert hat was date() mit jetzt in PHP bringt. Vielleicht ist es ja so dass PHP beim Kompilieren oder konfigurtieren einmal die Zeitzone ermittelt und dann fest mit irgendwo reinschreibt. Wobei ich das eigentlich nicht glaube, das wäre sehr unflexibel. Zumal PHP als Modul in meinen Apachen statisch kompiliert ist :-(

2. Variante - es gibt irgendwo ein kleines Schräubchen, eine Konfigurationsvariable ob von PHP oder von Linux oder vom Apachen, keine Ahnung. Ich weiß aber überhaupt nicht wo ich danach noch suchen soll.

3. Variante: Die Änderung der Zeitzone muss im System irgendwie bekannt gemacht werden. Ob durch ein Script, durch ein Neustart eines Dämons oder sogar durch neu booten.

H:i:s")."\n";

echo gmdate("H:i:s");
?>
Ausgabe:
12:36:36
11:36:36

Shell:

date

Fri Jul 11 13:37:45 CEST 2003

Diese (shell-) Zeit ist jetzt aber in jedem Fall korrekt, ja?

Definitiv, 100%ig

Wenn dem so ist, sollte das System ja zumindest schonmal richtig funktionieren. Was passiert, wenn Du ntpdate aufrufst? Bleibt die Zeit dann richtig oder wird sie wieder verstellt?

Um ein paar 0,001-stel.

Und der passende ZUgriff aus dem Apache access-log:
[11/Jul/2003:12:36:36 +0100]

Hast Du daran gedacht, den Apache nach den Änderungen (insbesondere /etc/localtime) vorsichtshalber neu zu starten?

ja

Werden irgendwelche abartigen Startskripte für Apache verwendet?

apachectl restart

ersuche httpd mal direkt zu starten (apachectl ist ein Skript).

damit habe ich es gemacht

In jedem Fall scheint Dein Problem ja nicht mit PHP zusammenzuhängen, sondern mit dem kompletten Apache-Prozess (läuft PHP bei Dir als Modul, d.h. als Teil des Servers?).

Wie gesagt, als in den Apachen einkompiliertes Server-Modul.

Grüße
Andreas