PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HLTV Webinterface



Kampfschildkroe
25.10.05, 10:16
Hi,

folgendes Problem:

Ich möchte einen HLTV Server connecten lassen, ohne dass direkt auf den Server (Suse 9.3) zugegriffen oder HLSW benutzen werden muss, da das rcon Passwort nicht jeder wissen brauch, der den Server connecten lassen will.

Über Google hab ich nur Anbieter gefunden, die so ein Interface nur mit einem gemieteten Gameserver mitliefern. Gibt es da schon ein Grundgerüst, was man verwenden kann, oder muss das selber von Null aufgebaut werden? Wenn ja, kennt jemand hilfreiche Seiten oder Tipps, wie man das am besten angeht? Danke schonmal.

nitron
25.10.05, 15:56
im grunde musst du dir nur wie bei gameservern auch eine .sh datei schreiben die den hltv server startet. Dann brauchst du einen http server der php fähig ist und eine .php datei die die datei ausführt..
z.b. sowas als php datei:


<link rel="stylesheet" href="design.css" type="text/css">
<?
$act=$HTTP_GET_VARS['act'];
$output = shell_exec("./hltv.sh status");
//
// Server starten
//
if ($act=="start")
{
$output = shell_exec("./hltv.sh start");
sleep (3);
echo"
<p><b>$output</b> <font color='#FF0000'>Server gestartet</font></p>
";
}
//
// Server stoppen
//
elseif ($act=="stop")
{
$output = shell_exec("./hltv.sh stop");
sleep (3);
echo"
<p><b>$output</b> <font color='#FF0000'>Server gestoppt</font></p>
";
}
//
// Server restarten
//
if ($act=="restart")
{
$output = shell_exec("./hltv.sh restart");
sleep (3);
echo"
<p><b>$output</b> <font color='#FF0000'>Server restartet</font></p>
";
}
echo"
<p>&nbsp;</p>
<table border='0' width='80%'>
<tr>
<td colspan='2'><h2 align='center'><b>Status</b></h2></td>
</tr>
<tr>
<td colspan='2'>
<div align='center'>
<table border='1'>
<tr>
<td bgcolor='#666666'><p align='center'><b>$output</b></td>
</tr>
</table>
</div>
</td>
</tr>
<tr>
<td width='49%' align='center'><br><br><a href='hltv.php?act=start'>starten</a> . <a href='hltv.php?act=stop'>stoppen</a> . <a href='hltv.php?act=restart'>restarten</a></td>

</tr>
</table>
";
?>


damit sollte es gehen.
Die .sh datei kriegste bei google

Kampfschildkroe
29.10.05, 14:26
Hab des jetzt mal ausprobiert, doch irgendwie will er nicht, ich habe eine sh Datei gefunden. Wenn ich die direkt Datei ausführe (./hlds start) startet er den Server, wenn ich es jedoch über das Webinterface starte, gibt er die Meldung aus, dass er gestartet wurde, aber in HLSW wird er als Offline angezeigt.

"ps aux | grep hlds_run" gibt aauch aus, dass er läuft (genau das gleiche wie wenn ich die sh Datei direkt starte).

wwwrun hab ich zum Owner von dem CS Ordner gemacht, weiss jemand, was ich noch vergessen haben könnte?

nitron
29.10.05, 17:38
heißt der user denn bei dir wwwrun? sonst mach einfach mit chmod 777 auf die php datei und die sh datei.. und liegt die php datei im selben dir wie die ,sh datei?

Kampfschildkroe
31.10.05, 10:40
Ja, der User heisst wwwrun und beide Dateien liegen im selben Verzeichnis.

Wenn ich die sh Datei direkt starte kommt folgendes bei grep raus:


sk 7044 0.0 0.2 3856 1284 ? Ss 13:39 0:00 SCREEN -d -m -S hlds_test /games/hlds/hlds_run -game cstrike +maxplayers 12 +map de_dust
sk 7045 0.1 0.2 3608 1336 pts/3 Ss+ 13:39 0:00 /bin/sh /games/hlds/hlds_run -game cstrike +maxplayers 12 +map de_dust
sk 7056 26.2 10.5 64676 54548 pts/3 Sl+ 13:39 0:02 ./hlds_amd -game cstrike +maxplayers 12 +map de_dust

