Webserver Installation
Vorwort
Die Installation der TekBASE Software ist einfacher, als es sich angesichts des Umfangs dieser Anleitung vermuten lässt. Wir gehen nachfolgend auf alle Bereiche ein, jedoch arbeitet unser Installationsskript diese auch automatisch ab. Sollten Sie Probleme haben, so können Sie unser Forum oder uns auf Discord befragen. Selbstverständlich steht Ihnen der Support auch per Email und Ticketsystem zur Verfügung. Zusätzlich kann die Installation komplett von uns übernommen werden.
2. Automatisches Installationsskript
Zeitaufwand: 1-5 MinutenUnser Installationsskript kann nicht nur den kompletten Webserver einrichten, sondern installiert auf Wunsch auch gleich Teamspeak 3 sowie die Rootserver Skripte, welche es ermöglichen diesen Rootserver für Gameserver, Streamserver, Voiceserver und Co zu nutzen. Dabei prüft das Installationsskript ob Apache, MySQL/MariaDB, PHP, PECL SSH2, LibSSH2, Proftp und QStat vorhanden sind und installiert dies bei Bedarf nach. Plesk und andere Verwaltungstools stellen kein Problem da und das Installationsskript nimmt die notwendigen Einstellungen vor. Nach Abschluss der Installation benötigen Sie lediglich noch die Freischaltung.
cd /home
wget http://teklab.s3.amazonaws.com/tekbase_newinst.tar
tar -xf tekbase_newinst.tar
./install.sh
In /home befinden sich einigen Dateien, welche die Zugangsdaten enthalten. Notieren Sie sich diese und löschen Sie dann die Dateien.
Unter Umständen kann es vorkommen, dass TekBASE nicht über den angezeigten Link im Browser aufrufbar ist, wenn Sie vorher schon andere Verwaltungstools verwendet haben. Meist reicht es, wenn Sie TekBASE in den aktuellen www Ordner verschieben. Zusätzlich setzen Sie bitte die Rechte des tekbase Ordners auf den FTP User der Domain. In unserem Beispiel gehen wir davon aus, dass wir TekBASE in ein Domain Verzeichnis kopiert wurde, wie es von Plesk verwendet wird.
cd /var/www/vhosts/domainname/httpdocs
chown -R ftpuser_der_domain:psacln tekbase
userdel tekftpuser
Fertig. Die erstmalige Freischaltung erfolgt via Email und dauert maximal 24 Stunden. Während der Support Zeiten jedoch deutlich kürzer. Danach kann die Lizenz im Kundenbereich selbst verwaltet werden. Senden Sie uns dazu bitten den Link zur admin.php oder die IP bzw. Domain des Servers per Email. Das war die automatische Installation nun kommen wir zur manuellen Installation.
1. Docker Image - Beta
Zeitaufwand: 1-5 MinutenDas neue TekBASE Docker Image enthält bereits Apache, MariaDB und PHP mit allen notwendigen Anpassungen wie SSH2, Geoip und Ioncube. Mit zwei drei Zeilen können Sie den Webserver für TekBASE aufsetzen und in Betrieb nehmen.
apt-get update
apt-get install ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
apt-get install docker-ce docker-ce-cli containerd.io
curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
Nun installieren Sie das TekBASE Docker Image und starten Sie es im Anschluss. Die Port und Pfad Angaben können geändert werden wie auch die Angaben der Verzeichnisse für die Auslagerung der Daten auf das Host System. Die TekBASE Installation liegt dann unter /var/tekbase/www für Designanpassungen.
docker pull teklabde/tekbase:8.6
docker run -d -p 9080:80 -p 9443:443 -v /var/tekbase/www:/var/www/html:rw -v /var/tekbase/database:/var/lib/mysql:rw -v /var/tekbase/apache2:/etc/apache2:rw teklabde/tekbase:8.6
Sollten Sie Rootserver und darauf Gameserver etc. verwalten wollen, müssen Sie auf diesen lediglich noch das automatische Installationsskript ausführen und dort die 8 wahlweise 9 wählen; siehe "1. Automatisches Installationsskript". Danach ist die Installation erleidgt.
Die erstmalige Freischaltung erfolgt via Email und dauert maximal 24 Stunden. Während der Support Zeiten jedoch deutlich kürzer. Danach kann die Lizenz im Kundenbereich selbst verwaltet werden. Senden Sie uns dazu bitten den Link zur admin.php oder die IP bzw. Domain des Servers per Email. Das war die automatische Installation nun kommen wir zur manuellen Installation.
3. Manuelle Installation
Zeitaufwand: 15-30 MinutenZuerst legen Sie auf Ihrem Webserver per Plesk, Confixx, IspCP oder einer anderen Verwaltungsoberflächen, einen Account mit FTP Zugriff und eine MySQL Datenbank an. In Plesk stellen Sie bitte für die jeweilige Domain unter den PHP Einstellungen die Version PHP 7.0 Vendor mit FPM ein. Nachdem dies geschehen ist und Sie sich die Zugangsdaten aufgeschrieben haben, können Sie mit dem eigentlichen Installationsvorgang beginnen.
2.1 Upload der TekBASE Version
Zunächste muss die aktuelle TekBASE Version heruntergeladen und entpackt werden. Sie finden den Download-Link im Kundenbereich bzw. können diesen auch per Email mit Angabe der Bestellnummer bei uns erfragen.
Nun kopieren Sie den Inhalt per FTP, WinSCP oder via Putty auf Ihren Webserver. Bei Plesk sollte TekBASE in das httpdocs Verzeichnis der jeweiligen Domain kopiert werden. Danach setzen Sie noch die Datei- und Verzeichnisrechte.
- /cache - chmod 0777
- /pdf - chmod 0777
- /ressources - chmod 0777
- /ressources/downloads - chmod 0777
- /ressources/uploads - chmod 0777
- /tmp - chmod 0777
- /config.php - chmod 0777
2.2 Ioncube installieren
Prüfen Sie, ob auf Ihrem Webserver schon ioncube installiert ist. Dazu rufen Sie im Browser die install.php auf. Lautet Ihre Domain zum Beispiel ihre_domain.de und das Verzeichnis in welchem TekBASE liegt tekbase, sieht der Link wie folgt aus:
- http://ihre_domain.de/tekbase/install/install.php
Sollte dort Ioncube Fehlermeldung auftauchen, so müssen Sie die aktuellste Version des Ioncube Loaders downloaden. Wenn jedoch das Installationsmenü von TekBASE angezeigt wird, so ist die aktuelle Ioncube Version schon aktiviert und Sie können dieses Kapitel getrost überspringen.
- ioncube_x86 - 32Bit Linux Version
- ioncube_x86-64 - 64Bit Linux Version
Entpackten Sie die jeweilige Ioncube Version und kopieren Sie das ioncube Verzeichnis nach /usr/local. Danach führen Sie folgende Befehle aus um eine 00-ioncube.ini zu erstellen und den Apache Server anschließen neuzustarten.
echo "zend_extension=/usr/local/ioncube/ioncube_loader_lin_7.3.so" > /etc/php/7.3/conf.d/00-ioncube.ini
service apache2 restart
Hier noch das Erstellen der Ini Datei für die php-fpm Variante:
echo "zend_extension=ioncube_loader_7.3.so" > /etc/php/7.3/fpm/conf.d/00-ioncube.ini
/etc/init.d/php7.3-fpm restart
2.3 PHP GeoIP installieren
Installieren Sie jetzt GeoIP für PHP. Dies geschieht ganz einfach über den jeweiligen Paketmanger. Hier ein Beispiel für PHP7 auf einem Debian / Ubuntu System.
apt-get install php7-geoip
2.4 Datenbank einrichten
Rufen Sie im Browser die install.php auf, damit Sie TekBASE einrichten können.
- http://ihre_domain.de/tekbase/install/install.php
Falls noch nicht geschehen, bitte die angegebenen Datei- und Verzeichnissrechte setzen. Ioncube sollte aktiv sein und die Installation für das PHP SSH2 Modul ist nicht zwingend erforderlich. Klicken Sie auf weiter und geben Sie die Zugangsdaten für die Datenbank ein. Als Sitekey können Sie hintereinander irgendwelche Zahlen und Buchstaben eintragen. Der Sitekey dient dazu verschiedene Bereiche abzusichern. Bestätigen Sie anschließend die Eingaben, die Datenbank nun eingerichtet. Klicken Sie danach auf "weiter" um die Installation abzuschließen.
Setzen Sie nun die Dateireichte der config.php wieder auf 0644 und löschen das install Verzeichnis. Rufen Sie dann im Browser anstelle der install/install.php die admin.php auf. Sie sollten eine "Lizenzkey error" Meldung sehen. Kopieren Sie den Browser Link und senden diesen an die Email Adresse aus der Bestellbestätigung von TekLab. Wenn bereits ein Kundenaccount auf teklab.de vorhanden ist, so können Sie unter dem Menüpunkt "Lizenzen" die Lizenz selbst aktivieren.
2.5 PECL SSH2 installieren
Installieren Sie als erstes folgenden Programme und Libs, damit Fehlermeldungen während der eigentlichen Installation vermieden werden.
- autoconf
- automake
- g++ (oder gcc)
- libssl-dev (oder auch libopenssl-dev geannt)
- m4
- make
- php7-dev oder je nachdem welche PHP Version Apache nutzt
- open-ssl
- zlib-dev
zypper update
zypper install autoconf automake gcc libopenssl-devel m4 make openssl php7-devel
Debian, RedHat und Ubunut
apt-get update
apt-get install autoconf automake gcc libssl-dev m4 make openssl php7-dev php-ssh2
yum update
yum install autoconf automake gcc libssl-devel m4 make openssl php-devel
LibSSH2
Jetzt brauchen Sie bei SuSE, Fedora und Centos nur noch folgende Befehle ausführen um LibSSH2 zu installieren.
cd /home
wget https://www.libssh2.org/download/libssh2-1.9.0.tar.gz
tar -xzf libssh2-1.9.0.tar.gz
cd libssh2-1.9.0
./configure --prefix=/usr --with-openssl=/usr && make install
Danach sollte LibSSH2 installiert sein. Bei Fehlermeldungen schauen Sie bitte auf die letzten Zeilen. Dort steht oft schon die Lösung.
comp.c:39:18: zlib.h: No such file or directory
make[1]: *** [comp.o] Error 1
make[1]: Leaving directory `/home/libssh2-1.2.1/src
make: *** [install] Error 1
Hier sehen Sie, dass das zlib-dev bzw. zlib-devel Paket nicht installiert wurde. Wenn Sie die Installationsanleitung befolgt hätten, wäre dieser Fehler nicht passiert. Sie installieren also einfach, wie unter dem Abschnitt SuSE, Fedora beschrieben, das zlib-dev bzw. zlib-devel Paket nach.
PECL SSH2
Nachdem LibSSH2 erfolgreich installiert wurde, müssen Sie nur noch die SSH2 Funktion für PHP bereitstellen und dies geschieht mit der PECL SSH2 Extension. Gehen Sie für PHP 7 dabei wie folgt vor:
cd /home
wget https://pecl.php.net/get/ssh2-1.2.tgz
tar -xzf ssh2-1.2.tgz
cd ssh2-1.2
phpize && ./configure --with-ssh2 && make install
Falls der Befehl nicht funktioniert, nehmen Sie einfach diesen:
phpize && ./configure && make install
Sollten Sie keine Fehlermeldungen erhalten, war alles richtig. Normalerweise wird mit der make install Anweisung die erstellte ssh2.so direkt in das PHP Extension Verzeichnis kopiert. Sie können dies aber sicherheitshalber nachprüfen. Der Pfad zu den Extensions wird Ihnen am Ende der Installation angezeigt und lautet in der Regel /usr/lib/php7.3/xxxxx/ssh2.so. Als nächstes müssen Sie PHP sagen, dass es die ssh2.so als Modul laden soll. Dazu müssen Sie eine ssh2.ini in dem /etc/php7/conf.d Verzeichnis bzw. in dem von PHP verwendeten Config Verzeichnis erstellen. Geben Sie dazu folgendes an:
cd /etc/php7/conf.d
echo "extension=ssh2.so" > ssh2.ini
Danach starten wir unseren Apache neu.
service apache2 restart
Jetzt sollte SSH2 als PHP Modul geladen werden und funktionieren. Wenn Sie den Adminbereich vom Webinterface aufrufen, können Sie unter Widgets ein Status Widget anlegen. Dies zeigt Ihnen den Status von SSH2 an. Falls SSH2 rot ist, müssten Sie noch einmal überprüfen, ob Sie Apache neugestartet haben und die ssh2.so wirklich im angegebenen extensions_dir liegt. Vielleicht sollten Sie die LibSSH2 und PECL SSH2 Anleitungen noch einmal durchführen um etwaige Fehler zu beseitigen. Wichtig ist, dass Sie das richtige php-dev bzw. php-devel Paket für die Verwendete PHP Version installieren.
2.6 Qstat installieren
Damit die online/offline Anzeige für die Spiele im Webinterface funktioniert benötigen Sie noch Qstat auf dem Webserver.
Debian und Ubunutapt-get install qstat
SuSE, RedHat, Fedora, Centos
cd /home
wget http://teklab.de/downloads/qstat-2.11.tar.gz
tar –xzf qstat-2.11.tar.gz
cd qstat-2.11
./configure && make all install
cp qstat /usr/bin
Sollten Sie Qstat schon vorab einmal per apt-get installiert haben, so müssten Sie nur folgenden Befehl ausführen anstelle der obigen Installation.
cd /usr/bin
ln -s quakestat qstat
Damit unsere Abfrage dann später auch im Webinterface funktioniert müssen Sie Qstat verfügbar machen.
Confixx
Variante AGeben Sie als Administrator den zuständigen Domainreseller ( resx ) folgende Rechte:
- Shell - ja
- Scp/SFTP - ja
Anschließend geben Sie als Domainreseller ( resx ) dem Websitebenutzer das Recht für den Shellzugriff.
Variante BGeben Sie als Administrator den zuständigen Domainreseller ( resx ) folgende Rechte:
- PHP safe_mode - ja
Anschließend deaktivieren Sie als Domainreseller ( resx ) für den Websitebenutzer safe_mode.
Variante CSollte Sie den safe_mod nicht deaktivieren wollen, kann man als Administrator bei httpd-Spezial des Kunden einfach ein safe_mode_exec_dir setzen. Dazu Wählen Sie den Benutzer und klicken auf den "Erweiterten Modus".
- php_admin_value safe_mode_exec_dir /usr/bin
IspCP
Sie müssen bei IspCP einfach wie bei Confixx den safe_mode deaktivieren. Dazu verwenden Sie die jeweilige php.ini:
- /var/www/fcgi/ihredomain.de/php5/php5.ini
Sollten Sie den safe_mode nicht deaktivieren wollen, können Sie den Befehl in der php.ini wie folgt ändern:
- safe_mode_exec_dir = /usr/bin
2.7 IPv6 und IPv4 nutzen
Sie haben eine IPv6 und eine IPv4 Webserver-IP und möchten das TekBASE Webinterface für beide IP-Adressen freischalten, dann müssen Sie in der config.php noch folgendes hinzufügen:
$ipv6 = 1;
2.8 Login
Wenn Sie nun die admin.php aufrufen, sehen Sie einen "Lizenzkey Error". Ändern Sie im Kundenbereich unter "Lizenzen" Ihre Domain oder senden Sie eine Email an uns mit der IP und Domain. Wir erstellen Ihnen dann einen neuen Lizenzschlüssel. Die Logindaten für den Adminbereich lautet wie folgt.
- Login: admin
- Passwort: 1q2w3e4r5t
Den Kundenbereich Ihrer eigenen TekBASE Installation rufen Sie über members.php auf.