Matthias Cormann: Perl Script ausführen aus PHP (exec())

Beitrag lesen

Guten Tag,

Ich habe ein kleines Perl-Script, dass ich gerne aus PHP heraus starten möchte. Es gibt immer einen Output und versended eine SMS, wenn es abgelaufen ist - also sauber überprüfbar, ob es gelaufen ist.

Ich habe folgendes PHP-Script:
<?
$ausgabe=exec("/home/verzeichnis/scriptname",$fehler);
echo $ausgabe;
echo $fehler[0];
?>

Wenn ich dieses Script als nobody (bei mir Apache-User) von der Konsole aus ausführe:
/usr/local/bin/php /home/verzeichnis/scriptname
erhalte ich die Ausgabe des Programms und das SMS wird versendet.

Wenn ich die Seite aber über http aufrufe gibt es keine Ausgabe und eine SMS wird auch nicht verschickt.

Ich habe überall gelesen, es müssen Berechtigungsprobleme sein. Ich habe dem Script testweise 777 verpasst und trotzdem gehts nicht. Und, dass es von der Konsole aus mit dem gleichen Benutzer funktioniert irritiert mich noch zusätzlich.

Hat jemand eine Idee, wo das Problem liegen könnte?

Viele Grüsse aus der Schweiz
Michael

PS: Andere Programme kann ich per exec() starten.. - kein Safe-Mode oder so...

Hallo Michael,

ich hatte ähnliche Probleme mit einem einfachen Formular gehabt.
Das Problem lag anscheinend darin, dass die Variablen nur lokal und nicht global weitergereicht werden. Du solltest also die Variablen global definieren. Versuche außerdem mal das PHP-Script im Body auszuführen.

MfG

Matthias Cormann