Table of Contents |
---|
Sollten Sie sich für die Bare Metal Lösung entschieden haben finden Sie hier alle notwendigen wichtigen Informationen zur Installation der notwendigen Komponenten für Troi unter Ubuntu. Der Betrieb der Troi Software auf eigener Infrastruktur benötigt grundlegende Linux Kenntnisse, insbesondere der im Umgang mit der Konsole sollte keine Schwierigkeiten bereiten.
Anforderungen
Die Bare Metal Variante benötigt setzt Ubuntu 18.04 Headless LTS als Basissystem voraus. Troi läuft in der Theorie auch unter anderen *Nix Systemen, aber nur Ubuntu wird offiziell als Bare Metal System unterstützt.
Step-By-Step
Sicherstellen das Ubuntu auf dem aktuellen Stand ist
Der eingesetzte Ubuntu Server sollte auf dem aktuellen Stand sein:
Code Block | ||
---|---|---|
| ||
sudo apt update
sudo apt dist-upgrade |
oder in einer Zeile
Hardware
- OS: Linux (Bevorzugt Ubuntu 18.04 LTS Headless)
- Prozessor: mind. 2 VCPU's 2,4 GHz
RAM: mind. 4 GB RAM
HD: mind. 25 GB (empfohlen 2 HDs im Raid1-Verbund)
Step-By-Step
Sicherstellen das Ubuntu auf dem aktuellen Stand ist
Der eingesetzte Ubuntu Server sollte auf dem aktuellen Stand sein:
Code Block | ||
---|---|---|
| ||
sudo apt update
sudo apt dist-upgrade |
In einer Zeile bitte wie folgt:
Code Block | ||
---|---|---|
| ||
sudo apt update && sudo apt dist-upgrade |
Installation der notwendigen
...
Pakete
Bitte installieren Sie nicht das Standard LAMP Packet Paket bei der Ubuntu Server Edition sondern folgende PacketePakete:
Code Block | ||
---|---|---|
| ||
sudo apt install openjdk-8-jre-headless nginx-light php7.2-fpm php7.2-curl php7.2-gd php7.2-cli php7.2-mysql php7.2-mbstring php7.2-zip php7.2-sqlite3 php7.2-bcmath php7.2-xml php7.2-intl php-redis redis-server |
Installation des Datenbankservers. : Hier kann zwischen MySQL 5.7 oder MariaDB (mind. 10.3) gewählt werden. In unserem Beispiel hier setzten setzen wir auf MySQL:
Code Block | ||
---|---|---|
| ||
sudo apt install mysql-server mysql-client |
...
Der FOPServer kann über folgenden Link heruntergeladen werden: https://dist.troi.software/fopserver/fopserver-v2.6.30.tar.gz
Download und installation Installation per Shell:
Code Block | ||
---|---|---|
| ||
cd /tmp wget https://dist.troi.software/fopserver/fopserver-v2.36.0.tar.gz mkdir -p /opt/troi /var/troi/fopserver/log tar -C /opt/troi -xzf fopserver-v2.36.0.tar.gz rm /tmp/fopserver-v2.36.0.tar.gz chown -R www-data:www-data /var/troi /opt/troi |
...
Code Block |
---|
/var/troi/fopserver/log/fopserver.log { rotate 12 daily copytruncate missingok notifempty compress delaycompress } |
JobScheduler
Der FOPServer JobScheduler kann über folgenden Link heruntergeladen werden: https://dist.troi.software/jobscheduler/jobscheduler-linux.tar.gz
Download und installation Installation per Shell:
Code Block | ||
---|---|---|
| ||
cd /tmp wget https://dist.troi.software/jobscheduler/jobscheduler-linux.tar.gz mkdir -p /opt/troi /var/troi/jobscheduler/log tar -C /opt/troi -xzf jobscheduler-linux.tar.gz rm /tmp/jobscheduler-linux.tar.gz ln -s /var/troi/jobscheduler/log/ /opt/troi/jobscheduler/log chown -R www-data:www-data /var/troi /opt/troi |
...
Bevor die Installation von Troi selbst durchgeführt werden kann, ist die Konfiguration der Dienste notwendig.
...
Der Datenbankserver benötigt folgende Konfiguration (Es es empfiehlt sich, die Konfiguration in eine eigene Konfigurationsdatei abzulegen (z.B. /etc/mysql/mysql.conf.d/troi.cnf) um Änderungen bei Systemupdates vorzubeugen) :
Code Block |
---|
[mysqld] explicit_defaults_for_timestamp = Off sql_mode = innodb_strict_mode = 0 |
MariaDB ab Version 10.4 benötigt eine zusätzliche Änderung, um die Performance unter Troi zu verbessern:
...
Info | ||
---|---|---|
| ||
Unter MariaDB 10.3 sollte der Parameter `join_buffer_size` nicht angepasst werden, da dieser die Performance stark beeinträchtigen kann. |
PHP
Es empfiehlt sich, die Konfiguration in eine eigene Konfigurationsdatei abzulegen (z.B. /etc/php/7.2/fpm/conf.d/99-troi.ini) um Änderungen bei Systemupdates vorzubeugen.
Code Block |
---|
memory_limit = 1G upload_max_filesize = 20M max_execution_time = 120 cgi.fix_pathinfo = 0 max_input_vars = 16000 post_max_size = 21M display_errors = Off display_startup_errors = Off allow_url_fopen = On error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR |
PHP-FPM
Es empfiehlt sich, die Konfiguration in eine eigene Konfigurationsdatei abzulegen (z.B. /etc/php/7.2/fpm/pool.d/troi.conf) um Änderungen bei Systemupdates vorzubeugen.
Code Block |
---|
[troi] user = www-data group = www-data listen = /var/run/php-fpm-troi.sock listen.owner = www-data listen.group = www-data pm = ondemand pm.max_children = 75 pm.process_idle_timeout = 10s pm.max_requests = 500 catch_workers_output = yes chdir = /var/www php_admin_value[openssl.cafile] = /etc/ssl/certs/ca-certificates.crt php_admin_value[openssl.capath] = /etc/ssl/certs php_flag[display_errors] = off php_admin_value[error_reporting] = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR listen.backlog = 5000 |
Nginx
Es empfiehlt sich, die Konfiguration in eine eigene Konfigurationsdatei abzulegen (z.B. /etc/php/7.2/fpm/pool.dnginx/sites-available/troi.conf) um Änderungen bei Systemupdates vorzubeugen.
...
Nach dem alle Dienste konfiguriert und neugestartet neu gestartet wurden, gilt es die Datenbank sowie die Benutzer vorzubereiten.
In diesem Beispiel lautet das Passwort für den MySQL Troi Benutzer "nopass". Bitte änderen ändern Sie das Kennwort anschließend auf Ihrer Seite.
Code Block |
---|
CREATE USER 'troi'@'%' IDENTIFIED BY 'nopass'; GRANT USAGE ON * . * TO 'troi'@'%' IDENTIFIED BY 'nopass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; GRANT ALL PRIVILEGES ON `troi\_%` . * TO '" . $this->DatabaseUser . "troi'@'%'; CREATE DATABASE troi_live CHARACTER SET utf8 COLLATE utf8_general_ci; |
Installation
Die Troi Installationsdaten erhalten Sie vom Troi Team. Diese bestehen aus 2 Komponenten: Datenbank und Applikation inklusive Konfiguration und Storage (Alle hochgeladenen Dateien von Troi sind hier vorzufinden).
Datenbank
Die Troi Datenbank wird als MySQL Datenbankdump per GZIP Archive ausgeliefert. Der Import wird wie folgt durchgeführt:
Code Block |
---|
zcat troi.sql.gz | mysql -u troi -p troi_live --default-character-set=utf8 |
Info | ||
---|---|---|
| ||
Eventuell tritt ein Fehler beim Import auf: ERROR 1227 (42000) at line *: Access denied; you need (at least one of) the SUPER privilege(s) for this operation Dieser kann ignoriert werden. |
Applikation
Die Software selbst wird in das zuvor in Nginx festgelegte übergeordnete Webverzeichnis gelegt, bedeutet bei unserem Beispiel also /var/www/troi. Vergessen Sie bitte nicht die Rechte der Dateien / Ordner anzupassen.
Folgende Konfiguration muss angepasst werden:
Datenbank- / Cacheeinstellungen:
Code Block |
---|
.env |
Sicherung
In einem Produktivbetrieb ist die Datensicherung von größter Bedeutung. Folgende Punkte gibt es bei der Sicherung zu beachten:
- Sicherung der Datenbank
- Sicherung der Konfiguration (troi/config)
- Sicherung der Dateianhänge (troi/storage)