Sönke Tesch: /LINUX: Was tun gegen falsche Uhrzeit?

Beitrag lesen

Ja, also liegt es vermutlich an irgendwelchen Umgebungsvariablen. PHP greift nicht direkt auf Linux-Umgebungsvariablen zu sindrn bekomm tdie wenn nur vom Apachen weitergereicht, oder?

Jein. Da Du PHP als Modul benutzt, _ist_ PHP der Apache, der Webserver setzt sich zusammen aus dem Apache-Code und dem PHP-Code. Es gibt aus Programmausführungssicht also keinen Unterschied zwischen den beiden Komponenten.
Hendryks Ausführungen nach greift PHP ziemlich direkt auf Systemfunktionen zu, die ihrerseits dann die Umgebungsvariablen verarbeiten. Dort kann ein Fehler nicht stecken, die einzige Möglichkeit wäre weiter vorne in der Kette, nämlich daß der Apache seine Umgebungsvariablen selbst ändert (wovon dann natürlich auch PHP betroffen wäre). Das passiert aber sicher nicht, denn es macht einfach keinen Sinn, TZ zu löschen.

BTW: TZ erscheint, wenn es gesetzt ist, in phpinfo() unter "Environment" ziemlich am Ende der Seite.

In apachectl steckt am Anfang in etwa folgendes:

Danach werden Umgebungsvariablen mittels envvars gesetzt (ebenfalls ein Shell-Skript).
Wo denn? envvars kommt im ganzen apachectl Script nicht vor

Oh, dann ist das neu beim Apache 2.

export -p

TZ="Europe/Berlin"

habe ich da. Hieße das, dass dann alle Programme die ich aus eben dieser Shell starte, diese Umgebungsvariablen übergeben bekommen?

Ja, d.h. der Apache, sofern er von dort gestartet wird, sollte diese Variable übergeben bekommen.

Aber: Du hast tatsächlich Recht! Wenn ich den Server direkt starte, geht es. Du meine Güte, wer kommt denn bitte auf sowas!

;-)

Ich, egal wie krank es sein mag ;)

Werde ich aber tun. Ich hoffe damit ist es erledigt! Kann ich das apachectl Script also nicht mehr verwenden?

Ach ja, habe mal das apachectl Script gepostet, und ich denke ich habe die Begründung:

#!/bin/sh

es wird also eine anderer Shell verwendet(glaube ich zumindest),

Jein, /bin/sh zeigt in der Regel auf die Standardshell des Systems, was wiederum meistens /bin/bash ist. Allerdings versucht bash sich zumindest teilweise wie sh zu verhalten, wenn als als sh aufgerufen wird. Vielleicht hilft es deshalb, wenn Du dort statt sh bash einträgst - ich glaube es allerdings nicht, denn bei mir funktioniert's mit /bin/sh.

Ansonsten ist es mir ebenfalls schleierhaft, warum das Skript bzw. Apache im Skript TZ nicht mit auf den Weg bekommt. Vielleicht setzt Du einfach mal ein

set

an den Anfang des Skripts und probierst das mal mit /bin/sh und /bin/bash. Es sollten alle Umgebungsvariablen erscheinen. Vielleicht gibt's da ja tatsächlich einen Unterschied. Falls ja, prüfe vielleicht mal die Einstellungen Deiner Shell, die diversen Konfigurationsdateien sind in der Anleitung beschrieben (man bash).

Gruß,
  soenk.e