Shellscript mit php ausführen

scrat

New Member
Halloo,

Ich möchte gerne über php ein shellscript starten.
Die php-datei liegt in

/home/www/web0/html/....

und sieht so aus:

Code:
<?php
echo exec("sh /xamppstart.sh");
?>

Das Shellscript liegt in / und sieht so aus:

Code:
killall watch
echo Movementscripts gestoppt
apache2ctl stop
echo Apache Webserver gestoppt
/opt/lampp/lampp restartapache
echo XAMPP Webserver neugestartet
apache2ctl start
echo Apache Webserver gestartet
(watch -n 300 lynx --dump -accept_all_cookies ................. >/dev/null 2>&1 </dev/null &)&
echo 789
(watch -n 300 lynx --dump -accept_all_cookies ................. >/dev/null 2>&1 </dev/null &)&
echo 123
(watch -n 300 lynx --dump -accept_all_cookies ................. >/dev/null 2>&1 </dev/null &)&
echo 456
echo XAMPP wurde erfolgreicht neugestartet!

Als ausgabe bekomme ich aber nur

XAMPP wurde erfolgreich neugestartet!

Und das ganze geht mir auch recht schnell. Wenn ich das script per ssh aufrufe dauert das viel länger... Ich denk mal, dass XAMPP garnicht neustartet...

Nun meine Frage: warum werden die anderen echo's nicht ausgegeben?

vg scrat
 
Auszug aus der Doku:
exec() führt ein gegebenen Befehl aus, ohne eine Ausgabe zu erzeugen. Die Funktion gibt lediglich die letzte Zeile aus dem Befehlsergebnis zurück.
Dein Befehl hat einen zweiten Parameter, der dir wahrscheinlich weiterhilft. Siehe dazu PHP: exec - Manual

Hat dein Webserver überhaupt die entsprechenden Rechte, um die Dienste neuzustarten?
 
Mit PHP (unter Apache) einen Apache-Neustart auszuführen, hat sowas wie den Ast abzusägen auf dem man sitzt.
Erstaunlich das es überhaupt eine Ausgabe erzeugt. :)

Ob der Restart geglückt ist, kann man übrigens in den Logfiles nachvollziehen.

huschi.
 
Hat dein Webserver überhaupt die entsprechenden Rechte, um die Dienste neuzustarten?

Ich denk mal nicht. Läuft ja über nen user bei confixx. Ich werds nun auch anders machen... über webmin... da is das sicher praktischer.

Mit PHP (unter Apache) einen Apache-Neustart auszuführen, hat sowas wie den Ast abzusägen auf dem man sitzt.
Erstaunlich das es überhaupt eine Ausgabe erzeugt. :)

Hmm... jetzt wo du es so schreibst... ist wirklich bisschen unüberlegt, apache über normale seite neuzustarten :rolleyes:
Über webmin sollte das sicher besser funktionieren ;)
 
Back
Top