Installation mit Webserver

Traditionell wird die testWare auf LAMP/LEMP/LEPP Webserver installiert.

Die Abkürzungen stehen für Linux Apache MySQL PHP, Linux Nginx (ausgesprochen engine-x) MariaDB und PHP bzw. Linux Nginx (ausgesprochen engine-x) PostgreSQL und PHP

Voraussetzungen

Für eine erfolgreiche Installation müssen folgende Voraussetzungen erfüllt sein:

  • Linux basiertes System (Ubuntu oder Debian)
  • Apache Server (oder nginx reverse proxy)
  • php min. Version 7.4
  • SQL Datenbankserver PostgreSQL oder MariaDB / mySQL
  • Paketmanager für php Composer installiert
  • Paketmanager für JavaScript / Node.js npm installiert
  • Die Versionsverwaltung git

Die Installation und Konfiguration der entsprechenden Pakete würde den Rahmen dieser Dokumentation sprengen. Im Internet sind aber zahlreiche Anleitungen zu finden. Als Beispiel sei hier die auf die hervorragende Beschreibung auf Digitalocean verwiesen.

Schritt 1: testWare Repository laden

Im Stammverzeichnis des Servers, zum Beispiel /var/www wird ein neues Verzeichnis angelegt.

mkdir testware

In diesem Verzeichnis wird die aktuelle Version der testWare mit git geladen.

/var/www: cd testware
/var/www/testware: git clone https://github.com/daniel-koertvelyessy/testware.git

Nachdem die Dateien geladen werden, müssen die abhängigen Pakete installiert werden. Das erreicht man über die Befehle:

npm install
composer install

Nachdem dies erfolgt, ist wird eine Datei .env erstellt. Wichtig ist der Punkt vor env.

vim .env
Es kann natürlich jeder anderer Texteditor wie nano, vi oder emacs verwendet werden.

In diese leere Datei werden folgende Zeilen eingeführt:

APP_URL="https://ihre-domain-der-testware"
APP_PORT=443
APP_ENV=production
APP_DEBUG=false

Damit es zu keinen Berechtigungsproblemen kommt, müssen die Daten dem Benutzer www-data zugeordnet werden. Dies erfolgt über die Befehle:

chown -R www-data:www-data /var/www/html \
&& find /var/www/html/ -type f -exec chmod 664 {} \; \
&& find /var/www/html/ -type d -exec chmod 775 {} \; \
&& chgrp -R www-data /var/www/html/storage /var/www/html/bootstrap/cache \
&& chmod -R ug+rwx /var/www/html/storage /var/www/html/bootstrap/cache

Dieser Vorgang kann abhängig vom System ein paar Minuten dauern. Nach Abschluss ist die testWare von der Codeseite aus fertig. Nun muss die Datenbank eingerichtet werden.


Schritt 2: Datenbank einrichten

Durch Einfügen der folgenden Zeilen in die .env Datei erhält die testWare die Möglichkeit, mit der Datenbank zu kommunizieren.

DB_CONNECTION=pgsql
DB_HOST= [IP-adress-of-your-databse-server]
DB_PORT=5432
DB_DATABASE=[testware]
DB_USERNAME=[root]
DB_PASSWORD=[passworrd]

Im Beispiel oben ist für eine PostgreSQL Datenbank eingetragen. Soll eine MySQL / MariaDB verwendet werden, muss für den Schlüssel DB_CONNECTION als Wert mysql und als Port 3306 vorgesehen. Bitte lesen Sie Dokumentation Ihrer Datenbank bezüglich der verwendeten Ports.

Beachten Sie, dass der Benutzer und das Passwort exakt übereinstimmen. Auch wird von der Verwendung des root als Benutzer aus Sicherheitsgründen dringend abgeraten.

Schritt 3: Ausführen des testWare Installers

In der Konsole

Im Stammverzeichnis wird folgender Befehl ausgeführt.

php artisan testware:install

Mit diesem Programm richten Sie unter anderem den Systemadministrator ein und legen die Tabellen in der Datenbank an.

Webinstaller

Ist das Programm abgeschlossen, wird die Einrichtung im Webbrowser fortgeführt. Dazu wird er Link domain.tld/installer aufgerufen, wobei domain.tld mit der echten Adresse des Webservers ersetzt werden sollte.


Optionaler Schritt 4: E-Mail Server einrichten

Die testWare kann Benachrichtigungen über E-Mail versenden. Dazu müssen folgende Zeilen in die .env eingetragen werden:

MAIL_MAILER=smtp
MAIL_HOST=[smpt.provider-address.com]
MAIL_PORT=[587]
MAIL_USERNAME=[username]
MAIL_PASSWORD=[password]
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=[yourmail@address.com]
MAIL_FROM_NAME="${APP_NAME}"
Wenn der Versand per E-Mail nicht gewünscht ist bitte statt der Zeile MAIL_MAILER=smtp statt dem Wert smtp den Wert log verwenden.

Beispiel .env

# testWare Umgebung
APP_URL="https://db.domain.tld"
APP_PORT=443
APP_ENV=production
APP_DEBUG=false

# Datenbank verknüpfen
DB_CONNECTION=pgsql
DB_HOST= db.domain.tld
DB_PORT=5432
DB_DATABASE="testware"
DB_USERNAME="dbTestWareUser"
DB_PASSWORD="dasSicherstePassWortDerGanzenWelt"

# testWare soll keine E-Mail verschicken
MAIL_MAILER=log
# MAIL_HOST=smtp.mailtrap.io
# MAIL_PORT=2525
# MAIL_USERNAME=mailtrapUseName
# MAIL_PASSWORD=mailtrapPassWOrd
# MAIL_ENCRYPTION=tls
# MAIL_FROM_ADDRESS="your.email@domain.tld"
# MAIL_FROM_NAME="NAME"