Installation von OTRS 4 unter Debian

Dieses Tutorial beschreibt die Installation von OTRS 4 (4.0.8) auf einem Debian System.

Schritt 1: System auf den neuesten Stand bringen

apt-get update && apt-get upgrade --show-upgraded

Schritt 2: Abhängigkeiten installieren

Sollte noch kein Webserver (inkl. mod_perl) installiert sein, wird dies mit folgendem Befehl nachgeholt.

apt-get install apache2 libapache2-mod-perl2 mysql-server

Um die Installation von MySQL abzusichern empfiehlt sich die MySQL Secure Installation, welche mit folgendem Befehl ausgeführt wird.

mysql_secure_installation

Im nächsten Schritt werden die von OTRS benötigten Perl Module installiert.

apt-get install -y libdbd-odbc-perl libarchive-zip-perl libcrypt-eksblowfish-perl libcrypt-ssleay-perl libtimedate-perl libencode-hanextra-perl libgd-gd2-perl libgd-text-perl libgd-graph-perl libio-socket-ssl-perl libjson-xs-perl libmail-imapclient-perl libio-socket-ssl-perl libnet-dns-perl libnet-ldap-perl libpdf-api2-perl libtemplate-perl libtemplate-perl libtext-csv-xs-perl libxml-parser-perl libyaml-libyaml-perl

Schritt 3: Download und entpacken

Nun muss die aktuelle Version von OTRS heruntergeladen werden. Die aktuellste Version von OTRS liegt auf dem FTP Server der OTRS AG unter ftp://ftp.otrs.org/pub/otrs/ und lässt sich mit folgendem Befehl herunterladen.

wget ftp://ftp.otrs.org/pub/otrs/otrs-4.0.8.tar.gz

Anschließend wird OTRS entpackt und nach /opt/otrs verschoben.

tar xf otrs-4.0.8.tar.gz
mv otrs-4.0.8 /opt/otrs

Schritt 4: Benutzer erstellen

Nun wird ein Benutzer erstellt, unter welchem OTRS arbeiten darf. Der Benutzer muss der Gruppe www-data angehören und das Home-Verzeichnis /opt/otrs besitzen.

useradd -d /opt/otrs/ -c 'OTRS user' otrs
usermod -g www-data otrs

Schritt 5: OTRS Konfiguration vorbereiten

Jetzt muss die OTRS Konfiguration vorbereitet werden.

cp /opt/otrs/Kernel/Config.pm.dist /opt/otrs/Kernel/Config.pm
cp /opt/otrs/Kernel/Config/GenericAgent.pm.dist /opt/otrs/Kernel/Config/GenericAgent.pm

Schritt 6: Rechte setzen

Damit der OTRS Benutzer auch Zugriff auf die nötigen Verzeichnisse hat, müssen nun mehrere Rechte vergeben werden. Hierzu wird von OTRS ein Script mitgeliefert, welches diese Aufgabe übernimmt.

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

Schritt 7: Konfiguration des Apache Webservers

OTRS liefert eine Konfigurationsdatei für Apache mit, um die Installation so einfach wie möglich zu halten. Diese muss lediglich an die richtige Stelle im System kopiert werden.

cp /opt/otrs/scripts/apache2-httpd.include.conf /etc/apache2/conf.d/otrs.conf

Bei Debian Jessie muss folgender Befehl verwendet werden:

cp /opt/otrs/scripts/apache2-httpd.include.conf /etc/apache2/conf-available/otrs.conf && a2enconf otrs.conf

Danach folgt ein Neustart von Apache um die Konfigurationsdatei einzulesen.

/etc/init.d/apache2 restart

Schritt 8: MySQL Konfiguration anpassen

Damit OTRS 4 läuft, muss die MySQL Konfiguration noch leicht angepasst werden. Dazu werden die Werte innodb_log_file_size und max_allowed_packet angepasst. Hierfür sind die folgenden Schritte nötig.

mysql --user="root" -p --execute="SET GLOBAL innodb_fast_shutdown = 0;"

MySQL fragt daraufhin nach dem MySQL root Passwort. Dieses wurde bei der Installation von MySQL vergeben.

/etc/init.d/mysql stop
rm -rf /var/lib/mysql/ib_logfile*

Nun wird die Konfigruation von MySQL geöffnet.

nano /etc/mysql/my.cnf

