<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Gameserver on Ulis Notizen</title>
    <link>https://wolf-u.li/tag/gameserver/</link>
    <description>Recent content in Gameserver on Ulis Notizen</description>
    <generator>Hugo</generator>
    <language>de</language>
    <copyright>Copyright 2006-CURRENTYEAR Uli Wolf - All rights reserved</copyright>
    <lastBuildDate>Sun, 05 Jun 2016 18:16:30 +0500</lastBuildDate>
    <atom:link href="https://wolf-u.li/tag/gameserver/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>HLStats auf einem &#34;blanken&#34; Server installieren</title>
      
      
      <link>https://wolf-u.li/hlstats-auf-einem-blanken-server-installieren/</link>
      <pubDate>Tue, 13 Jun 2006 11:37:55 +1300</pubDate>
      <guid>https://wolf-u.li/hlstats-auf-einem-blanken-server-installieren/</guid>
      <description>&lt;p&gt;Wenn man Real-Time-Statistiken von Half-Life-Servern haben will, so nimmt man am besten &amp;ldquo;&lt;link rel=dns-prefetch href=//sourceforge.net /&gt; &lt;a href=&#34;http://sourceforge.net/projects/hlstats/&#34;
    title=&#34;HLStats&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  HLStats&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;&amp;rdquo;. Ich zitiere mal aus der &lt;link rel=dns-prefetch href=//docs.unitedadmins.com /&gt; &lt;a href=&#34;http://docs.unitedadmins.com/hlstats/german/&#34;
    title=&#34;Dokumentation&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  Dokumentation&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;:&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p>Wenn man Real-Time-Statistiken von Half-Life-Servern haben will, so nimmt man am besten &ldquo;<link rel=dns-prefetch href=//sourceforge.net /> <a href="http://sourceforge.net/projects/hlstats/"
    title="HLStats" 
     target="_blank" rel="nofollow noopener noreferrer" >
  HLStats&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>&rdquo;. Ich zitiere mal aus der <link rel=dns-prefetch href=//docs.unitedadmins.com /> <a href="http://docs.unitedadmins.com/hlstats/german/"
    title="Dokumentation" 
     target="_blank" rel="nofollow noopener noreferrer" >
  Dokumentation&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>:</p>
<blockquote>
<p>HLstats besteht aus einem Perl Script (die HLstats logging Daemon) und aus einem Set von PHP Scripts (welche die gewonnenen Daten als Webseite anzeigen). HLstats bietet Statistiken für den einzelnen Spieler sowie auch für den ganzen Clan.</p>
</blockquote>
<p>Meine Ausgangslage</p>
<ul>
<li>&ldquo;Blanker&rdquo; Server (Keinerlei MySQL oder Apache2)</li>
<li>Debian 3.1 Sarge Stable</li>
<li><link rel=dns-prefetch href=//prdownloads.sourceforge.net /> <a href="http://prdownloads.sourceforge.net/hlstats/hlstats-1.34.tar.gz?download"
    title="HLStats 1.34" 
     target="_blank" rel="nofollow noopener noreferrer" >
  HLStats 1.34&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a></li>
