Seite 1 von 1

Server per PHP-Script starten ?

Verfasst: 31.07.2005 02:50
von Condor
Hi,

ich habe das folgende Script um einen Gameserver zu starten:

Code: Alles auswählen

<?php
$action=$HTTP_GET_VARS['action'];
$output = shell_exec("./Verzeichnis/wo/die/Startdatei/liegt status");
   //
   //  Server starten
   //
   if ($action=="start")
   {
      $output = shell_exec("./Verzeichnis/wo/die/Startdatei/liegt start");
      sleep (3);
      echo"
         <p><b>$output</b>  <font color='#FF0000'>Server gestartet</font></p>
      ";
   }

      if ($action=="restart")
   {
      $output = shell_exec("./Verzeichnis/wo/die/Startdatei/liegt restart");
      sleep (3);
      echo"
         <p><b>$output</b>  <font color='#FF0000'>Server neugestartet</font></p>
      ";
   }
   
      if ($action=="stop")
   {
      $output = shell_exec("./Verzeichnis/wo/die/Startdatei/liegt stop");
      sleep (3);
      if ($output) {
      echo"
         <p><b>$output</b>  <font color='#FF0000'>Server gestopt</font></p>
      ";
                   }
       else {
            echo "Server nicht gestartet.";
            }
   }


echo "
<p><a href='server-index.php?action=start'>Server Starten</a></p>
<p><a href='server-index.php?action=restart'>Server Neustarten</a></p>
<p><a href='server-index.php?action=stop'>Server Stoppen</a></p>";

?>
Aber der Server wird z.B. nicht gestoppt. Ist die Verzeichniss Angabe falsch ? Als "Owner" der ausführbaren Datei habe ich "wwwrun", muss ich noch was verändern oder beachten ?

Verfasst: 31.07.2005 11:14
von QCO
Du musst doch eigentlich nur schaun, was in $output drin steht, dann weißt du in etwa, wo das Problem liegt.
Ansonst kannst du statt system() auch mal passthru probieren um dir die komplette Ausgabe des Startversuchens anzuschaun.
Woher soll ich wissen, ob der Pfad richtig ist, wenn du nur einen Beispielpfad angibst?

Verfasst: 31.07.2005 14:21
von Condor
Hi,

was soll den an $output falsch sein ? Wenn ich in SSH bin, dann starte ich das Startscript auch mit

Code: Alles auswählen

./srcds start
So stehts doch auch in der Variable $output, oder nicht ? Und was meinst du mit ich solle anstatt System(), passthru benutzen ? Ich benutze System() doch gar nicht :) Die eigentliche Verzeichniss-Angabe wäre dann:

Code: Alles auswählen

$output = shell_exec("./home/server/clan/srcds start");
Bis dann :grin:

Verfasst: 31.07.2005 15:39
von QCO
An $output ist nichts falsch, aber diese Variabe enthält doch die Ausgabe deines shell-Aufrufes.
Also wird dort drin auch die Fehlermeldung oder was auch immer stehen, aus der du dann ableiten kannst, was nicht in Ordnung ist.
Also mach doch einfach am Ende deines Skripts mal ein

Code: Alles auswählen

echo $output;
rein.

Das mit dem system() war ein Fehler meinerseits; du benutzt ja shell_exec().

Verfasst: 31.07.2005 19:17
von Condor
Hi,

du hast mich nämlich total durcheinander gebracht mit System() etc. Ich hab echo eingebaut, aber es wird gar nichts ausgegeben, kannst ja mal selber versuchen :-)

Verfasst: 07.08.2005 15:29
von gnp28
@Condor

funktioniert das Script?

Wenn ja wäre es möglich, das du mir dies zu Verfügung stellst?

MfG