Wie installiere ich das OTRS Ticketsystem unter Ubuntu 20.04/18.04 mit MariaDB? (Teil 1)

|   Ubuntu | Ubuntu 20.04Ubuntu 18.04OTRS

OTRS ist ein beliebtes Open-Source, modernes und flexibles Ticketing- und Prozessmanagement-System. Es bietet eine Vielzahl von Funktionen, die sich individuell anpassen lassen. Es kann für die allgemeine IT-Problemlösungsverfolgung, für Helpdesk-Tickets und viele weitere Anwendungsfälle genutzt werden.

Voraussetzungen

Die Installation des OTRS Ticketsystems auf Ubuntu 20.04/18.04 benötigt folgenden Software-Pakete:

  • MariaDB-Datenbankserver
  • Apache-Webserver
  • Apache Perl Modul - libapache2-mod-perl2

Schritt 1: MariaDB-Datenbankserver installieren und konfigurieren

Mit den folgenden Befehlen kannst du den MariaDB-Datenbankserver aus den apt-Repositories installieren.

sudo apt update
sudo apt install mariadb-server

Anschließend empfiehl es sich den Befehl mysql_secure_installation auszuführen. Damit sicherst du deinen Datenbankserver ab.

sudo mysql_secure_installation

Bei den folgenden Fragen, ist die empfohlene Option immer standardmäßig voreingestell, so das du jede Frage durch drücken der Enter-Taste bestätigen kannst.

  • Zuerst wirst du gefragt, ob du ein root Passwort vergeben möchtest. Gebe anschließend zweimal das von dir gewählte Passowrt ein.
  • Danach wirst du gefragt, ob du den anonymouen Benutzer entfernen möchtest. Bestätige dies.
  • Anschließend möchte das System wissen, ob du dem root (Datenbank root Benutzer) das einloggen von entfernten Systemen verbieten möchtest. Das möchtest du.
  • Als nächstes wird dir vorgeschlagen die test Datenbank zu entfernen. Auch diesem Vorschlag folgst du.
  • Um die Änderungen aktiv zu setzen, müssen die Rechte neu geladen werden. Auch diese letzte Frage beantwortest du mit ja.

Anschließend rufst du die mysql Konsole auf.

sudo mysql -u root

Mit den folgenden vier Befehlen legst du dann die Datenbank "otrs" an, erzeugts einen Benutzer "otrsUser" mit dem Passwort "Geheim!" berechtigt für die Datenbank "otrs", lädst anschließend die Berchtigungen neu und beendest die mysql-Konsole.

MariaDB [(none)]> CREATE DATABASE otrs CHARACTER SET utf8 COLLATE utf8_general_ci;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON otrs.* TO otrsUser@localhost IDENTIFIED BY 'Geheim!';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Danach konfigurierst du die Variablen variablemax_allowed_packet, query_cache_size und innodb_log_file_size für MariaDB mit den unten aufgeführten Werten. Du fügst diese Einstellungen unter dem Abschnitt [mysqld] hinzu. Am einfachsten geht das mit dem folgenden Befehl:

sudo tee /etc/mysql/mariadb.conf.d/otrs.cnf<<EOF
[mysqld]
max_allowed_packet=64M
query_cache_size=36M
innodb_log_file_size=256M
EOF

Jetzt ist ein Neustart des MariaDB-Services erforderlich.

sudo service mariadb restart

Schritt 2: Apache2-Webserver und Apache-Perl-Module installieren

Installiere die aktuelle Version des Apache-Webservers und die für OTRS benötigten Perl-Module auf deinem Server:

sudo apt update
sudo apt install  apache2 libapache2-mod-perl2
sudo apt install libdatetime-perl libcrypt-eksblowfish-perl libcrypt-ssleay-perl libgd-graph-perl libapache-dbi-perl libsoap-lite-perl libarchive-zip-perl libgd-text-perl libnet-dns-perl libpdf-api2-perl libauthen-ntlm-perl libdbd-odbc-perl libjson-xs-perl libyaml-libyaml-perl libxml-libxml-perl libencode-hanextra-perl libxml-libxslt-perl libpdf-api2-simple-perl libmail-imapclient-perl libtemplate-perl libtext-csv-xs-perl libdbd-pg-perl libapache2-mod-perl2 libtemplate-perl libnet-dns-perl libnet-ldap-perl libio-socket-ssl-perl libmoo-perl

Warte bis die Installation abgeschlossen ist, und aktiviere anschließend das Apache Perl-Modul. Prüfe zunächst, ob das Modul geladen ist.

sudo apachectl -M | grep perl

Sollte es wider erwarten nicht gestartet sein, kannst du es mit folgenden Befehlen aktivieren und den Apache-Server neustarten.

sudo a2enmod perl
sudo service apache2 restart

Schritt 3: Anlegen eines OTRS-Systembenutzers

