Anna: Probleme mit shell_exec()

Hallo,

ich habe unter Windows Server 2003 Apache 2.0.61 und PHP 5.2.4.
Ich habe mir Befehl psfile.exe runtergeladen (von Sysinternals / Microsoft).

Ich habe Probleme mit Skript
<?php
$output = shell_exec("C:\Tools\psfile.exe");
echo "<pre>$output</pre>";
?>
Ich sehe nur, dass ein Process psfile.exe läuft, in error.log von Apache habe ich den "Header" von psfile-Befehl:

IM BROWSER SELBST BEKOMME ICH ABER NICHTS! Und Prozess psfile.exe läuft, und läuft, und läuft...

Hatte vielleicht jemand was ähnliches? Ich dachte schon, es kann vielleicht an Software-Versionen liegen und habe Downgrade auch Apache2 gemacht.

Wenn ich so ein Skript ausführe, funktioniert alles:
<?php
$output = shell_exec("dir");
echo "<pre>$output</pre>";
?>

Danke für die Hilfe!

  1. Hallo Anna,

    Ich sehe nur, dass ein Process psfile.exe läuft, in error.log von Apache habe ich den "Header" von psfile-Befehl:

    IM BROWSER SELBST BEKOMME ICH ABER NICHTS! Und Prozess psfile.exe läuft, und läuft, und läuft...

    Die Antwort ist eigentlich ganz einfach. PHP wartet, bist das Programm psfile.exe beendet ist, und führt erst dann den nächsten Befehl aus. Da du siehst, dass psfile.exe noch läuft, wird folglich das PHP-Script nicht weiter ausgeführt.

    Da aber normalerweise die Laufzeit von PHP-Scripten mittels der Konfigurationseinstellung max_execution_time begrenzt ist, bricht das Script irgendwann ab, ohne dass die restlichen Befehle (in deinem Beispiel die Ausgabe von $output) ausgeführt werden.

    Es könnte also helfen, den Wert für max_execution_time höher zu setzen.

    Schöne Grüße,

    Johannes

    1. Hallo,

      Problem ist aber, dass ich bei dem Task eine Aktivität sehe. Wenn ich z.B. Befehl
      psfile /?
      schicke, dauert es ewig... Und hier soll eigentlich nur Syntax zurückkommen.

      Laufzeit von PHP-Skripten habe ich hochgesetzt... Aber man kann nicht Minutenlang auf eine einfache Ausgabe warten...

      Vom letzten Moment:
      Ich habe mir eine ältere Version von PsFile runtergeladen (1.01), zuerst habe ich mit der aktuellen 1.02 gearbeitet. Und... Ergebnis kommt!!!! (also vielleicht doch nicht PHP war Schuld;-))?

      1. Hallo Anna,

        psfile /?
        schicke, dauert es ewig... Und hier soll eigentlich nur Syntax zurückkommen.

        Vom letzten Moment:
        Ich habe mir eine ältere Version von PsFile runtergeladen (1.01), zuerst habe ich mit der aktuellen 1.02 gearbeitet. Und... Ergebnis kommt!!!! (also vielleicht doch nicht PHP war Schuld;-))?

        Wenn psfile natürlich "ewig" läuft, wartet PHP auch "ewig", ist ja klar. Dann nützt es auch nichts, die max_execution_time hochzusetzen.

        Schöne Grüße,

        Johannes