PHP Linux ansprechen mit PHP

Raiden42

Lt. Junior Grade
Dabei seit
Dez. 2007
Beiträge
509
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.
 

Bisumaruku

Lt. Commander
Dabei seit
Nov. 2006
Beiträge
1.816
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.
 
F

Flup

Gast
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 ;)
 

Raiden42

Lt. Junior Grade
Ersteller dieses Themas
Dabei seit
Dez. 2007
Beiträge
509
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.
 
F

Flup

Gast
Hast du php vlt im safe-mode laufen? Dann funktionieren die Systembefehle nämlich nicht.
 

BerniG

Lieutenant
Dabei seit
Okt. 2004
Beiträge
622
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.
 
Dabei seit
Mai 2010
Beiträge
909
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.
 
Top