In diesem Schritt wird ein Systembenutzer ohne Shell-Zugriff angelegt, der den OTRS-Dienst ausführen soll.

sudo useradd -d /opt/otrs -c 'OTRS user' otrs

Der Benutzer muss zur Gruppe "www-data" hinzugefügt werden:

sudo usermod -aG www-data otrs

Mit dem Befehl id otrs kannst du die Gruppenzugehörigkeiten des Benutzer "otrs" überprüfen

id otrs

und solltest in etwa folgende Ausgabe erhalten:

uid=1001(otrs) gid=1001(otrs) groups=1001(otrs),33(www-data)

Schritt 4: Herunterladen und Installation von OTRS

Verwende wget für den Download von OTRS. Sollte wget noch nicht auf deinem Server installiert sein, kannst du es mit folgendem Befehl installieren:

sudo apt-get install wget

Lade das OTRS-Archiv herunter, entpacke es und benenne den Ordner um:

wget http://ftp.otrs.org/pub/otrs/otrs-latest.tar.gz
tar xvf otrs-latest.tar.gz
mv otrs-*/ otrs

Nun verschiebe das Verzeichnis otrs nach /opt:

sudo mv otrs /opt

Überprüfe, ob alle erforderlichen Perl-Module installiert sind.

sudo /opt/otrs/bin/otrs.CheckModules.pl

Du solltest folgende Ausgabe erhalten:

  o Apache::DBI......................ok (v1.12)
  o Apache2::Reload..................ok (v0.13)
  o Archive::Tar.....................ok (v2.32)
  o Archive::Zip.....................ok (v1.67)
  o Crypt::Eksblowfish::Bcrypt.......ok (v0.009)
  o Date::Format.....................ok (v2.24)
  o DateTime.........................ok (v1.51)
    o DateTime::TimeZone.............ok (v2.38)
  o DBI..............................ok (v1.643)
  o DBD::mysql.......................ok (v4.050)
  o DBD::ODBC........................ok (v1.61)
  o DBD::Oracle......................Not installed! (optional - Required to connect to a Oracle database.)
  o DBD::Pg..........................ok (v3.10.4)
  o Digest::SHA......................ok (v6.02)
  o Encode::HanExtra.................ok (v0.23)
  o IO::Socket::SSL..................ok (v2.067)
  o JSON::XS.........................ok (v4.02)
  o List::Util::XS...................ok (v1.50)
  o LWP::UserAgent...................ok (v6.26)
  o Mail::IMAPClient.................ok (v3.42)
    o IO::Socket::SSL................ok (v2.067)
    o Authen::SASL...................ok (v2.16)
    o Authen::NTLM...................ok (v1.09)
  o ModPerl::Util....................ok (v2.000011)
  o Moo..............................ok (v2.003006)
  o Net::DNS.........................ok (v1.22)
  o Net::LDAP........................ok (v0.66)
  o Net::SMTP........................ok (v3.11)
  o Template.........................ok (v2.27)
  o Template::Stash::XS..............ok (undef)
  o Text::CSV_XS.....................ok (v1.41)
  o Time::HiRes......................ok (v1.9760)
  o XML::LibXML......................ok (v2.0134)
  o XML::LibXSLT.....................ok (v1.99)
  o XML::Parser......................ok (v2.46)
  o YAML::XS.........................ok (v0.81)

Danach erstelle durch kopieren der Datei /opt/otrs/Kernel/Config.pm.dist die OTRS-Konfigurationsdatei und bearbeite diese:

sudo cp /opt/otrs/Kernel/Config.pm.dist /opt/otrs/Kernel/Config.pm
sudo nano /opt/otrs/Kernel/Config.pm
# ---------------------------------------------------- #
# database settings #
# ---------------------------------------------------- #

# The database host
$Self->{DatabaseHost} = '127.0.0.1';

# The database name
$Self->{Database} = 'otrs';

# The database user
$Self->{DatabaseUser} = 'otrs_user';

# The password of database user. You also can use bin/otrs.Console.pl Maint::Database::PasswordCrypt
# for crypted passwords
$Self->{DatabasePw} = 'Str0ngOTRSDBP@ssw0rd';

# The database DSN for MySQL ==> more: "perldoc DBD::mysql"
$Self->{DatabaseDSN} = "DBI:mysql:database=$Self->{Database};host=$Self->{DatabaseHost};";

Aktiviere das MySQL-Perl-Modul

sudo nano /opt/otrs/scripts/apache2-perl-startup.pl

durch auskommentieren der Zeilen mit MySQL.

# enable this if you use mysql
use DBD::mysql ();
use Kernel::System::DB::mysql;

Setze danach die Berechtigungen für das OTRS-Verzeichnis:

sudo /opt/otrs/bin/otrs.SetPermissions.pl --web-group=www-data

Nach dem Ausführen des Befehls solltest du folgende Ausgabe sehen:

Setting permissions on /opt/otrs

