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
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.
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}"
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"