Hier muss der Wert max_allowed_packet von 16 MB auf 20 MB und innodb_log_file_size von 5 MB (Standard) auf 256 MB angehoben werden. Der Wert innodb_log_file_size ist unter Debian nicht in der MySQL Konfigurationsdatei my.cnf zu finden und muss direkt unter [mysqld] hinzugefügt werden. Das schaut dann in etwa folgendermaßen aus.

...
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
innodb_log_file_size = 256M
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 20M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
...

Danach wird die Konfiguration gespeichert und MySQL wieder gestartet.

/etc/init.d/mysql start

Schritt 8: Abschluss der Installation

Abgeschlossen wird die Installation von OTRS mit dem OTRS Installer, welcher über den Browser aufgerufen wird.

http://SERVER-IP-ADRESSE/otrs/installer.pl

Nach der Installation im Browser folgt der erste Login mit dem Benutzernamen „root@localhost“ und dem vom Installer vergebenen Passwort. (WICHTIG: Das Passwort des Benutzers „root@localhost“ sollte umgehend geändert werden)

Schritt 9: OTRS cron jobs in crontab übertragen

OTRS nutz diverse cron jobs, beispielsweise für den Versand von Erinnerungen oder den Empfang von E-Mails. Alle nötigen cron jobs werden folgendermaßen eingerichtet:

cd /opt/otrs/var/cron
for foo in *.dist; do cp $foo `basename $foo .dist`; done

Zuletzt müssen die cron jobs noch der crontab des Benutzers „otrs“ hinzugefügt werden.

/opt/otrs/bin/Cron.sh start otrs

Damit sind alle OTRS cron jobs fertig eingerichtet und werden in den definierten Intervallen ausgeführt. Um das zu prüfen wird folgender Befehl verwendet:

crontab -l -u otrs

Dieser Befehl sollte in etwa folgende Ausgabe liefern (gekürzt):

# --
# cron/aaa_base - base crontab package
# Copyright (C) 2001-2009 OTRS AG, http://otrs.org/
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
...
...
...
# delete every 120 minutes old/idle session ids
55 */2 * * * $HOME/bin/otrs.DeleteSessionIDs.pl --expired >> /dev/null
# --
# cron/unlock - unlock old locked ticket of the OTRS
# Copyright (C) 2001-2009 OTRS AG, http://otrs.org/
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
# --
# unlock every hour old locked tickets
35 * * * * $HOME/bin/otrs.UnlockTickets.pl --timeout >> /dev/null

OTRS 4 ist nun fertig eingerichtet.