Mit dem Befehl ls und der Option -ldh kannst du die Verzeichnisberechtigungen überprüfen.

ls -ldh /opt/otrs/

Die Ausgabe sollte wie folgt aussehen:

drwxr-xr-x 9 otrs www-data 4.0K Apr  8 18:40 /opt/otrs/

Schritt 5: Apache VirtualHost für OTRS konfigurieren

Im Verzeichnis /opt/otrs/scripts/ bringt OTRS eine fertige Apache-Konfigurationsdatei. Diese Konfigurationsdatei funktioniert mit den Standardeinstellungen einwandfrei. Du musst lediglich einen Symlink im Verzeichnis /etc/apache2/sites-enabled/ erstellen:

sudo ln -s /opt/otrs/scripts/apache2-httpd.include.conf /etc/apache2/sites-enabled/otrs.conf

Mit dieser Konfiguration wäre dein OTRS unter 

<IP-Adresse-des-Servers/otrs

 erreichbar.  Wenn du aber möchtest, dass dein OTRS unter einer bestimmten Domain bzw. Subdomain erreichbar ist, sind ein paar Anpassungen an der Apache Konfiguration erforderlich. Kopiere also zuerst die Datei /opt/otrs/scripts/apache2-httpd.include.conf als otrs.conf in das Verzeichnis /etc/apache2/sites-available/

sudo cp /opt/otrs/scripts/apache2-httpd.include.conf /etc/apache2/sites-available/otrs.conf

Anschließend muss die Datei /etc/apache2/sites-available/otrs.conf im Editor geöffnet und bearbeitet werden.

sudo nano /etc/apache2/sites-available/otrs.conf

Als erstes füge unterhalb des 1. Kommentars die Zeile 

ServerName otrs.open-how2.de

ein. Ersetze dabei otrs.open-how2.de mit dem Namen der Domain oder Subdomain unter der dein OTRS zukünftig erreichbar sein soll.

Außerdem muss ein weiterer Alias eingefügt werden, damit dein OTRS unter dem Root deiner Domain/Subdomain (also durch Eingabe otrs.open-how2.de) und nicht nur durch die Angabe eines Unterordners  (wie z.B. otrs.open-how2.de/otrs oder otrs.open-how2.de/otrs-web) erreichbar ist.

Alias / "/opt/otrs/var/httpd/htdocs/"

Da drunter wird noch ein VirtualHost-Abschnitt eingefügt.

<VirtualHost *:80>
	ServerAdmin webmaster@open-how2.de
	DocumentRoot /opt/otrs/var/httpd/htdocs/
</VirtualHost>

Die Konfiguration der otrs.conf-Datei sollte jetzt wie folgt beginnen:

# --
# added for OTRS (http://otrs.org/)
# --

ServerName otrs.open-how2.de

ScriptAlias /otrs/ "/opt/otrs/bin/cgi-bin/"
Alias /otrs-web/ "/opt/otrs/var/httpd/htdocs/"
Alias / "/opt/otrs/var/httpd/htdocs/"


<VirtualHost *:80>
	ServerAdmin webmaster@open-how2.de
	DocumentRoot /opt/otrs/var/httpd/htdocs/
</VirtualHost>

<IfModule mod_perl.c>

# Setup environment and preload modules
...

Der Rest der Datei bleibt unverändert.

Jetzt muss nur noch ein symbolischer Link angelegt werden.

sudo ln -s /etc/apache2/sites-available/otrs.conf /etc/apache2/sites-enabled/otrs.conf

Danach ist nur noch ein Neustart des Apache-Webservers erforderlich, um die Konfigurationsänderungen zu übernehmen.

sudo service apache2 restart

Überprüfe mit den folgenden Befehlen, ob alle benötigten Module verfügbar sind:

1. index.pl

sudo perl -cw /opt/otrs/bin/cgi-bin/index.pl

Ausgabe:

/opt/otrs/bin/cgi-bin/index.pl syntax OK

2. customer.pl

sudo perl -cw /opt/otrs/bin/cgi-bin/customer.pl

Ausgabe

/opt/otrs/bin/cgi-bin/customer.pl syntax OK

3. otrs.console.pl

sudo perl -cw /opt/otrs/bin/otrs.Console.pl

Ausgabe:

/opt/otrs/bin/otrs.Console.pl syntax OK

Anschleißend ist ein Neustart des Apache Webservers erforderlich:

sudo service apache2 restart

Schritt 6: Firewall konfigurieren

Du solltest auf jeden Fall auf deinem Server eine Firewall einsetzen. Wie du unter Ubuntu z.B. die UFW, "Uncomplicated Firewall" (Unkomplizierte Firewall), einrichtest, haben wir in einem separaten Artikel beschrieben.

Für OTRS solltest du neben dem SSH-Port deines Servers den Port 80 (http) und da wir später https einsetzen wollen den Port 443 freigeben.

sudo ufw allow ssh
sudo ufw allow 80
sudo ufw allow 443