PHP Linux ansprechen mit PHP

Rokuda

Lieutenant
Registriert
Dez. 2007
Beiträge
525
Hi,

ich habe nun schon länger einen Server mit Linux auf dem ich 1-2 CSS und 1 Minecraft Server betreibe.
Nun möchte ich ein Webinterface erstellen mit dem meine Clanmates den CSS Server Starten/Neustarten/Stoppen können und auch Befehle wie Mapchanges direkt über Interface machen können.
So ähnlich solls auch bei Minecraft laufen.
Nun will ich dennen aber keinerlei SSH Kennwörter oder ähnliches anvertrauen, sondern nur ein Interface mit dem sie vorgegebene Befehle ausführen können.

Alles ganz einfach, bis auf ein bis zwei Sachen.

Wie kann ich Shell Befehle von PHP an Linux schicken?
Mit exec(), shell_exec() und system() ist nichts passiert.

Könnt ihr mir vielleicht auf die Sprünge helfen?

zur Info:
Auf dem Server läuft ein Plesk Panel.
 
Die Info mit dem Plesk Panel ist unnötig. Das ist ja nur die Verwaltungsoberfläche.

Das Problem wird erstmal sein das der Webserver mit Benutzername "wwwrun" ausgeführt wird und dieser keinen Zugriff auf das Verzeichnis der Gameserver hat.

Ich kann dir aber nicht empfehlen diesem User Rechte zu geben weil du damit die Gameserver angreifbar machst. EIne alternative kenn ich aber auch nicht.
 
Hm, etwas umständlicher Workarround:
Du lässt php eine Datei stop.txt in httpdocs Verzeichnis erstellen. Über einen Cron-Job oder wie auch immer lässt du dann ein Skript (mit höheren Rechten) regelmäßig überprüfen, ob die Datei vorliegt, und dann entsprechend den Server runterfahren und die Datei löschen. Alles andere als elegant, aber müsste ghn ;)
 
Das mit den Cronjobs halte ich ehrlich gesagt für keine gute Idee...

Aber meine Frage ist immernoch ob ich die Shell Befehle über php selbst ausführen kann.
Die Berechtigung wäre soweit kein Problem, da der Server nur dann läuft wenn ein War gespielt wird (kein Public) und sonst Offline ist.
Wie ich diese berechtigung vergebe weiss ich. Doch was ich nicht weiss ist wie ich die Shell überhaupt anspreche. Ich konnte nicht mal einen "ls" oder einen "mkdir" ausführen.
Mit exec(), shell_exec() und system() ist nichts passiert.
 
Hast du php vlt im safe-mode laufen? Dann funktionieren die Systembefehle nämlich nicht.
 
Evtl. sind die Funktionen auch unter den deaktivierten Funktionen in der php.ini. Probier doch mal Folgendes:
Code:
<?php
error_reporting(E_ALL);
ini_set("display_errors", TRUE);
passthru("ls");
?>
Dann müsste eigtl. eine Fehlermeldung kommen wenn es irgendwelche Probleme gibt. Falls nicht, dann display_errors in der php.ini umstellen , den Apache neustarten und nochmal probieren.
 
Also bei den CSS-Servern kann man das ja sogar Ingame über Plugins machen.
Bei einem Warserver sehe ich da jetzt keinen Vorteil, dass über ein Webinterface zu machen, weil der Server eh extra gestartet wird und man selber spielt.
 
Zurück
Oben