Linux Anwendungen via PHP Starten

Benjamin5

Mitglied
Ich Arbeite gerade an einem kleinen PHP Gameserver Webinterface für einen server von mir.
Nun möchte ich gerne die Option Gameserver Starten / Stopen einbauen. Allerdings habe Ich nicht die Geringste Ahnung wie ich das Machen soll.

Also die Anwendung heist zum Bsp: Server
Wenn ich per putty jetzt ./Server eingebe dann startet der Server.
Wie setze ich das jetzt in PHP um?

Vielen Dank im Vorraus.
 
Zuletzt bearbeitet:
Muss Ich nicht noch irgendwie die benutzerdaten angeben wer das ausführen muss oder ist dies unnötig wenn das auf dem selben server liegt das Prog und das script?
Ok, Theoretisch müsste es also dann so heissen:
PHP:
<?php
$command = "127.0.0.1 -u Benutzername -p Passwort html\server\samp022svr";
exec($command);
?>
Aber wenn Ich jetzt die seite aufrufe die das Commando enthält dann tut sich nichts oder muss ich das Commando direkt als Link nehmen? Wo kann da der Feler drinne sein.

Vielleicht sollte ich dazu sagen das dies alles auf einem Debian System läuft.
 
Zuletzt bearbeitet:
Gibt es den niemanden der mir vielleicht Helfen kann das Ich das zum Laufen bringe? Ich habe auch schon versucht mir mal andere scripte anzuschauen, aber bei denen blickt man ja nicht mehr durch.

Wäre über Hilfe sehr Dankbar.
 
PHP:
$command = "127.0.0.1 -u Benutzername -p Passwort html\server\samp022svr";
Was soll das bewirken?
Da fehlt einer Seits der Befehl an sich - vor der IP muss irgendwas stehen.
Anderer Seits sind auch die Backslashes verkehrt, Slashes (also "/") wären richtig. Der führende Slash fehlt ausserdem auch noch, da ich nicht glaube dass dein Skript im root-Verzeichnis liegt?! ;)

Btw.: Du kannst dir auch die Rückgabe des Befehls ausgeben lassen.
PHP:
echo exec( 'pwd' );
 
So, Ich habe das mal jetzt mit deinem Link Probiert. Allerdings habe Ich auch damit ein kleines Problem. Der Code sieht so aus:
PHP:
<?php
$act = $HTTP_GET_VARS['act'];
$output = shell_exec("./anwendung status");

//  Server starten
if ($act=="start")
{
  $output = shell_exec("./anwendung start");
  sleep (3);
  echo"<p><b>$output</b>  <font color='#FF0000'>Server gestartet</font></p>";
}

//   Server stoppen
elseif ($act=="stop")
{
  $output = shell_exec("./anwendung stop");
  sleep (3);
  echo"<p><b>$output</b>  <font color='#FF0000'>Server gestoppt</font></p>";
}
?>
<table border="0" width="80%">
<tr>
    <td colspan="2"><h2 align="center">Serverstatus</h2></td>
</tr>
<tr>
    <td colspan="2" align="center">
        <table border="1">
        <tr>
            <td bgcolor="#666666" align="center"><b><?php echo $output; ?></td>
        </tr>
        </table>
    </td>
</tr>
<tr>
    <td align="center" colspan="2">
    <h2>Script ausführen</h2>
    <p>Hier kann das Serverscript zum starten und stoppen ausgeführt werden.<br />
    Der Server darf auf keinen Fall 2 mal gestartet werden, sonst stürzt er ab.</p>
    </td>
</tr>
<tr>
    <td width="50%" align="right"><p><a href="server.php?act=start">Server starten</a> :</td>
    <td width="50%"><a href="server.php?act=stop">Server stoppen</a></td>
</tr>
</table>
So allerdings bekomme Ich da diese Fehlermeldung:
Code:
Notice: Undefined index: act in /var/www/web3/html/kunden/application/tsbot/default/index.php on line 2
Ich habe jetzt den SafeMode ausgeschaltet. Woran liegt das jetzt noch?
 
Probier mal so.
PHP:
<?php
$act = htmlspecialchars($_GET['act']);
$output = shell_exec("./anwendung status");

//  Server starten
if ($act=="start")
{
  $output = shell_exec("./anwendung start");
  sleep (3);
  echo"<p><b>$output</b>  <font color='#FF0000'>Server gestartet</font></p>";
}

//   Server stoppen
elseif ($act=="stop")
{
  $output = shell_exec("./anwendung stop");
  sleep (3);
  echo"<p><b>$output</b>  <font color='#FF0000'>Server gestoppt</font></p>";
}
?>
<table border="0" width="80%">
<tr>
    <td colspan="2"><h2 align="center">Serverstatus</h2></td>
</tr>
<tr>
    <td colspan="2" align="center">
        <table border="1">
        <tr>
            <td bgcolor="#666666" align="center"><b><?php echo $output; ?></td>
        </tr>
        </table>
    </td>
</tr>
<tr>
    <td align="center" colspan="2">
    <h2>Script ausführen</h2>
    <p>Hier kann das Serverscript zum starten und stoppen ausgeführt werden.<br />
    Der Server darf auf keinen Fall 2 mal gestartet werden, sonst stürzt er ab.</p>
    </td>
</tr>
<tr>
    <td width="50%" align="right"><p><a href="server.php?act=start">Server starten</a> :</td>
    <td width="50%"><a href="server.php?act=stop">Server stoppen</a></td>
</tr>
</table>
bzw wenn jemand mit nen Linuxroot das mal Testen könnte (hab hier keinen Zugriff auf einen)?

Edit:
http://forum.pro-coder.com/topic.php?id=9
Da gibts nen start stop script... alles ein bischen aufeinander angepasst dürfte es gehen. ,und nicht vergessen der user www braucht die Rechte um das Script, und das Script die Rechte (Benutzerrechte...) die Server starten Stoppen zu dürfen.

mfg Spikaner
 
Zuletzt bearbeitet:
Zurück