</ul>
<p>Folgende Packete werden zunächst in der Konsole installiert:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">apt-get install apache2 libapache2-mod-php4 wget libdbi-perl libdbd-mysql-perl libdbd-mysql mysql-server mysql-common ncftp lynx php4-mysql
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nachdem das alles installiert ist, muss man Perl konfigurieren:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">perl -MCPAN -e shell
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun werden ein Haufen Fragen gestellt, eigentlich ist aber davon nur die Frage nach den Downloadservern am Ende wirklich wichtig.
Am Ende öffnet sich ein CPAN-Prompt in dem man nun noch die Module initialisieren sollte:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cpan&gt; install Bundle::DBI
</span></span><span class="line"><span class="cl">cpan&gt; install Bundle::DBD::mysql
</span></span></code></pre></td></tr></table>
</div>
</div><p>Perl ist nun soweit fertig.</p>
<p>Nun brauchen wir zunächst HLStats. Ich installiere den Perl-Server von HLStats in <em>/home/hlstats/</em>, weshalb ich nun dort zunächst die Files entpacke(Ich sauge immer von Switch, die URL ist natürlich gegen andere Mirrors austauschbar ;)):</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span><span class="lnt">6
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">wget http://switch.dl.sourceforge.net/sourceforge/hlstats/hlstats-1.34.tar.gz
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> /home/
</span></span><span class="line"><span class="cl">tar xzvf hlstats-1.34.tar.gz
</span></span><span class="line"><span class="cl">mv hlstats-1.34 hlstats
</span></span><span class="line"><span class="cl">rm hlstats-1.34.tar.gz
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> hlstats
</span></span></code></pre></td></tr></table>
</div>
</div><p><img src="/upload/2006/06/699-hlstats_diagram.gif" alt="HLStats Serverstruktur" loading="lazy"></p>
<p>HLStats loggt über einen Perl-Server, der normalerweise auf Port 27500 &ldquo;lauscht&rdquo;, in eine normale MySQL-Datenbank, was die nebenstehende Server-Struktur ermöglicht. Viele einzelne Gameserver können so auf einen einzigen MySQL-Server(dieser wäre über eine Datenbank-Replikation auch wieder einfach zu sichern) loggen, wodurch die Statistiken dann einfach über eine Seite abrufbar sind. Das Frontend ist wiederum in PHP mit einzelnen Templates geschrieben, was eine Anpassung nicht besonders schwer macht.</p>
<p>Nun muss HLStats noch in die MySQL-Datenbank eingefügt werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mysql admin create hlstats
</span></span><span class="line"><span class="cl">mysql hlstats &lt; hlstats.sql
</span></span><span class="line"><span class="cl">mysql hlstats &lt; gamesupport_XXYYXX.sql
</span></span></code></pre></td></tr></table>
</div>
</div><p>Dies kann nur im Verzeichnis des entpackten Archives ausgeführt werden.</p>
<p>XXYYXX muss hierbei durch das Spiel, welches man benötigt ersetzt werden, also z.b.:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">mysql hlstats &lt; gamesupport_css.sql
</span></span></code></pre></td></tr></table>
</div>
</div><p>Weitere Support-Files bekommen sie hier. (Hinweis: HLstats unterstuetzt nur Spiele mit dem Half-Life Log Format.)</p>
<p>Nachdem die Spieldaten und die Haupt-SQL-Files in der Datenbank gelandet sind, müssen wir nun noch die User anlegen, die auf diese Datenbank zugreifen dürfen</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">shell&gt; mysql --user<span class="o">=</span>root mysql
</span></span></code></pre></td></tr></table>
</div>
</div><div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="k">GRANT</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="k">PRIVILEGES</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="n">hlstats</span><span class="p">.</span><span class="o">*</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="s1">&#39;hlstats&#39;</span><span class="o">@</span><span class="s1">&#39;localhost&#39;</span><span class="w"> </span><span class="n">IDENTIFIED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="s1">&#39;somepassword&#39;</span><span class="w">
</span></span></span></code></pre></td></tr></table>
</div>
</div><p>Das erste HLStats ist der Databasename und das zweite HLStats ist der Benutzername der erstellt wird. (Hinweis: &lsquo;somepassword&rsquo; sollte natürlich durch ein anderes ersetzt werden, also z.b. &lsquo;Mju5mkfOP5QCVlgY&rsquo;)</p>
<p>Zur Absicherung des RooT-Users müssen wir dessen Passwort ändern(wird von MySQL übrigends als eine der <link rel=dns-prefetch href=//dev.mysql.com /> <a href="http://dev.mysql.com/doc/refman/5.1/de/default-privileges.html"
    title="ersten Aktionen empfohlen" 
     target="_blank" rel="nofollow noopener noreferrer" >
  ersten Aktionen empfohlen&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>). In der MySQL-Console muss daher folgendes eingegeben werden:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="k">UPDATE</span><span class="w"> </span><span class="k">user</span><span class="w"> </span><span class="k">SET</span><span class="w"> </span><span class="n">Password</span><span class="o">=</span><span class="n">PASSWORD</span><span class="p">(</span><span class="s1">&#39;someotherpassword&#39;</span><span class="p">)</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="k">user</span><span class="o">=</span><span class="s1">&#39;root&#39;</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">FLUSH</span><span class="w"> </span><span class="k">PRIVILEGES</span><span class="p">;</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">quit</span><span class="p">;</span><span class="w">
</span></span></span></code></pre></td></tr></table>
</div>
</div><p>(Hinweis: &lsquo;someotherpassword&rsquo; sollte natürlich auch hier durch ein anderes ersetzt werden, also z.b. &lsquo;5QCVlgYMju5mkfOP&rsquo;)</p>
<p>Der folgende Abschnitt wurde in der Dokumentation als Kompatibilitäts-Sache angegeben, damit Perl korrekt mit dem Frontend arbeitet:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">shell&gt; mysql --user<span class="o">=</span>root -p mysql
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun werden sie nach dem oben vergebenen root-Passwort gefragt. Nach Eingabe dieses Passworts fügen sie die folgende Zeile ein. Hierbei muss &lsquo;/hlstats/hlstats.php&rsquo; durch das Verzeichnis (relativ zum Webroot) ersetzt werden, in dem sich &ldquo;hlstats.php&rdquo; befindet. Wenn HLStats sich im &lsquo;/stats&rsquo;-Ordner befindet, muss man &lsquo;/stats/hlstats/hlstats.php&rsquo; verwenden. Wenn sie hlstats über &ldquo;<link rel=dns-prefetch href=//example.com /> <a href="http://example.com/hlstats/hlstats.php%22"
    title="http://example.com/hlstats/hlstats.php&#34;" 
     target="_blank" rel="nofollow noopener noreferrer" >
  http://example.com/hlstats/hlstats.php"&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> erreichen, dann ist die folgende Angabe richtig.</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-sql" data-lang="sql"><span class="line"><span class="cl"><span class="k">INSERT</span><span class="w"> </span><span class="k">INTO</span><span class="w"> </span><span class="n">hlstats_Options</span><span class="w"> </span><span class="p">(</span><span class="n">keyname</span><span class="p">,</span><span class="w"> </span><span class="n">value</span><span class="p">)</span><span class="w"> </span><span class="k">VALUES</span><span class="w"> </span><span class="p">(</span><span class="s1">&#39;scripturl&#39;</span><span class="p">,</span><span class="s1">&#39;/hlstats/hlstats.php&#39;</span><span class="p">);</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="n">quit</span><span class="w">
</span></span></span></code></pre></td></tr></table>
</div>
</div><p>Nun ist die Datenbankseitige Installation soweit fertig. Wenden wir uns der Installation des Webfrontends zu. Ich gehe davon aus, dass auf dem Server nichts anderes ausser HLStats und die Gameserver laufen, daher ist bei mir das Webserver-Root-Verzeichnis (<em>/var/www/</em>) gleich dem hlstatsverzeichnis:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> /home/hlstats/
</span></span><span class="line"><span class="cl">mv hlstats.php /var/www/
</span></span><span class="line"><span class="cl">mv hlstatsimg /var/www/
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun gibts natürlich wie immer ein kleines Rechte-Problem, welches sind einfach lösen lässt:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">useradd -s /bin/bash -p PASSWORD hlstats
</span></span></code></pre></td></tr></table>
</div>
</div><p>PASSWORD muss natürlich wieder ersetzt werden!
nun noch ein:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">chown -R hlstats:users /home/hlstats/
</span></span><span class="line"><span class="cl">chown -R hlstats:users /var/www/hlstats.php
</span></span><span class="line"><span class="cl">chown -R hlstats:users /home/hlstatsinc/
</span></span></code></pre></td></tr></table>
</div>
</div><p>und die Verzeichnisse gehören dem Nutzer.</p>
<p>Der Webserver leitet momentan beim Aufruf der IP noch direkt auf &ldquo;apache2-default&rdquo; weiter, was wir natürlich nicht wollen. Also müssen wir die Konfigurationsdatei ändern:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nano /etc/apache2/sites-enabled/000-default
</span></span></code></pre></td></tr></table>
</div>
</div><p>Suche:  <code>RedirectMatch ^/$ /apache2-default/</code>
Ersetze:  <code># RedirectMatch ^/$ /apache2-default/</code></p>
<p>Damit ist nun sichergestellt, dass bei Aufruf der IP direkt die Dateien aus <em>/var/www/</em> aufgerufen werden. Wenn man dies aber nun tut, dann stellt man fest, dass nur das Verzeichnis aufgelistet wird. Problem ist, dass Apache noch nicht weiss, dass er nun die hlstats.php aufrufen soll. Nun gibt es zwei Wege:</p>
<ol>
<li>Umleitung via HTML/PHP-Datei</li>
<li>Umleitung via .htaccess</li>
</ol>
<p>Ich habe mich für den ersten Weg entschieden und eine <em>index.php</em> erstellt, die folgenden Inhalt hat:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-php" data-lang="php"><span class="line"><span class="cl"><span class="o">&lt;?</span> <span class="nx">header</span><span class="p">(</span><span class="s2">&#34;location: hlstats.php&#34;</span><span class="p">);</span><span class="k">exit</span><span class="p">();</span> <span class="cp">?&gt;</span><span class="err">
</span></span></span></code></pre></td></tr></table>
</div>
</div><p>Funktioniert perfekt.</p>
<p>Nun muss man die Datenbankverbindungen einrichten. Dazu editiert man die beiden Dateien, die damit überhaupt zu tun haben:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nano /home/hlstats/hlstats.conf
</span></span></code></pre></td></tr></table>
</div>
</div><ul>
<li>Eintragen von Datenbankdaten</li>
<li>Eventuelle weitere Änderungen anhand der Kommentare durchführen</li>
</ul>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nano /var/www/hlstats.php
</span></span></code></pre></td></tr></table>
</div>
</div><ul>
<li>Eintragen von Datenbankdaten</li>
<li>INCLUDE_PATH anpassen, in diesem Fall <em>/home/hlstats/hlstatsinc</em></li>
<li>Eventuelle weitere Änderungen anhand der Kommentare durchführen</li>
</ul>
<p>Wenn dies alles erledigt ist, dann steht dem ersten Start des Servers nix mehr im Wege:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span><span class="lnt">4
</span><span class="lnt">5
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">screen -R hlstats
</span></span><span class="line"><span class="cl">su hlstats
</span></span><span class="line"><span class="cl"><span class="nb">cd</span> /home/hlstats/
</span></span><span class="line"><span class="cl">chmod <span class="m">700</span> -R *
</span></span><span class="line"><span class="cl"><span class="k">while</span> true<span class="p">;</span> <span class="k">do</span> nohup ./hlstats.pl<span class="p">;</span> sleep 5<span class="p">;</span> <span class="k">done</span> <span class="p">&amp;</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>Nun sollte der Perl-Server gestartet sein, mit &ldquo;<keyb>STRG</keyb>+ <keyb>a</keyb>&rdquo; &amp; anschließendem Druck von &ldquo;<keyb>D</keyb>&rdquo; bringen sie den Screen in den Hintergrund.</p>
<p>Sofern sie nix an der Port-Konfiguration geändert haben, sollte nun auf Port 27500 ein HLStats-Server lauschen.</p>
<p>PHP hat zunächst keine Ahnung davon, dass MySQL installiert ist, was wir nun schnell ändern:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">nano /etc/php4/apache2/php.ini
</span></span></code></pre></td></tr></table>
</div>
</div><p>Finde: <code>;extension=mysql.so</code>
Ersetze: <code>extension=mysql.so</code>
Anschließend ein <code>/etc/init.d/apache2 restart</code> und PHP weiss, dass MySQL installiert ist.</p>
<p><img src="/upload/2006/06/699-hlstats_001.webp" alt="Erste Ansicht" loading="lazy"></p>
<p>Nun rufen wir mal das Webfrontend auf. Nach Eingabe der ServerIP / einer darauf zeigenden Domain sollte sich in etwa das nebenstehende Bild ergeben. (Ich habe schon ein paar Server konfiguriert und schon die Templates ein wenig geändert.) Nun klicken wir in der Mitte unten auf Admin und loggen uns das erste mal ein. Die Daten hierzu sind:</p>
<ul>
<li>User: admin</li>
<li>Passwort: 123456</li>
</ul>
<p>Sobald sie sich eingeloggt haben, gehen sie auf <em>Admin Users</em> und fügen sie einen neuen Admin hinzu. Löschen sie nun den User &ldquo;admin&rdquo; (Erst wenn sie den neuen Admin hinzugefügt haben!) und loggen sie sich mit ihrem neuen Admin ein.</p>
<p>Nun können sie nach belieben konfigurieren, neue Server fügt man unter <em>Game Settings</em> unter dem jeweiligen Spiel hinzu, was relativ intuitiv gemacht ist.</p>
<p>Auf den Gameservern muss man in der autoexec.cfg folgendes hinzufügen:</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">log on
</span></span><span class="line"><span class="cl">logaddress 1.2.3.4 <span class="m">27500</span>
</span></span></code></pre></td></tr></table>
</div>
</div><p>wobei 1.2.3.4 für ihre Serveradresse steht. Anschließend den Gameserver restarten und mal drauf zocken. Wenn die Stats angezeigt werden ist alles korrekt gelaufen.</p>
]]></content:encoded>
    </item>
    <item>
      <title>HLStatsX auf einem &#34;blanken&#34; Server installieren</title>
      
      
      <link>https://wolf-u.li/hlstatsx-auf-einem-blanken-server-installieren/</link>
      <pubDate>Sat, 17 Jun 2006 11:37:44 +1700</pubDate>
      <guid>https://wolf-u.li/hlstatsx-auf-einem-blanken-server-installieren/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://wolf-u.li/upload/2006/06/700-hlstatsx1.gif&#34; alt=&#34;HLstatsX - Echtzeit Spielerstatistiken für Half-Life 2&#34; loading=&#34;lazy&#34;&gt;&lt;/p&gt;