43 Gedanken zu „Installation von OTRS 4 unter Debian

  1. Rainer

    Hi Markus,

    Vielen Dank für Deine Anleitung! Wollte an dieser Stelle kurz darauf hinweisen, dass unter Debian Jessie der Vorgang beim kopieren der otrs.conf in das Apache Verzeichnis etwas abweicht, da es das „conf.d“ Verzeichnis nicht mehr gibt. Stattdessen muss die conf Datei nach conf-available kopiert werden und mit einem Symlink nach conf-enabled verlinkt werden.

    Alles andere bleibt jedoch gleich.

    Hast Du Exchange 2010 schon einmal an OTRS angebunden? Hierfür ist die allgemeine Doku leider recht schwach und ich muss das irgendwie hinbekommen ;-)

    Grüße
    Rainer

    Antworten
    1. Markus Mansshardt Beitragsautor

      Hallo Rainer,

      erstmal danke für deinen Hinweis. Ich habe das Tutorial entsprechend angepasst.
      Ja, ich habe bereits Exchange 2013 und 2010 an OTRS angebunden. Im Grunde funktioniert das nicht anders als mit jedem anderen Postfach. Exchange bietet auch POP und IMAP als Protokoll an. Damit kannst du deine Postfächer abrufen.

      Viele Grüße,
      Markus

      Antworten
  2. Manuel

    Hi!

    Super Erklärung. Leider bekomme ich ein „The requested URL /otrs/installer.pl was not found on this server!“ wenn ich den Webinstaller aufrufe. Muss die otrs.conf noch in die Apache2.conf mit eingetragen werden? Beiim Start vom Apache erhalte ich keine Fehlermeldung.

    Antworten
    1. Markus Mansshardt Beitragsautor

      Auf welchem System hast du OTRS installiert? Jessie? Kann sein, dass du die Config erst noch aktivieren musst, sofern du sie nach /etc/apache2/conf-available/otrs.conf kopiert hast. Probiere einmal „a2enconf otrs.conf“ aus. Danach ein Neustart von Apache und die die URL sollte funktionieren.

      Antworten
      1. Manuel

        Super! Das war die Lösung.

        Ach ja: Es handelte sich hierbei um Jessie.

        Großes Lob nochmal für dein Tutorial

        Manu

        Antworten
        1. Markus Mansshardt Beitragsautor

          Freut mich! Na dann viel Spass mit OTRS und Danke für dein Lob!
          PS: Habe a2enconf nun auch ins Tutorial aufgenommen.

          Antworten
    2. Manuel

      Eine Kleinigkeit ist mir jetzt noch aufgefallen. Der Cron – Dienst muss nach einem Serverneustart noch von Hand nachgestartet werden. Das geht doch auch eleganter, oder? Leider bin ich kein Linux-Spezi

      Antworten
      1. Markus Mansshardt Beitragsautor

        Der crond läuft üblicherweise immer (überprüfbar mit „service cron status“), also auch nach einem Neustart. Auch die crontab sollte mit einem Neustart erhalten bleiben. Wenn crond nicht automatisch startet musst du sicherstellen, dass er im entsprechenden Runlevel (üblicherweise 2) gestartet wird. Schaue dir dazu einmal das init Script von cron an (nano /etc/init.d/cron). Unter default start werden die Runlevel definiert in denen crond startet.

        Antworten
  3. artpr

    Hallo Markus,

    erstmal vielen Dank für die einfache Anleitung. Das hat super funktioniert. Ich habe unter Debian 8.1 jessie, das OTRS 4 installiert und soweit ist alles ok. Nun aber mein Problem ist, dass im Portal immer noch “Scheduler läuft nicht“ steht. Jetzt weis eben nicht ob es läuft oder nicht, und woran das liegen könnte. Muss das dort stehen, denke nicht oder?

    Vielen Dank für dein Feedback

    Artpr

    Antworten
  4. artpr

    Hallo Markus,

    ich habe das gelöst. Nämlich musste folgende OTRS-Dienste starten und jetzt zeigt kein Meldung mehr:

    service cron start
    service apache2 start
    su – otrs
    cd /opt/otrs/
    bin/Cron.sh start
    bin/otrs.Scheduler.pl -a start

    Welcher Dienst fehlte kann ich nicht sagen, aber jetzt geht es.

    Danke nochmal

    Schöne Grüße,

    Artpr

    Antworten
  5. artpr

    Hallo nochmal,

    also das Problem ist es jetzt, dass der Dients nicht automatisch startet und so nach einem Neustart wieder die Meldung “ Scheduler läuft nicht“ da steht.

    Was ist da falsch überhaupt?

    Danke im Voraus für das Feedback!

    Gruß,

    Artpr

    Antworten
    1. Markus Mansshardt Beitragsautor

      Hallo Artpr,

      es scheint ein „gewolltes“ Verhalten zu sein, dass der Scheduler nicht beim Systemstart startet.

      http://otrs.github.io/doc/manual/admin/4.0/en/html/scheduler.html

      Nachdem ich mit OTRS immer in 24/7 Produktivumgebungen gearbeitet habe, ist mir das nie aufgefallen. In dem oben genannten Artikel ist von einem init Script die Red, welches ich in der aktuellen Version von OTRS allerdings nicht finden konnte. Am besten, du baust dir ein eigenes Startup Script, das beim Systemstart ausgeführt wird und den Scheduler startet.

      Viele Grüße,
      Markus

      Antworten
  6. Mario

    Hallo Markus,

    großen Dank an dich für die Anleitung! Nichts zusammensuchen und hat auf Anhieb ohne Probleme funktioniert, großartig gemacht.

    Kleine Anmerkung: bei Schritt 8, der Anpassung der MySQL-Konfiguration, wäre es möglicherweise besser statt das Passwort direkt anzugeben mittels „-p“-Parameter die interaktive Passworteingabe zu verwenden. Damit taucht das MySQL-Root-Passwort auch nicht in der Konsolenhistorie auf.

    Gruß
    Mario

    Antworten
    1. Markus Mansshardt Beitragsautor

      Hi Mario,

      da hast du absolut recht! Ich habe das Tutorial entsprechend angepasst.

      Grüße,
      Markus

      Antworten
  7. Eugen

    Mallo Markus,

    erstmal ein Lob an die Anleitung. Ich hab nur ein Problem sobald ich die einstellung in der my.cnf vornehme also innodb_log_file_size =256M stelle dann startet der mysql nicht mehr.

    Grüße,

    Eugen

    Antworten
  8. Uli

    Hallo Markus,

    vielen Dank erst mal für dein Tutorial!

    Da bei mir Ubuntu 14 mit Plesk 12 läuft, scheint es dort die eine oder andere Abweichung mit Variablen zu geben. Was definitiv anders ist, scheint bisher nur den Apache zu betreffen. Dort muss es dann „cp /opt/otrs/scripts/apache2-httpd.include.conf /etc/apache2/plesk.conf.d/otrs.conf“ heißen. Soweit so gut!
    Der Eintrag ist dann auch richtig gesetzt und beim Start von Apache und Mysql gibt es keine Fehlermeldungen. Wenn ich nun aber versuche die Installation im Browser auszurufen, bekomme ich nur ein schnödes „not found / 404“ zurück.

    Da ich mir sicher bin, dass es hier an Plesk liegt, da aber wiederum alles im Apache richtig zu sein scheint, bin ich im Moment am Ende. Zumal auch die logs des Apaches keinen – zumindest mir ersichtlichen – Hinweis geben.

    Gibt es dazu vlld. einen Tip?!

    Gruß
    Uli

    Antworten
    1. Markus Mansshardt Beitragsautor

      Hi Uli,

      die Eigenheiten von Plesk kenne ich leider nicht. Apache ließt allerdings üblicherweise sämtliche Configfiles per Include ein. Eventuell schaust du einmal in die apache2.conf (wenn es die bei dir gibt), oder httpd.conf ob Apache den gesamten Ordner /etc/apache2/plesk.conf.d/ einließt? Ansonsten checke einmal die Config mit „apachectl -t“. Vielleicht liefert dir das noch Infos was nicht stimmt.

      Grüße,
      Markus

      Antworten
  9. Ralf

    Hallo,
    klappt das so auch auf einem Raspberry 2 ? – Hast Du Erfahrungen damit?
    Wir sind nur ein ganz kleines Team mit vielleicht 1000 Tickets im Jahr – da würde sowas doch reichen, oder?
    Ich hab das jetzt auf Raspian-Basis mal versucht, aber so richtig funzt es noch nicht…
    VG,
    Ralf

    Antworten
  10. Matthias

    Hallo Markus,

    diese Anleitung ist sehr gut. Vielen Dank. Das hat mir heute den Abend gerettet.

    Tausend Daumen Hoch.

    Antworten
  11. Julian Bendig

    Hey,

    wie schon bei Eugen weiter oben startet mein MySQL nicht mehr nach dem Einfügen von innodb_log_file_size =256M
    Was kann ich denn da machen? :(

    Grüße

    Julian

    [….] Starting mysql (via systemctl): mysql.serviceJob for mysql.service failed. See ’systemctl status mysql.service‘ and ‚journalctl -xn‘ for details.
    failed!

    Okt 16 19:02:41 ticketsystem mysql[20643]: Starting MySQL database server: mysqld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . failed!
    Okt 16 19:02:41 ticketsystem systemd[1]: mysql.service: control process exited, code=exited status=1
    Okt 16 19:02:41 ticketsystem systemd[1]: Failed to start LSB: Start and stop the mysql database server daemon.
    Okt 16 19:02:41 ticketsystem systemd[1]: Unit mysql.service entered failed state.

    — Logs begin at Fr 2015-10-16 16:58:28 CEST, end at Fr 2015-10-16 19:06:47 CEST. —
    Okt 16 19:02:41 ticketsystem systemd[1]: Unit mysql.service entered failed state.
    Okt 16 19:02:41 ticketsystem sudo[20629]: pam_unix(sudo:session): session closed for user root
    Okt 16 19:06:01 ticketsystem sudo[21414]: ticketsystem : TTY=pts/0 ; PWD=/etc/apache2 ; USER=root ; COMMAND=/bin/systemctl status mysql.service
    Okt 16 19:06:01 ticketsystem sudo[21414]: pam_unix(sudo:session): session opened for user root by ticketsystem(uid=0)
    Okt 16 19:06:01 ticketsystem sudo[21414]: pam_unix(sudo:session): session closed for user root
    Okt 16 19:06:33 ticketsystem sudo[21416]: ticketsystem : TTY=pts/0 ; PWD=/etc/apache2 ; USER=root ; COMMAND=/bin/journalctl -xn
    Okt 16 19:06:33 ticketsystem sudo[21416]: pam_unix(sudo:session): session opened for user root by ticketsystem(uid=0)
    Okt 16 19:06:33 ticketsystem sudo[21416]: pam_unix(sudo:session): session closed for user root
    Okt 16 19:06:47 ticketsystem sudo[21420]: ticketsystem : TTY=pts/0 ; PWD=/etc/apache2 ; USER=root ; COMMAND=/bin/journalctl -xn
    Okt 16 19:06:47 ticketsystem sudo[21420]: pam_unix(sudo:session): session opened for user root by ticketsystem(uid=0)

    Antworten
    1. jann0r

      @ julian,

      Um den Fehler zu beheben, langt es nicht, einfach nur in der my.cnf den Wert für die innodb einzutragen,
      du musst die Log Dateien vorher löschen.

      1. mysql Stoppen
      2. den Wert in die my.cnf eintragen
      3. die Log Dateien löschen ( rm -f /var/lib/mysql/ib_logfile* )
      4. mysql Starten, nun werden neue Log Dateien mit entsprechenden Werten neu angelegt.

      Antworten
  12. Christian

    Ist diese Anleitung auch auf die Version 5 adaptierbar? Oder gab es grundlegende Änderungen.
    Sitze gerade an meiner erst OTRS installation.

    Bzw ist die Anleitung unter „https://otrs.github.io/doc/manual/admin/stable/en/html/manual-installation-of-otrs.html“ vernünftig? Weil oftmals haben mir die der Community mehr geholfen wie die Dokus der Hersteller/Entwickler-

    VG

    Christian

    Antworten
    1. Markus Mansshardt Beitragsautor

      Hi Christian,

      vermutlich lässt sich das Tutorial im Grunde auch für Version 5 anwenden. Ich würde dir aber empfehlen, dich hier an die offizielle Doku auf github zu halten.

      Viele Grüße,
      Markus

      Antworten
  13. myty

    Super Anleitung aber ich habe hier bisschen schwirigkeiten…

    wget ftp://otrs.org/pub/otrs/otrs-5.0.5-01.noarch.rpm.tar.gz
    –2016-01-18 11:38:04– ftp://otrs.org/pub/otrs/otrs-5.0.5-01.noarch.rpm.tar.gz
    => »otrs-5.0.5-01.noarch.rpm.tar.gz«
    Auflösen des Hostnamen »otrs.org (otrs.org)«… 178.63.99.24
    Verbindungsaufbau zu otrs.org (otrs.org)|178.63.99.24|:21… verbunden.
    Anmelden als anonymous …
    Fehler bei der Anmeldung.

    Vielen Dank in Vorraus

    Antworten
  14. myty

    Hi Markus

    Ich habe jetz der 5.0.5 installiert und ich kann nich der configuration vorbereiten,
    weil der GenericAgent ist nicht in der Config Verzeichnis
    cp /opt/otrs/Kernel/Config/GenericAgent.pm.dist /opt/otrs/Kernel/Config/GenericAgent.pm

    Vielen Dank
    Myty

    Antworten
      1. myty

        Hi Markus,

        der Manual 5.0 ist auch gut., aber ich kann der mod version nicht installieren oder aktivieren…

        shell> a2enmod perl – Module perl already enabled
        shell> a2enmod version – ERROR: Module version does not exist!
        shell> a2enmod deflate – Module perl already enabled
        shell> a2enmod filter – Module perl already enabled
        shell> a2enmod headers – Module perl already enabled

        Kannst du mir bitte weiter helfen?

        Vielen Dank
        Myty

        Antworten
  15. Edi

    Hallo,

    anscheinend hat alles geklappt, wenn ich nun die Ip des otrs’s aufrufe bekomme ich nur den Apache Screen.
    Mache ich was falsch?

    VG

    Edi

    Antworten
    1. Markus Mansshardt Beitragsautor

      Hallo Edi,

      hast du in Schritt 7 alle Schritte wie beschrieben durchgeführt?
      Denke daran, dass du bei Debian Jessie noch ein „a2enconf otrs.conf“ durchführen musst, da die Config sonst nicht aktiviert wird. Denke auch daran, dass du den Installer mit der URL http://dein-apache-host/otrs/installer.pl aufrufen musst. Wichtig ist also das /otrs/installer.pl, ansonsten landest du auf der Apache „It works!“ Seite.

      Eventuell hilft dir auch noch ein Blick in die Logfiles des Apache.

      Viele Grüße
      Markus

      Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.