globalplayer
New Member
Ich versuche über ein PHP-Script einen CSS-Gameserver zum laufen zu bringen. Ich habe mir Debian auf einer Virtuellen Maschine installiert, sowie einen apache2 , css-server, screen und sudo.
Der Apache-user "www-data" soll über den Benutzer "server3" das Start-Script des Servers ausführen.
(CSS-Server und Start-Script liegen in /home/server3/. Server3 hat bei allen nötigen Dateien das Recht sie auszuführen.)
Ich habe erstmal /etc/sudoers konfiguriert:
Um das erstmal an der Shell zu testen habe ich folgendes probiert:
also Root:
Dann als www-data:
Dann kommt die Meldung des Start-Scripts "Starting CSS Server #2", was auch so sein sollte.
Aber der server läuft trozdem nicht, lässt sich nicht anpingen.
Auch mit "sudo -u server3 screen -ls" sehe ich keine screen-sitzung des Gameservers.
ABER:
Wenn ich vorher das Verzeichnis wechsle und dann den Befehl eingebe:
Dann startet der CSS-Server, lässt sich anpingen und screen Sitzung ist auch da.
Also dachte ich mir ich probiere es im PHP-Script so aus:
Allerdings scheitert es hier schon beim Verzeichnis wechseln.
Die variable $pwd gibt mir aus: /var/www
Ich kann also das Verzeichnis über das PHP-Script nicht wechseln, in der Shell aber schon.
$sudoretval gibt mir eine 1 aus, $retvalstatus gibt mir "No Sockets found in /var/run/screen/S-server3" aus.
Um es zum laufen zu bringen müsste ich es also schaffen per PHP das Verzeichnis zu wechseln, oder über den befehl mit kompletter Pfadangabe den Server zu starten.
Am meisten würde mich interessieren warum der Server mit der kompletten Pfadangabe nicht startet. Anfängerfehler? Würde zu mir passen...
Denn am liebsten würde ich diesen Weg nehmen.
Das Start-Script sieht so aus:
Noch ein paar infos zum System:
Apache version 2.2.16 (Debian)
Linux Debian 2.6.32-5-686
PHP Version 5.3.3-7+squeeze14
Vielen Dank schonmal!
Gruß,
Patrick
Der Apache-user "www-data" soll über den Benutzer "server3" das Start-Script des Servers ausführen.
(CSS-Server und Start-Script liegen in /home/server3/. Server3 hat bei allen nötigen Dateien das Recht sie auszuführen.)
Ich habe erstmal /etc/sudoers konfiguriert:
Code:
www-data ALL=(server3) NOPASSWD: /home/server3/start
www-data ALL=(server3) NOPASSWD: /home/server3/stop
www-data ALL=(server3) NOPASSWD: /home/server3/restart
www-data ALL=(server3) NOPASSWD: /usr/bin/screen
also Root:
Code:
su www-data
Dann als www-data:
Code:
sudo -u server3 /home/server3/start
Dann kommt die Meldung des Start-Scripts "Starting CSS Server #2", was auch so sein sollte.
Aber der server läuft trozdem nicht, lässt sich nicht anpingen.
Auch mit "sudo -u server3 screen -ls" sehe ich keine screen-sitzung des Gameservers.
ABER:
Wenn ich vorher das Verzeichnis wechsle und dann den Befehl eingebe:
Code:
cd /home/server3/
sudo -u server3 ./start
Dann startet der CSS-Server, lässt sich anpingen und screen Sitzung ist auch da.
Also dachte ich mir ich probiere es im PHP-Script so aus:
PHP:
$cd = system('cd /home/server3/');
$pwd = system('pwd');
$sudo = system('sudo -u server3 ./start', $sudoretval);
$checkstatus = system('sudo -u server3 screen -ls', $retvalstatus);
Allerdings scheitert es hier schon beim Verzeichnis wechseln.
Die variable $pwd gibt mir aus: /var/www
Ich kann also das Verzeichnis über das PHP-Script nicht wechseln, in der Shell aber schon.
$sudoretval gibt mir eine 1 aus, $retvalstatus gibt mir "No Sockets found in /var/run/screen/S-server3" aus.
Um es zum laufen zu bringen müsste ich es also schaffen per PHP das Verzeichnis zu wechseln, oder über den befehl mit kompletter Pfadangabe den Server zu starten.
Am meisten würde mich interessieren warum der Server mit der kompletten Pfadangabe nicht startet. Anfängerfehler? Würde zu mir passen...
Denn am liebsten würde ich diesen Weg nehmen.
Das Start-Script sieht so aus:
Code:
#!/bin/sh
IP="192.168.178.26"
PORT="27025"
MAP="de_dust2"
GAME="cstrike"
SLOTS="24"
RCON="testpw"
FPS="66.7"
# CSS
echo "Starting CSS Server #2"
sleep 1
screen -A -m -d -S css-server ./css/srcds_run -game $GAME +map $MAP -maxplayers $SLOTS -ip $IP -port $PORT +rcon_password "$RCON" +fps_max $FPS
Noch ein paar infos zum System:
Apache version 2.2.16 (Debian)
Linux Debian 2.6.32-5-686
PHP Version 5.3.3-7+squeeze14
Vielen Dank schonmal!
Gruß,
Patrick