php exec

  • Ich habe das in php eingetippt

    Code
    else if($_GET['page'] == 'start')
    	{
    		shell_exec('cd /root/samp03');
    		shell_exec('./samp03svr');
    		echo '<tr><td>';
    		include 'templates/start.tpl';
    		echo '</tr></td>';	
    	}


    aber mein samp server startet nich!
    weiß jemmand was ich falsch mache???

    Hobby: Kettenrauchen
    Haufigster gesagter spruch: Nie wieder Alkohol

  • Crank


    Du solltest natürlich überprüfen, ob Dein lokaler Benutzer, welcher in der PHP Ini steckt,
    überhaupt die Berechtigung zum Ausführen des Scripts hat.


    Zum anderen solltest Du den Befehl nicht direkt ins shell_exec eintragen,
    denn es führte meiner Erfahrung nach oft zu Fehlern, auch in meinem CP, daher versuchs mal so:


    PHP
    else if($_GET['page'] == 'start')
    {
        $root_cmd = 'cd /home/samp03 ; ./samp03svr &';
        shell_exec($root_cmd);
    
        ... Dein Code
    }


    Auch wichtig ist das Zeichen & nach dem Befehl ./samp03svr, welches dem Root Server
    mitteil, dass dieser PID nämlich bis zum manuelen Beenden, aktiv bleiben soll.


    Vor allem zwei mal das shell_exec zu öffnen, bringt Dir in PHP nicht viel, da
    Dein Server nach Ausführung des ersten Befehl, die Session wieder schließt und
    Dir somit beim zweiten shell_exec der Pfad schon wieder fehlen würde.


    Ein shell_exec ist in diesem Falle ein Muss und vor allem schneller und nützlicher...