PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bashscript aus PHP heraus ausführen



LinuxNewbee
15-12-2003, 07:48
Hi NG,

Habe SuSE8.0 mit Apache laufen. Ich möchte jetzt aus einem PHP Skript heraus ein standard Linuxskript ausführen. Geht das irgendwie?

Beispiel


exec ("/home/user/wastolles.skript");

oder sowas in der art...

elrond
15-12-2003, 08:03
system(<shell-script>);

LinuxNewbee
15-12-2003, 10:21
hm, das funktioniert aber leider irgendwie net! das shellscript liegt im selben verzeichnis wie das PHP file.

So müsste ich das Shellscript doch mit
system("./script.sh"); ausführen können.

offe
15-12-2003, 17:25
hast du ausführende Rechte mit php für das Script? Mach doch zum Testen mal ein chmod 777 auf das Script.

Offe

LinuxNewbee
15-12-2003, 18:23
joa! root,group,rest der welt haben jedenfalls ausführrechte! das reicht ja auch oder?!

mehlvogel
15-12-2003, 22:39
SafeMode on/off, gehört das Skript nobody (bzw dem User unter dem dein apache läuft)? Irgendwelche anderen Fehlermeldungen, oder einfach nur *nix* - produziert das skript evtl. keine Ausgabe?

LinuxNewbee
17-12-2003, 19:38
Nix, keine Fehlermeldung. Die Datei die vom Skript erzeugt werden soll, wird nicht erzeugt. (Wird aber allerdings erzeugt, wenn ich das Skript manuell auf der Bash ausführe erzeugt).

Ausgaben mit echos werden produziert. Das Skript gehört zwar root, aber wenn jeder ausführ- und leserechte hat, dürfte das nicht stören. oder?

wie krieg ich denn raus als welcher user, apache agiert??

Müssen evtl. noch Module im Apache nachgeladen werden?:mad:

elrond
18-12-2003, 06:01
schau doch einfach mal nach welche user im system vorhanden sind. "wwwrun" könnte dein freund sein...

Stanislaus
18-12-2003, 16:38
Häng an das Ende des Aufrufs ein 2>&1.
Der Sinn ist der, daß Fehlermeldungen nicht im Standardout landen mit o.g. Anhängsel werden sie aber dahin umgebogen.


exec ("/home/user/wastolles.skript 2>&1");

Nun solltest Du zumindest die Fehlermeldungen sehen, die das Script auswirft.



wie krieg ich denn raus als welcher user, apache agiert??
Das steht normalerweise in der httpd.conf. Einfach mal dadrin nach user nd group suchen.

Bis neulich ...

peterschen
22-12-2003, 10:15
Hallo,

der User vom Apache ist meist
www-data. Ich habe auch schon so meine
Erfahrungen mit dem Execute vom PHP gemacht.

Um IPTables mit Script und PHP zu steuern musste ich
Zwangsweise sudo benutzen, da ich als "normalo" IPTables
nicht ausführen darf...

Grüße
Christoph