Hallo!
Das date() von PHP hingegen ruft php_date() auf und setzt den zweiten Parameter (gm) auf 0, was dazu führt dass dieses sich seine Zeit von php_localtime()_r holt.
OK. Dann frage ich mich aber, was denn da nicht funktioniert. Wo genau fragt denn php_localtime()_r seine Zeit ab und wo macht das das "date" aus der Shell? Wie kommt PHP bitte da drauf dass ich BST als localtime habe, zumal /etc/localtime was vollkommen anderes sagt? Holt sich PHP die Zeit/Zeitzone nicht zur Laufzeit? Wenn doch - woher? Reicht die Einstellung von /etc/localtime nicht? Oder wir das an anderer Stelle konfiguriert? Hat aber nichts damit zu tun das PHP in den httpd einkompiliert ist, oder?
Oder kann es damit zu tun haben, dass ich zum Zeitpunkt der Übersetzzng der PHP und Apache-Sourcen noch BST-Zeit hatte, das erst später umgestellt habe, als ich es gemerkt hatte. Aber PHP wurde nicht mit umgestellt. Kann es sein dass die Zeitzone bei ./configure oder make... ermittelt und fest in den Code geschrieben wurde?
Und wenn ich mir das Log-Datum des Apachen angucke:
[11/Jul/2003:12:36:36 +0100]
Müsste da nicht +0200 stehen, bezohen auf GMT? Also hat der wohl dasselbe Problem. Bekommt PHP evtl. die lokale Zeitzone vom Apachen wenn es als Apache-Modul läuft? Dann ist das Problem vielleicht beim Apachen zu suchen, aber den habe ich ja nach der Änderung der /etc/localtime mehrmals neu gestartet. Vielleicht hat der die Zone fest im Quellcode stehen?
Also entweder steht das irgendwo im Quelltext oder es gibt da eine Konfigurationsmöglichkeit die ich nicht finde.
Viele Grüße
Andreas