Linux + PHP + Shell

02/14/2015 00:01 ~ JWonderpig ~#1
Hallo,
ich habe heut angefangen mich mit Linux zu beschäftigen.

Ich habe nur ein kleines Problem:

Ich habe mir mal aus Spaß einen TS auf meinem vServer installiert - klappt alles. Mit einer PHP Datei möchte ich den Server start/stoppen können.
Dazu nutze ich diesen Code:
PHP Code:
$sh shell_exec("sh /link-zu-ordner/ts3server_startscript.sh stop");
print_r($sh); 
Wenn der Server läuft, wird mir dieser Text ausgegeben:
Code:
Stopping the TeamSpeak 3 serverdone
Jedoch wird der Server nicht gestoppt.

Wenn ich jedoch in Putty die Datei mit
Code:
php stop.php
aufrufe, wird der Server gestoppt. Wieso funktioniert das nicht bei einem Aufruf des Skriptes?

mfg
Caiv


sry, falls das eine Noobfrage ist :D
02/14/2015 00:26 xinternet#2
also verstehe ich das richtig? :

du hast eine stop.php die fährt den server runter wenn du sie über putty ausführst, aber nicht wenn du im browser executest?

evtl. hast du nicht die richten rechte für ts3server_startscript.sh gesetzt?

gruß
02/14/2015 00:40 ~ JWonderpig ~#3
Ja, das stimmt. Die Datei hat die Rechte "755".
In der Datei "sudoers" habe ich noch dieses hinzugefügt, hat aber auch nichts gebracht.
Code:
www-data ALL=(ALL:ALL) ALL
02/14/2015 03:31 Devsome#4
probier mal ein 'sudo' vor deinem command.
Notfalls mit [Only registered and activated users can see links. Click Here To Register...]
02/14/2015 14:19 ~ JWonderpig ~#5
PHP Code:
system("sudo sh /..../ts3server_startscript.sh stop"); 
funktioniert nicht, wenn ich es via PHP mache.
Wenn ich nur den "Shell-Teil" via Putty in dem Ordner ausführe, wo auch die PHP Datei ist, wird nach einem PW gefragt. Liegt es daran, dass es via PHP nicht geht?
Muss ich evtl. in sudoers-Datei noch irgendwas mit nopassword oder so hinzufügen? Habe da gestern was gelesen, kann mich aber nicht mehr erinnern :confused:
02/14/2015 15:07 Devsome#6
Quote:
Originally Posted by Caiv View Post
PHP Code:
system("sudo sh /..../ts3server_startscript.sh stop"); 
funktioniert nicht, wenn ich es via PHP mache.
Wenn ich nur den "Shell-Teil" via Putty in dem Ordner ausführe, wo auch die PHP Datei ist, wird nach einem PW gefragt. Liegt es daran, dass es via PHP nicht geht?
Muss ich evtl. in sudoers-Datei noch irgendwas mit nopassword oder so hinzufügen? Habe da gestern was gelesen, kann mich aber nicht mehr erinnern :confused:
Ist der Pfad auch richtig ;o ?
Probier doch einfach mal

system('ls'); oder so aus
02/14/2015 15:10 ~ JWonderpig ~#7
Ja, hab den Pfad nur rausgenommen, da er so lang ist.
Wenn ich system('ls'); nutze, werden mir Datein korrekt angezeigt. Wenn ich sudo davor schreibe wird mir nur 1 angezeigt.

#edit: Habe es nun hinbekommen. Musste etwas in der sudoers Datei ändern ;)