Battlefield 2 Ranking und Stats (bf2sclone)
Überblick
In dieser Anleitung wird die Installation eines vollständigen Battlefield 2 Ranking- und Statistik-Systems beschrieben.
Zum Einsatz kommt der bf2sclone als Ersatz für die ursprünglichen GameSpy-Statistiken, in Kombination mit einer ASP-Weboberfläche zur Verwaltung und Kontrolle.
Die Anleitung richtet sich an Serverbetreiber, die einen eigenen Battlefield 2 Server betreiben und das originale Rang- und Punktesystem weiterhin nutzen möchten.
Alle beschriebenen Schritte wurden auf einem Linux-Server durchgeführt und setzen grundlegende Kenntnisse im Umgang mit der Kommandozeile voraus.
Die einzelnen Abschnitte bauen logisch aufeinander auf und sollten in der angegebenen Reihenfolge abgearbeitet werden.
Alle Schritte sind so aufgebaut, dass sie nacheinander ausgeführt werden können. Hinweise wie USERNAME muss in allen Befehlen angepasst werden. sind unbedingt zu beachten.
Voraussetzungen
Für die Installation des Battlefield 2 Ranking- und Statistik-Systems werden folgende Voraussetzungen benötigt.
- Ein laufender Linux-Server (z.B. Ubuntu)
- Ein installierter und funktionsfähiger Apache Webserver
- PHP 5.6 inklusive phpMyAdmin 4.7.4
- MySQL 5.6
- Ein installierter Battlefield 2 Dedicated Server
Zusätzlich wird Root- oder sudo-Zugriff auf den Server benötigt, da mehrere Systemkomponenten installiert und konfiguriert werden.
Für die Administration empfiehlt sich ein FTP-Client (zum Beispiel WinSCP unter Windows), um Dateien bequem zwischen lokalem Rechner und Server zu übertragen.
Alle folgenden Schritte setzen voraus, dass die genannten Komponenten korrekt installiert sind und ordnungsgemäß funktionieren.
Dateien entpacken und verschieben
Nach dem Entpacken der Archivdatei müssen die Ordner ASP und bf2sclone in das Webverzeichnis verschoben werden, damit sie über den Apache Webserver erreichbar sind.
Der Zielpfad ist das Webverzeichnis des jeweiligen Benutzers. Der Platzhalter USERNAME muss an dieser Stelle angepasst werden.
sudo mv ASP bf2sclone /home/USERNAME/www
Nach dem Verschieben befinden sich beide Ordner im Webverzeichnis und können im weiteren Verlauf konfiguriert werden.
Hosts-Datei anpassen
Damit Battlefield 2 die Statistiken korrekt an den bf2sclone-Server überträgt, muss ein Eintrag in der Hosts-Datei des Servers vorgenommen werden.
Öffnet dazu die Hosts-Datei mit einem Editor:
sudo nano /etc/hosts
Füge am Ende der Datei den folgenden Eintrag hinzu.
Ersetze dabei SERVER_IP durch die öffentliche IPv4-Adresse
deines Servers.
Befindet sich der Server bei einem Hoster (z. B. Strato), verwende die vom Hoster vergebene Server-IP.
Läuft der Server lokal im eigenen Netzwerk,
verwende die interne IPv4-Adresse des Servers
(z. B. 192.168.x.x).
Wird hier eine falsche IP-Adresse eingetragen, können keine Statistiken erfasst werden.
SERVER_IP bf2web.gamespy.com
Speichert die Datei und schließt den Editor.
Es wurde beobachtet, dass sich die Hosts-Datei nach Systemänderungen oder Neustarts automatisch zurücksetzt. Um dies zu verhindern, kann die Datei schreibgeschützt werden:
sudo chattr +i /etc/hosts
Soll die Hosts-Datei später erneut bearbeitet werden, kann der Schreibschutz wie folgt entfernt werden:
sudo chattr -i /etc/hosts
Nach dem Setzen des Hosts-Eintrags ist der Server in der Lage, Statistikdaten korrekt an den bf2sclone-Dienst zu senden.
Python-Dateien für BF2 vorbereiten
Für die Verarbeitung der Statistikdaten müssen die mitgelieferten Python-Dateien in das Battlefield 2 Serververzeichnis übernommen werden. Dabei ersetzen wir vorhandene Dateien.
Zunächst entfernen wir den bestehenden Python-Ordner aus dem Battlefield 2 Verzeichnis. Der Platzhalter USERNAME muss entsprechend angepasst werden.
sudo rm -r /home/USERNAME/bf2/python
Anschließend verschieben wir den neuen Python-Ordner an die richtige Stelle:
sudo mv python /home/USERNAME/bf2
Nach diesem Schritt verwendet der Battlefield 2 Server die neuen Python-Skripte zur Verarbeitung der Ranking- und Statistikdaten.
MySQL-Datenbank einrichten
Im nächsten Schritt wird die Datenbank für das Battlefield 2 Ranking- und Statistik-System angelegt.
Öffnet dazu im Webbrowser phpMyAdmin über eine der folgenden Adressen:
https://SERVER_IP/phpMyAdmin-4.7.4/index.php
oder
https://domainname.de/phpMyAdmin-4.7.4/index.php
Meldet euch mit den Zugangsdaten des MySQL-Root-Benutzers an, die während der MySQL-Installation vergeben wurden.
Auf der linken Seite klickt ihr auf „Neu“, gebt den Namen der Datenbank ein und bestätigt mit Enter:
bf2stats
Nach dem Anlegen der Datenbank wechselt ihr in den Reiter „Rechte“ und klickt auf „Benutzer hinzufügen“.
Legt den Benutzer mit folgenden Angaben an:
- Benutzername:
bf2statslogger - Hostname:
localhost - Passwort: frei wählbar
Aktiviert für diesen Benutzer alle verfügbaren Rechte und bestätigt die Eingaben.
Sollten die Rechte nicht sofort korrekt gesetzt sein, scrollt nach unten und setzt die Haken bei den Grant-Rechten erneut.
Nach erfolgreicher Einrichtung könnt ihr euch aus phpMyAdmin abmelden. Die Datenbank wird in den nächsten Schritten von ASP und bf2sclone verwendet.
ASP konfigurieren
Im nächsten Schritt wird die ASP-Weboberfläche konfiguriert, welche für die Verwaltung und Initialisierung der Battlefield 2 Statistiken zuständig ist.
Im Array admin_hosts müssen die IPv4-Adressen eingetragen werden,
von denen aus der Zugriff auf das ASP-Interface erlaubt ist.
SERVER_IPV4 steht für die IPv4-Adresse des Servers selbst.
WINDOWS_PC_IPV4 steht für die IPv4-Adresse des Rechners,
von dem aus du das ASP-Interface im Browser aufrufst.
Nur die hier eingetragenen IP-Adressen erhalten Zugriff auf das ASP-Interface.
Wechselt dazu in das Webverzeichnis:
USERNAME muss hier angepasst werden.
cd /home/USERNAME/www
Öffnet anschließend die Konfigurationsdatei der ASP-Anwendung:
sudo nano ASP/_config.php
Wird dein Battlefield-2-Server extern bei einem Hoster (z. B. Strato) betrieben, musst du für den Zugriff auf das ASP-Interface die öffentliche IPv4-Adresse deines Windows-Rechners.
Diese kannst du über einen Online-Dienst (z. B. wieistmeineip) ermitteln.
Läuft der Server hingegen lokal im eigenen Netzwerk,
verwende die interne IPv4-Adresse
deines Windows-Rechners
(z. B. 192.168.x.x).
Welche IP-Adresse benötigt wird, hängt davon ab, ob der Server extern oder lokal betrieben wird.
SERVER_IPV4 und WINDOWS_PC_IPV4 müssen korrekt eingetragen werden.
In der folgenden Konfigurationsdatei werden die Zugangsdaten zur Datenbank sowie die erlaubten IP-Adressen für den Zugriff auf das ASP-Interface definiert.
$db_expected_ver = '1.4.6';
$db_host = 'localhost'; // nur ändern, wenn der Server lokal läuft (127.0.0.1)
$db_name = 'bf2stats';
$db_user = 'bf2statslogger';
$db_pass = '270687';
$admin_user = 'admin';
$admin_pass = 'password';
$admin_hosts = array(
'127.0.0.1',
'localhost',
'192.168.2.194' // hier die öffentliche IPv4-Adresse deines Windows-PCs eintragen
);
Der Eintrag $db_host darf nur angepasst werden, wenn sich die
Datenbank auf demselben Server befindet.
Im Array admin_hosts müssen alle IPv4-Adressen eingetragen werden,
von denen aus der Zugriff auf das ASP-Interface erlaubt sein soll.
Nur die hier eingetragenen IP-Adressen erhalten Zugriff auf das ASP-Interface.
In dieselbe Konfigurationsdatei wird nun das Passwort des zuvor angelegten MySQL-Benutzers eingetragen:
$db_pass = 'PASSWORT';
Speichert die Datei und schließt den Editor.
Damit ist die grundlegende Konfiguration der ASP-Anwendung abgeschlossen und sie kann im nächsten Schritt initialisiert werden.
bf2sclone konfigurieren
In diesem Abschnitt wird bf2sclone so konfiguriert, dass es auf die zuvor angelegte MySQL-Datenbank zugreifen kann und die vom Battlefield& 2 Server gesendeten Statistikdaten korrekt verarbeitet.
Wechselt in das bf2sclone-Verzeichnis:
USERNAME muss angepasst werden
cd /home/USERNAME/www/bf2sclone
Öffnet die Konfigurationsdatei von bf2sclone:
sudo nano config.inc.php
Passt in der Datei die folgenden Einträge an.
Ersetzt den Datenbank-Host nur wenn server lokal ist localhost durch
127.0.0.1:
$DBIP = '127.0.0.1';
Tragt anschließend das Passwort des MySQL-Benutzers
bf2statslogger ein:
$DBPASSWORD = 'PASSWORT';
Speichert die Datei und schließt den Editor.
Damit ist bf2sclone korrekt mit der MySQL-Datenbank verbunden. Die eigentliche Datenübertragung erfolgt automatisch, sobald der Battlefield 2 Server läuft.
Installation testen
In diesem Abschnitt prüfen wir, ob alle Komponenten des Battlefield 2 Ranking- und Statistik-Systems korrekt zusammenarbeiten.
Öffnet im Webbrowser die bf2sclone-Statistikseite:
https://SERVER_IP/bf2sclone
oder
https://domainname.de/bf2sclone
Wird die Seite ohne Fehlermeldungen geladen, ist bf2sclone korrekt mit der Datenbank verbunden.
Öffnet anschließend die ASP-Weboberfläche:
https://SERVER_IP/ASP
oder
https://domainname.de/ASP
Meldet euch mit dem Admin-Benutzer an und prüft, ob die Oberfläche fehlerfrei geladen wird.
Klickt im ASP-Menü auf test config, bestätigt den Vorgang und kontrolliert, dass der Test ohne Fehlermeldungen durchläuft.
Startet nun euren Battlefield 2 Server, verbindet euch mit dem Spiel und sammelt erste Punkte.
Beendet das Spiel und ladet anschließend erneut die bf2sclone-Seite im Webbrowser.
Werden Spieler, Punkte oder Ränge angezeigt, funktioniert die komplette Installation ordnungsgemäß.
Fehlerbehebung & Rechte
In diesem Abschnitt werden typische Fehlerquellen beschrieben, die nach der Installation auftreten können, sowie deren Lösungen.
Sollten in der ASP-Oberfläche oder in bf2sclone keine Daten angezeigt werden, liegt dies in den meisten Fällen an fehlenden oder falsch gesetzten Dateirechten.
Setzt zunächst die notwendigen Rechte für die ASP-Verzeichnisse:
sudo chmod 755 -R /home/USERNAME/www/ASP /home/USERNAME/www/ASP/_backups /home/USERNAME/www/ASP/logs
Sollten weiterhin Probleme auftreten, setzt zusätzlich die Rechte für bf2sclone:
sudo chmod 755 -R /home/USERNAME/www/bf2sclone /home/USERNAME/www/bf2sclone/cache /home/USERNAME/www/bf2sclone/template
Falls nach Änderungen weiterhin Fehler auftreten, überprüft folgende Punkte:
- läuft der MySQL-Dienst
- existiert die Datenbank
bf2stats - hat der Benutzer
bf2statsloggeralle Rechte - ist die Server-IP korrekt in der ASP-Konfiguration eingetragen
- ist der Hosts-Eintrag vorhanden
Nach Änderungen an Konfigurationsdateien empfiehlt es sich, den Apache-Webserver neu zu starten:
sudo systemctl restart apache2
In den meisten Fällen lassen sich Probleme durch korrekt gesetzte Dateirechte und eine erneute Überprüfung der Konfiguration beheben.
Abschluss & Zugriff
Die Installation des Battlefield 2 Ranking- und Statistik-Systems ist damit abgeschlossen.
Wenn alle vorherigen Schritte erfolgreich durchgeführt wurden, stehen folgende Komponenten zur Verfügung:
- Battlefield 2 Server mit aktivem Ranking und Statistiken
- ASP-Weboberfläche zur Verwaltung und Kontrolle
- bf2sclone-Webseite zur Anzeige der Spielerstatistiken
Die Statistik-Seite ist über den Webbrowser erreichbar unter:
https://domainname.de/bf2sclone
Die ASP-Administrationsoberfläche ist erreichbar unter:
https://domainname.de/ASP
Ab diesem Punkt können Spieler Punkte sammeln, Ränge aufsteigen und ihre Statistiken einsehen.
Optionale Erweiterungen wie HTTPS, Backups oder weitere Serveranpassungen können nun umgesetzt werden.
Seitenanfang