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 Minuten

Unser 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.

Wenn es hierbei doch zu einem Fehler kommt, übernehmen wir die restliche Installation bei Miet-/Kaufversionen kostenlos. Kontaktieren Sie uns bitte via Email.
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 Minuten

Das 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.

Falls Sie Docker noch nicht auf ihrem Rootserver installiert haben, so tippen Sie bitte nachfolgende Befehle ab. Ansonsten kann die Installation von Docker übersprungen werden.
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 Minuten

Zuerst 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.

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.

Wenn die Datenbank nicht eingerichtet werden konnte, dann öffnen Sie bitte die config.php und tragen Sie die Datenbank Zugangsdaten ein, danach finden Sie in /install eine database.sql die Sie zum Beispiel per PHPmyAdmin einspielen können.

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

Diesen Abschnitt müssen Sie nur befolgen, wenn Sie den Lizenzschlüssel für ein Gameserver, Streamserver, Voiceserver oder Rootserver Webinterface besitzen. Bei dem CMS, Shop und Rechnungssystem können Sie diesen Schritt überspringen, da diese keinen SSH Zugriff auf andere Server benötigen.

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
Sie müssen das richtige php-dev Paket für die verwendete PHP Version installieren. Es bringt nichts, wenn Sie php7-dev installieren aber Ihr Apache PHP 5 verwendet.
SuSE
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
Für Debian, RedHat und Ubuntu wäre die Installation von LibSSH2 und PECL SSH2 abgeschlossen, da hier LibSSH2 für PHP als Packet vorhanden ist.
Fedora und Centos
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
Wenn Sie PHP 5 verwenden so laden Sie anstelle der ssh2-1.2.tgz die ssh2-0.13.tgz runter.

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

Diesen Abschnitt müssen Sie nur befolgen, wenn Sie den Lizenzschlüssel für ein Gameserver Webinterface besitzen.

Damit die online/offline Anzeige für die Spiele im Webinterface funktioniert benötigen Sie noch Qstat auf dem Webserver.

Debian und Ubunut
apt-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 A

Geben 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 B

Geben 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 C

Sollte 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.