&lt;p&gt;Heute blogge ich mal wieder kürzer ;)
Daher mal ein kurzer Beitrag zu &lt;link rel=dns-prefetch href=//www.hlxce.com /&gt; &lt;a href=&#34;http://www.hlxce.com/&#34;
    title=&#34;HLStatsX&#34; 
     target=&#34;_blank&#34; rel=&#34;nofollow noopener noreferrer&#34; &gt;
  HLStatsX&amp;nbsp;&lt;svg xmlns=&#34;http://www.w3.org/2000/svg&#34; class=&#34;icon&#34; aria-hidden=&#34;true&#34; focusable=&#34;false&#34; viewBox=&#34;0 -128 512 640&#34;&gt;
    &lt;path d=&#34;M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z&#34;/&gt;
  &lt;/svg&gt;&lt;/a&gt;, was ich vorgestern auch direkt nach &lt;a href=&#34;https://wolf-u.li/699/hlstats-auf-einem-blanken-server-installieren/&#34;
    title=&#34;HLstats&#34; 
   &gt;
  HLstats&lt;/a&gt; installiert hatte.&lt;/p&gt;</description>
      
         <content:encoded><![CDATA[<p><img src="/upload/2006/06/700-hlstatsx1.gif" alt="HLstatsX - Echtzeit Spielerstatistiken für Half-Life 2" loading="lazy"></p>
<p>Heute blogge ich mal wieder kürzer ;)
Daher mal ein kurzer Beitrag zu <link rel=dns-prefetch href=//www.hlxce.com /> <a href="http://www.hlxce.com/"
    title="HLStatsX" 
     target="_blank" rel="nofollow noopener noreferrer" >
  HLStatsX&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>, was ich vorgestern auch direkt nach <a href="/699/hlstats-auf-einem-blanken-server-installieren/"
    title="HLstats" 
   >
  HLstats</a> installiert hatte.</p>
<p>An sich funktioniert die Installation auch genau so (wie <a href="/699/hlstats-auf-einem-blanken-server-installieren/"
    title="hier" 
   >
  hier</a> auch schon beschrieben) wie die Installation von <a href="/699/hlstats-auf-einem-blanken-server-installieren/"
    title="HLStats" 
   >
  HLStats</a>.</p>
<p>Die Installation ist am besten <link rel=dns-prefetch href=//web.archive.org /> <a href="http://web.archive.org/web/20121208014431/http://wiki.hlxce.com/wiki/Install_Guide_%28Linux%29"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a> beschrieben. Eigentlich ist dem nichts hinzuzufügen :)</p>
<p>HLStatsX ist gegenüber HLStats stark erweitert worden, so kann man nun z.B. seine akutellen Stats in einer Forensignatur anzeigen lassen oder die Spieler auf einer GooGle-Map geographisch positionieren lassen. Leider ist HLStatsX nur noch zur Source-Engine kompatibel. Die genaue Auflistung der Features findet man <link rel=dns-prefetch href=//web.archive.org /> <a href="http://web.archive.org/web/20120829120623/http://wiki.hlxce.com:80/wiki/Main_Page"
    title="hier" 
     target="_blank" rel="nofollow noopener noreferrer" >
  hier&nbsp;<svg xmlns="http://www.w3.org/2000/svg" class="icon" aria-hidden="true" focusable="false" viewBox="0 -128 512 640">
    <path d="M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z"/>
  </svg></a>.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
