Ich versuche, ein Skript, das mehrere Sekunden dauert (Webdienste mit Drittanbieter) mit dem PHP-Exec-Aufruf. Nach viel Mühe habe ich dies auf das klassische Hallo-Welt-Beispiel reduziert. Der anrufende Skript wie folgt aussieht:Kann PHP-Skript nicht mit PHP exec ausführen
exec('/usr/bin/php /home/quote2bi/tmp/helloworld.php > /tmp/execoutput.txt 2>&1 &');
Als ich dies ausführen, wird die Ausgabe execoutput.txt
eine Kopie der rufenden Skript Seite enthält, nicht hello world
als ich erwartet hatte.
Warum kann ich dieses PHP-Skript nicht mit exec ausführen? Beachten Sie, dass, wenn ich den Befehl in etwas wie ls -l
ändern, die Ausgabe eine Verzeichnisliste wie erwartet ist. BTW, falls es darauf ankommt, habe ich chmod das aufgerufene Skript zu 755 ...
Update - Ich habe den exec Aufruf an das Ende des aufrufenden Skriptes und zumindest jetzt sehe ich nicht das aufrufende Skript in der Ausgabe ausgeführt. Danke an Poster und ich werde einige dieser Ideen ausprobieren.
Hilfe!
Dank Steve
- vielen Dank für Ihre Antwort, aber leider ist es nicht für mich arbeiten. Als ich versuchte: exec ('/ home/quote2bi/tmp/helloworld.php>/tmp/execoutput.txt 2> & 1 &') ... Ich habe die gleichen Ergebnisse (aktuelle Seite in der Ausgabedatei). Der zweite Exec blockiert (fehlt das &) - wenn hinzugefügt, habe ich die gleichen Ergebnisse. –
Gibt es eine Option, wenn die Funktion exec() auf meinem Server deaktiviert ist –