Wenn ich es über das Webinterface versuche:


wwwrun 7078 0.0 0.2 2952 1232 ? Ss 13:40 0:00 SCREEN -d -m -S hlds_test /games/hlds/hlds_run -game cstrike +maxplayers 12 +map de_dust
wwwrun 7079 0.1 0.2 2964 1284 pts/2 Ss+ 13:40 0:00 /bin/sh /games/hlds/hlds_run -game cstrike +maxplayers 12 +map de_dust

Irgendwie will er über das Webinterface die hlds_amd nicht mitstarten, daraufhin habe ich die hlds_amd auf chmod 777 geändert, aber hat leider auch nichts gebracht.

nitron
31.10.05, 18:22
das sind aber die startdateien für einen cs server nicht für hltv o0?

Kampfschildkroe
31.10.05, 20:19
das sind aber die startdateien für einen cs server nicht für hltv o0?
Ich weiss :)

Ich hatte bloss nur eine sh Datei zum Start von einem CS Server gefunden (hatte ich vergessen zu schreiben), die würde ich dann umändern. Es bringt bringt ja nichts das jetzt schon zu ändern, wenn er nichtmal so läuft ;)

nitron
01.11.05, 16:20
wie soll er denn laufen ohne startdatei? olo?
mit welchem parameter startest du den denn?

Kampfschildkroe
01.11.05, 16:29
wie soll er denn laufen ohne startdatei? olo?
mit welchem parameter startest du den denn?
Meinst du mit Startdatei die sh Datei? Die habe ich doch und die funktioniert ja auch, bloss nicht im zusammenhang mit dem Webinterface.
Die Parameter stehen oben im Code mit dabei "-game cstrike +maxplayers 12 +map de_dust".

Wo genau mein Problem liegt:

- ich möchte ein HLTV Webinterface installieren
- Ich habe aber nur eine sh Datei für den Start eines CS Servers gefunden, die ich dann anpassen würde, da ich aber erstmal testen wollte, ob die sh Datei überhaupt funktioniert (bevor ich die Datei groß umändere und dann nachher nicht sagen, ob sie überhaupt mal ging), wollte ich es erst so ausprobieren. Er führt ja anscheind auch irgendwas aus über das Webinterface, aber die hlds_amd startet er (aus welchen Gründen auch immer) nicht.

Die sh Datei anfür sich funktioniert, wenn ich sie direkt ausführe, über das Webinterface aber nicht und genau hier liegt mein Problem.

nitron
01.11.05, 18:07
du willst aber doch hltv starten per webinterface nicht ein gameserver???

Suxxess
02.11.05, 22:02
Bitte sehr eine passende sh Datei für HLTV.
http://213.202.214.115/downloads/hltv.sh

Die Datei mit wget saugen und dann einfach nur den Path am Anfang ändern.
Am einfachsen geht das mit dem Midnight Commander (mc als Befehl).

Dann halt chown und chmod die Rechte anpassen und die Datei in den gewünschten Ordner kopieren. Für ein etwas umfangreicheres WI.
http://www.linuxforen.de/forums/showthread.php?t=135735

Das kann man auch leicht zum HLTV Wi umbauen indem man einfach nur den Path zur sh Datei ändert.

Dann testest du ob der HLTV Server startet wenn du ihn als counter strike User startest. ( ./hltv.sh start ) Wenn das funktioniert musst du herausfinden welcher Benutzer bei dir der Apacheuser ist. (Meistens wwwdate oder nobody) Dann loggst du dich als der User ein.

Geh den Umweg über root dann musst du deren pw nicht wissen:
1. su
2. su nobody oder wwwdata

Dann startest du die sh Datei.
Das wird dann wahrscheinlich nicht funktionieren da der Benutzer die nötigen Rechte nicht hat. Also wieder als root anmelden und eine Gruppe erstellen. Dann nobody oder wwwdata der Gruppe hinzufügen und die Gruppe den cs Dateien zuweisen. Dann sollte der Nutzer auch den Server starten können und das Problem ist gelöst. :D