.bat-Dateien aus PHP mit system('bla.bat') aufrufen geht nicht mehr

BugsBastard

Erfahrenes Mitglied
Hallo zusammen,

ich habe daß Problem, daß ich ein PHP-Skript habe, welches verschiedene .bat-Dateien nacheinander aufruft. Auf einem alten Server ist dies kein Problem, auf einem jetzt neu eingerichteten Server schon.

Was ich geprüft/versucht habe:
- Ich bekomme keinerlei Einträge ins Apache-Log
- Ich bekomme keinerlei einträge ins PHP-Log
- Über PHP-CGI kann ich die Datei aufrufen (der Apache auf dem System nutzt die PHP-CGI) und die Datei wird ausgeführt
- Weder der Befehl direkt per System(command, $blah) gesendet, noch die Datei per System(Datei.bat, $blah) selber werden ausgeführt. Auch andere Dos-Befehle werden nicht ausgeführt
- Die Befehle in der .bat-Datei sind richtig und werden auch ausgeführt, wenn man diese direkt aufruft.
- Benutzer ist Netzwerkadministrator und hat alle Rechte auf der Maschine
- Apache/PHP-Konfiguration ist annähernd die gleiche, wie auf dem alten System. Die Unterschiede haben aber offensichtlich nichts mit diesem Szenario zu tun.
- System(command) ersetzt durch exec, etc. Alles ohne Erfolg

Fällt jemandem etwas ein, was ich noch prüfen kann/soll/muss? Gibt es ab PHP 5.3.0 eine neue Einstellung in irgendeiner INI die ich noch treffen muß?

Gruss und Danke,

Bugs
 
Hi,

leider hast du nicht verraten, welches Betriebssystem du hast...

Ich hatte mal ähnliche Probleme auf einem Windows-Server. Vielleicht hilft's....

Der Webserver muss execute-Recht auf der cmd.exe haben, da er sonst keinen Fork-Process starten kann. Schau mal, unter welchem Account dein Webserver läuft und vergleiche dann...
 
Hallo zusammen und danke für die Antworten,

Es ist ein Windows 2008 und der Safe-Mode ist off. Wir haben jetzt herausgefunden, daß es klappt, wenn die DocumentRoot des Apachen auf einen Lokalen und NICHT auf einen UNC-Pfad verweist. Wir benötigen allerdings einen UNC-Pfad :(

Gruss,

Bugs (Thomas)
 
Das hat dann aber nichts mit PHP zu tun. PHP gibt den Befehl einfach an die Kommandozeile des OS weiter, was dann passiert hat nichts mehr mit PHP zu tun...

Hast du mal versucht das direkt an der Kommandozeile zu machen?
 
Jap, hab ich. Auf Kommandozeile klappt das einwandfrei, nur wenn ich es versuche über PHP aufzurufen dann nicht. Daher gehe ich davon aus, daß PHP ein Problem hat. Wenn wir die DocumentRoot des Apachen auf einen Lokalen Pfad legen, dann klappt es auch mit PHP. Nur wenn die DocumentRoot auf einem UNC-Pfad liegt, dann nicht.
 
Zurück