dedlfix: "Welche" cmd benutzt PHP exec()? Bzw. wie kann ich sie ändern.

Beitrag lesen

Tach!

Ich konnte das Problem identifizieren, warum ein Befehl über exec() auf dem Server nicht ausgeführt wird, wohl aber, wenn ich den exakt gleichen Befehl auf dem Server eingebe: eine nötige Umgebungsvariable in %PATH% fehlt.

Deswegen gibt man für automatisierte Prozesse üblicherweise den Pfad zur ausführbaren Datei an und verlässt sich nicht auf die Pfad-Konfiguration, die meist für alles was keine Shell ist eingeschränkt ist.

Daher muss es wohl zwei cmd's geben, eine die ich in einer Remotedesktopverbindung öffnen kann (die hat die EnvVar) und jene, die php's exec() benutzt (dort fehlt die EnvVar). Wie kann die Umgebungsvariable für php zur Verfügung stellen?

Mit absolutem Pfad für die ausführbare Datei ist die Path-Variable nur noch für nachzuladende DLLs interessant, die nicht im aktuellen Verzeichnis liegen. Ansonsten dürfte PHP in Abhängigkeit vom Webserver laufen (welcher das ist und wie PHP darin eingebunden ist, ist auch entscheidend). Schau also mal nach, welchen PATH der Webserver bekommt und wie man den gegebenenfalls beinflussen kann, oder was davon er durchzureichen gewillt ist.

dedlfix.