Ziel: PHP -> Shellscript -> Callfile anlegen

Taaz

Neuer User
Mitglied seit
11 Apr 2005
Beiträge
50
Punkte für Reaktionen
0
Punkte
6
Hallo,

der Server mit dem gleich beschriebenen Problem läuft unter debian lenny und hat die asterisk pbx sowie php installiert.

Ich möchte mit einem PHP-Script (/var/www/verzeichnis/script.php) ein Shellscript ausführen (/var/spool/asterisk/tmp/script.sh), welches einige Befehle ausführt (Ziel ist: echo "callfileinhalt">1.call | momentan funktioniert nicht einmal: echo "inhalt").

Hier mal einige wichtige ls -l Ausgaben:
in /var/spool/asterisk:
drwxrwxrwx 2 www-data 4.0K 2011-02-20 16:12 tmp

in /var/spool/asterisk/tmp:
-rw-r--r-- 1 root root 33 2011-02-20 16:23 script.sh

in /var/www:
drwxrwxr-x 2 root www-data 4.0K 2011-02-20 16:23 verzeichnis

in /var/www/verzeichnis:
-rw-r--r-- 1 www-data www-data 793 2011-02-20 16:26 script.php

Wenn ich nun in meinem script.php folgendes habe:
<?php

echo `sh /var/spool/asterisk/tmp/script.sh`;

?>
passiert nichts. Wenn ich script.sh aber in /var/www/verzeichnis verschiebe und in php ausführe, funktioniert es.

wenn ich script.sh im /var/spool/asterisk/tmp auf der Konsole unter root ausführe, funktioniert auch alles.


Ich hoffe, dass ich keine Informationen vergessen habe. Kann mir hier jemand helfen?

lg Taaz

P.S.: PHP läuft als www-data
 
Ja habe ich. Das verändert die Situation leider auch nicht.
Die Notation in den `-Zeichen ist ja nur eine Alternativschreibweise für shell_exec().

Komischerweise funktioniert es ja, wenn das Script im /var/www liegt.
Aber die Rechte in /var/spool/asterisk/tmp sind doch eigentlich richtig, oder?

Danke für die schnelle Antwort.

lg
taaz
 
Erstens hast Du oben bei /var/spool/asterisk/tmp etwas weg gekürzt.

Ansonsten kommt es auf alle Verzeichnisse an.
Was kommt bei
Code:
ls -ld var
ls -ld var/spool
ls -ld var/spool/asterisk
ls -ld var/spool/asterisk/tmp
Und für die Ausgabe bitte CODE und nicht QUOTE verwenden.
 
Sorry. Find hier keine Buttons für Quotes, Code usw. Hatte einfach den Quote-Tag ausprobiert und er hat funktioniert ;)

Hier die Ausgaben:
Code:
H209:/# ls -ld var
drwxr-xr-x 14 root root 4.0K 2011-01-09 14:40 var
H209:/# ls -ld var/spool
drwxr-xr-x 5 root root 4.0K 2011-02-01 17:11 var/spool
H209:/# ls -ld var/spool/asterisk
drwxr-x--- 9 asterisk asterisk 4.0K 2011-02-01 17:11 var/spool/asterisk
H209:/# ls -ld var/spool/asterisk/tmp
drwxrwxrwx 2 www-data www-data 4.0K 2011-02-20 18:12 var/spool/asterisk/tmp

Liegt es also auch an den übergeordneten Ordnern?
Bin in Linux-Rechten nicht der fitteste.
 
Ja, es liegt an den Rechten der übergeordneten Ordnern. Um auf eine Datei zuzugreifen, braucht man die nötigen Rechte für jedes Verzeichnis auf dem Weg dahin. Hier fehlen die Zugriffsrechte bei /var/spool/asterisk. Nach "chmod o+x /var/spool/asterisk" sollte es funktionieren.
 
Super!

Danke, das war es. :)
 

Neueste Beiträge

Statistik des Forums

Themen
246,274
Beiträge
2,249,296
Mitglieder
373,863
Neuestes Mitglied
RuthBeatty
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.