Sponsor-Board.de

Normale Version: Shell_exec Hilfe
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Ich benötige einmal eure Hilfe. Ich suche Jemanden der In PHP Programmieren kann. Und zwar geht es um Folgendes. Ich benötige ein PHP Script das Server seitig läuft. Es soll per Shell_exec einen Command von einem Linux Server Ausführen. Es handelt sich auf dem Linux Server um einen Shoutcast Transcoder der Gestopt/Gestartet werden soll per Klick eines Buttons. Hier einmal das was ich probiert habe umzusetzen aber nicht gelungen ist. Mir würde es auch reichen wen mir wer Hilft das Script richtig umzusetzen.

Script

PHP-Code:
#!/bin/bash
    #!/usr/bin/php -q
    # To start the script automatically at bootup type the following command
    # update-rc.d sc_trans defaults 99

    
USER=shoutcast
    MYDIR
=`/home/shoutcast/sc_trans_9000 $0`/

    case $
1 in
    start
)
    
#display to user that what is being started
    
echo “Starting sc_trans_linux”
    
#start the process and record record it’s pid
    
cd $MYDIR screen -AmdS stream ./sc_trans_linux;
        
sleep 2
        ps 
-grep sc_trans_linux cut -c 0-> /var/run/sctrans.pid
    
#output failure or success
    #info on how to interact with the torrent
    #echo “To interact with the torrent client”
    #echo “screen -r torrent”
    
if [[ $? -eq 0 ]]; then
    
echo “The process started successfully”
    
else
    echo 
“The process failed to start”
    fi
    
;;

    
stop)
    
#First we want to kill the original servers, so we don't get errors.
        
echo "Killing old shoutcast streams."
        
for oldpid in `ps -A | grep sc_trans_linux | cut -c 0-6`; do
        
kill -9 $oldpid
        done
        rm 
-f $pid
    
;;

    *)
    
# show the options
    
echo “Usage: {start|stop}
    
exit 1
    
;;
    
esac
exit 


Start.php

PHP-Code:
<?
$out = array();
$shell = shell_exec("cd /home/shoutcast/sc_trans_9000/; ./script start");
 
print_r($out);
?>


Stop.php

PHP-Code:
<?
$out = array();
$shell = shell_exec("cd /home/shoutcast/sc_trans_9000/; ./script stop");
 
print_r($out);
?>

Gibts auch eine Frage/Problembeschreibung?

Was hast du mit $out vor? Zurzeit ist $out einfach nur.... nutzlos.
Das sollte ausgeben ob es Erfolgreicht gestartet/gestopt wurde und da fängt ja dann mein problem an er gibt dann im Browser nur den array(); aus weil ja halt nix declariert ist aber das ding ist ja einfach es Führt ja noch nicht mal die Script datei aus
Schonmal in die Doku geguckt?
[Link: Registrierung erforderlich]

PHP-Code:
$out shell_exec("/home/shoutcast/sc_trans_9000/script start 2>&1");
var_dump($out); 

Ja die Doku habe ich mir schon durchgelesen aber habe den PHP Code jetzt umgeschrieben bzw. angepasst und nun kommt folgende Meldung dabei ist die Datei Vorhanden.

string(55) "sh: 1: /home/shoutcast/sc_trans_9000/script: not found "
Da gibts dann wohl nen Problem mit den Dateiberechtigungen. PHP läuft eben nicht mit denen des shoutcast-Servers.
Da frag ich mich aber wo wen die auf 777 laufen. Darauf folgt das ich das obere mit String 55 behoben konnte dafür meckert er jetzt Permission denied.

string(35Cool "/home/shoutcast/sc_trans_9000/script: 1: /home/shoutcast/sc_trans_9000/script: /home/shoutcast/sc_trans_9000: Permission denied /home/shoutcast/sc_trans_9000/script: 16: /home/shoutcast/sc_trans_9000/script: cannot create /var/run/sctrans.pid: Permission denied /home/shoutcast/sc_trans_9000/script: 21: /home/shoutcast/sc_trans_9000/script: [[: not found "
Was läuft auf 777? Die Fehlermeldungen besagen immer noch, dass du nicht genügend Rechte hast.

PHP-Code:
passthru('whoami'); 

tkausl schrieb:

PHP-Code:
passthru('whoami'); 

Also das Whoami gibt mir folgendes aus. www-data
Ich frage mich aber was ich damit soll ich arbeite immer in /var/www und nicht in www-data
oder ich bin gerade aufm Falschen Dampfer was ich eher vermute. Denn kann auch sein das es kein Ordner ist ?

[Link: Registrierung erforderlich]

Ich würde dir empfehlen, das Script von jemandem schreiben zu lassen, der Ahnung hat - sonst geht es schnell nach hinten los.

Alternativ dazu könntest du auch die PHP Funktion SSH2 mit Public Key nutzen.
Seiten: 1 2
Referenz-URLs