Über den Author / Programme / Open-Xchange (OX6) Installation HowTo Debian

Open-Xchange (OX6) Installation HowTo Debian

~7 Min. Lesezeit

Open Xchange ist eine gute Alternative zu sonstigen Mail-Lösungen und bietet dem Einem oder anderem Kunden doch ein grossen Mehrwert.

Open-Xchange ist sowohl als kostenpflichtige Variante als auch als kostenlose Variante (nicht kommerziellen Einsatz) im Angebot. Da ich dies nur für private Zwecke einsetze und auf der Suche nach einer Alternative für Kerio war, wollte ich Open-Xchange eine Chance geben.

Schnell findet man eine Installationsanleitung vom Hersteller, welche mich nicht immer 100%ig zufrieden stellte.

Als Erstes sollte man wissen das die OX6 Version kein Webpanel mehr für die Administration zur Verfügung stellt und diese Tasks alle auf der Shell erledigt werden müssen. Ein wenig unverständlich für Viele, aber dennoch für ein Linux Geek keine Sache.

Für die Installation solltet ihr euer MySQL Passwort vom User ‚root‘ zur Hand haben und MySQL bereits installiert haben.

Nun beginnen wir:

Wir importieren den Key für Aptitude und ergänzen die Sourceliste:

echo "
deb http://software.open-xchange.com/OX6/stable/DebianLenny/ /" >> /etc/apt/sources.list
wget http://software.open-xchange.com/oxbuildkey.pub -O - | apt-key add -
apt-get update

Wenn dies geklappt hat gibt es kein Fehler zurück 😉

Wir installieren die Pakete:

apt-get install open-xchange-meta-singleserver \
open-xchange-authentication-database open-xchange-spamhandler-default -y

Zuerst importieren wir das Open Xchange Verzeichnis in die lokale Path-Variable:

echo PATH=$PATH:/opt/open-xchange/sbin/ >> ~/.bashrc && . ~/.bashrc

Nun erstellen wir die configdb und den MySQL User welcher benötigt wird:

su open-xchange
/opt/open-xchange/sbin/initconfigdb --configdb-pass=08dcb134d8452cf9a5c1f0370f31202c \
-a -i --mysql-root-passwd MYSQL-PASS

Nun installieren wir die Datenbank für die Mails ohne Lizenz:

/opt/open-xchange/sbin/oxinstaller --no-license \
--servername=oxserver --configdb-pass=08dcb134d8452cf9a5c1f0370f31202c \
--master-pass=24ed07d22178d48f5a6a77a8fbcad522 --ajp-bind-port=localhost

Und starten den Admin Dienst:

/etc/init.d/open-xchange-admin start

Nun erstellen wir den Server und den Storage und registrieren Diesen:

/opt/open-xchange/sbin/registerserver -n oxserver \
-A oxadminmaster -P 24ed07d22178d48f5a6a77a8fbcad522mkdir /var/opt/filestore
chown open-xchange:open-xchange /var/opt/filestore
/opt/open-xchange/sbin/registerfilestore -A oxadminmaster -P 24ed07d22178d48f5a6a77a8fbcad522 \
-t file:///var/opt/filestore

Jetzt registrieren wir noch die Groupware Datenbank:

/opt/open-xchange/sbin/registerdatabase -A oxadminmaster -P 24ed07d22178d48f5a6a77a8fbcad522 \
-n oxdatabase -p 08dcb134d8452cf9a5c1f0370f31202c -m true

Nun ist die Installation schon abgeschlossen und wir aktivieren die nötigen Apache2 Module mit:

a2enmod proxy proxy_ajp expires deflate headers rewrite

Und erstellen die AJP Konfiguration:

echo "<Proxy *>" > /etc/apache2/conf.d/proxy_ajp.conf
echo "Order deny,allow" >> /etc/apache2/conf.d/proxy_ajp.conf
echo "allow from all" >> /etc/apache2/conf.d/proxy_ajp.conf
echo "</Proxy>" >> /etc/apache2/conf.d/proxy_ajp.conf
echo "" >> /etc/apache2/conf.d/proxy_ajp.conf
echo "ProxyPass /axis2 ajp://127.0.0.1:8009/axis2 smax=0 ttl=60 retry=5" >> /etc/apache2/conf.d/proxy_ajp.conf
echo "ProxyPass /ajax ajp://127.0.0.1:8009/ajax smax=0 ttl=60 retry=5" >> /etc/apache2/conf.d/proxy_ajp.conf
echo "ProxyPass /servlet ajp://127.0.0.1:8009/servlet smax=0 ttl=60 retry=5" >> /etc/apache2/conf.d/proxy_ajp.conf
echo "ProxyPass /infostore ajp://127.0.0.1:8009/infostore smax=0 ttl=60 retry=5" >> /etc/apache2/conf.d/proxy_ajp.conf
echo "ProxyPass /publications ajp://127.0.0.1:8009/publications smax=0 ttl=60 retry=5" >> /etc/apache2/conf.d/proxy_ajp.conf
echo "# next line is required for OXtender for Business Mobility only" >> /etc/apache2/conf.d/proxy_ajp.conf
echo "ProxyPass /Microsoft-Server-ActiveSync ajp://127.0.0.1:8009/Microsoft-Server-ActiveSync smax=0 ttl=60 retry=5" >> /etc/apache2/conf.d/proxy_ajp.conf

Weiterhin müssen wir uns entscheiden auf welcher URL der Server anschliessend erreichbar ist und erstellen dann folgendes File:

echo "<VirtualHost *:80>" > /etc/apache2/sites-available/pmail
echo " ServerName ox.DEINEDOMAIN.ch" >> /etc/apache2/sites-available/pmail
echo "" >> /etc/apache2/sites-available/pmail
echo " DocumentRoot /var/www/" >> /etc/apache2/sites-available/pmail
echo "" >> /etc/apache2/sites-available/pmail
echo " <Directory /var/www/>" >> /etc/apache2/sites-available/pmail
echo " AllowOverride None" >> /etc/apache2/sites-available/pmail
echo " Order allow,deny" >> /etc/apache2/sites-available/pmail
echo " allow from all" >> /etc/apache2/sites-available/pmail
echo " RedirectMatch ^/\$ /ox6/" >> /etc/apache2/sites-available/pmail
echo " Options +FollowSymLinks +SymLinksIfOwnerMatch" >> /etc/apache2/sites-available/pmail
echo " </Directory>" >> /etc/apache2/sites-available/pmail
echo " # deflate" >> /etc/apache2/sites-available/pmail
echo " AddOutputFilterByType DEFLATE text/html text/plain text/javascript application/javascript text/css text/xml application/xml text/x-js application/x-javascript" >> /etc/apache2/sites-available/pmail
echo "" >> /etc/apache2/sites-available/pmail
echo " # pre-compressed files" >> /etc/apache2/sites-available/pmail
echo " AddType text/javascript .jsz" >> /etc/apache2/sites-available/pmail
echo " AddType text/css .cssz" >> /etc/apache2/sites-available/pmail
echo " AddType text/xml .xmlz" >> /etc/apache2/sites-available/pmail
echo " " >> /etc/apache2/sites-available/pmail
echo " AddEncoding gzip .jsz .cssz .xmlz" >> /etc/apache2/sites-available/pmail
echo " SetEnvIf Request_URI \"\.(jsz|cssz|xmlz)\$\" no-gzip" >> /etc/apache2/sites-available/pmail
echo "" >> /etc/apache2/sites-available/pmail
echo " ExpiresActive On" >> /etc/apache2/sites-available/pmail
echo " " >> /etc/apache2/sites-available/pmail
echo " <Location /ox6>" >> /etc/apache2/sites-available/pmail
echo " # Expires (via ExpiresByType to override global settings)" >> /etc/apache2/sites-available/pmail
echo " ExpiresByType image/gif \"access plus 6 months\"" >> /etc/apache2/sites-available/pmail
echo " ExpiresByType image/png \"access plus 6 months\"" >> /etc/apache2/sites-available/pmail
echo " ExpiresByType image/jpg \"access plus 6 months\"" >> /etc/apache2/sites-available/pmail
echo " ExpiresByType image/jpeg \"access plus 6 months\"" >> /etc/apache2/sites-available/pmail
echo " ExpiresByType text/css \"access plus 6 months\"" >> /etc/apache2/sites-available/pmail
echo " ExpiresByType text/html \"access plus 6 months\"" >> /etc/apache2/sites-available/pmail
echo " ExpiresByType text/xml \"access plus 6 months\"" >> /etc/apache2/sites-available/pmail
echo " ExpiresByType text/javascript \"access plus 6 months\"" >> /etc/apache2/sites-available/pmail
echo " ExpiresByType text/x-js \"access plus 6 months\"" >> /etc/apache2/sites-available/pmail
echo " ExpiresByType application/x-javascript \"access plus 6 months\"" >> /etc/apache2/sites-available/pmail
echo " ExpiresDefault \"access plus 6 months\"" >> /etc/apache2/sites-available/pmail
echo " Header append Cache-Control \"private\"" >> /etc/apache2/sites-available/pmail
echo " Header unset Last-Modified" >> /etc/apache2/sites-available/pmail
echo " Header unset Vary" >> /etc/apache2/sites-available/pmail
echo " # Strip version" >> /etc/apache2/sites-available/pmail
echo " RewriteEngine On" >> /etc/apache2/sites-available/pmail
echo " RewriteRule v=\w+/(.+) \$1 [L]" >> /etc/apache2/sites-available/pmail
echo " # Turn off ETag" >> /etc/apache2/sites-available/pmail
echo " Header unset ETag" >> /etc/apache2/sites-available/pmail
echo " FileETag None" >> /etc/apache2/sites-available/pmail
echo " </Location>" >> /etc/apache2/sites-available/pmail
echo " " >> /etc/apache2/sites-available/pmail
echo " <Location /ox6/ox.html>" >> /etc/apache2/sites-available/pmail
echo " ExpiresByType text/html \"now\"" >> /etc/apache2/sites-available/pmail
echo " ExpiresDefault \"now\"" >> /etc/apache2/sites-available/pmail
echo " Header unset Last-Modified" >> /etc/apache2/sites-available/pmail
echo " Header set Cache-Control \"no-store, no-cache, must-revalidat" >> /etc/apache2/sites-available/pmaile, post-check=0, pre-check=0\"
echo " # Turn off ETag" >> /etc/apache2/sites-available/pmail
echo " Header unset ETag" >> /etc/apache2/sites-available/pmail
echo " FileETag None" >> /etc/apache2/sites-available/pmail
echo " </Location>" >> /etc/apache2/sites-available/pmail
echo " " >> /etc/apache2/sites-available/pmail
echo " <Location /ox6/index.html>" >> /etc/apache2/sites-available/pmail
echo " ExpiresByType text/html \"now\"" >> /etc/apache2/sites-available/pmail
echo " ExpiresDefault \"now\"" >> /etc/apache2/sites-available/pmail
echo " Header unset Last-Modified" >> /etc/apache2/sites-available/pmail
echo " Header set Cache-Control \"no-store, no-cache, must-revalidat"e, post-check=0, pre-check=0\"" >> /etc/apache2/sites-available/pmail
echo " # Turn off ETag" >> /etc/apache2/sites-available/pmail
echo " Header unset ETag" >> /etc/apache2/sites-available/pmail
echo " FileETag None" >> /etc/apache2/sites-available/pmail
echo " </Location>" >> /etc/apache2/sites-available/pmail
echo "</VirtualHost>" >> /etc/apache2/sites-available/pmail

Nun aktiviert man die Site und restartet den Apache Dienst:

a2ensite pmail
/etc/init.d/apache2 restart

Und starten dann die Groupware:

/etc/init.d/open-xchange-groupware start

Was nun noch fehlt, ist der Admin User:

/opt/open-xchange/sbin/createcontext -A oxadminmaster -P 24ed07d22178d48f5a6a77a8fbcad522 -c 1 \
-u Admin -d "Context oxadminmaster" -g oxadminmaster -s User -p 24ed07d22178d48f5a6a77a8fbcad522 -L defaultcontext \
-e admin@DEINEDOMAIN.DE -q 1024 --access-combination-name=all

Sodele. Der erste Benutzer kann sich anmelden.

Weitere Benutzer kann man wie folgt einrichten:

/opt/open-xchange/sbin/createuser -c 1 -A Admin -P 24ed07d22178d48f5a6a77a8fbcad522 -u UserName \
-d "Vorname Nachname" -g Vorname -s Nachname -p Passwort -e Mailadresse -l de_DE -t Europe/Zurich

Einen User löschen kann man mit:

/opt/open-xchange/sbin/deleteuser -c 1 -A Admin -P 24ed07d22178d48f5a6a77a8fbcad522 -u UserName

Bei Problemen bezüglich Open Xchange gibt es für die kostenlose Variante die Community.

About Stefan

avatar
Ein männlicher IT Nerd, durchstöbert das Web nach speziellen Gadgets, unentbehrlicher Software und Alles was man im IT Sektor nicht verpassen darf.Immer hilfsbereit wenn Probleme zu lösen sind oder das Unmögliche umgesetzt werden sollte.

Weitere interessante Artikel

Windows 10 Tracking abschalten

~0 Min. LesezeitWindows 10 steht in den Startlöchern. Scheinbar finanziert die NSA kräftig mit bei …

Get Windows 10 Popup entfernen

~0 Min. LesezeitWindows hat ein Update veröffentlicht, was die Benutzer darauf aufmerksam machen sollte ihr …

15 Kommentare

  1. avatar

    Hallo,
    ich benutze kein Apache
    benutze Nginx als Webserver.
    Wie müsste da die anleitung aussehen?

  2. avatar

    Alles gleich, bis auf den Apache2 Teil. Da ich nur mit Apache2 arbeite, müsstest du nachsehen ob eine Anleitung auf der offiziellen Seite verfügbar ist.

  3. avatar

    Hallo Stefan!

    Vielen Dank für deine Anleitung, allerdings erhalte ich beim Anlegen des „Filestore“ schon folgenden Fehler:
    server could not be registered:
    Server response:
    registerServer; nested exception is:
    java.lang.ClassNotFoundException: com.openexchange.admin.rmi.dataobjects.Server

    Alle vorherigen Schritte waren fehlerfrei… Kein registrierter Server, klar. Wo kann ich das beheben?

  4. avatar

    Ok, schau mal ob du nach dem Befehl „registerserver“ irgendein Fehler bekommst. Wenn nein und der Fehler anhält, kannst du ein kleinen Hack machen, geh in die mysql Tabelle ‚configdb‘.’server‘ und füge da einfach server_id=1 und name=ox6server ein. Dies war bei mir auf einer VM auch mal das Problem, das es einfach dies nicht machte.

  5. avatar

    Nach dem Befehl kommt:
    Error: connection failed to host: 127.0.0.1; nested exception is:
    java.net.ConnectException: Verbindungsaufbau abgelehnt

    Klar, da die Datenbank nicht angelegt wurde… Passwort ist jedoch korrekt… Hhm…

  6. avatar

    Falls beim ‚root‘ User ein PW gesetzt ist: –mysql-root-passwd MYSQL-PASS, sonst ohne. der MySQL root user ist nicht unbedingt gleich wie der root user vom system!

  7. avatar

    Das ist bei mir identisch…

  8. avatar

    mach mal ‚telnet 127.0.0.1 3306‘ ob dies geht oder auch ein Verbindungsfehler kommt. Hast du zufällig nur den Socket aktiviert und den Port nicht?

  9. avatar

    Okay… Ich hatte zwar eine Konfiguration, die einen entsprechenden Connect unterbunden hat, funktioniert allerdings immer noch nicht. Werde mich da die Tage mal näher mit beschäftigen und dir das Ergebnis mitteilen. Vielen Dank erst mal für deine Hilfe!

    LG
    Carsten

  10. avatar

    Hallo Stefan!

    Der Fehler beruhte auf die Standard-Installation von Java, welche auf einem meiner alten Server via Java-Config einzustellen war. Danach lief OX einwandfrei.

    Vielleicht noch als Hinweis für diejenigen, die ihren Usern erlauben wollen das Passwort zu ändern:

    apt-get install open-xchange-passwordchange-database
    apt-get install open-xchange-passwordchange-servlet

    /opt/open-xchange/sbin/changeuser -c 1 -A admin -P XXXX -i 3 –access-edit-password on

    Ansonsten bleibt mir nur, dir nochmals für das How-To und deine Hilfestellung zu danken!

  11. avatar

    Hey Stefan,
    kann OpenXchange das „Exchange ActiveSync“-Protokoll?

    „Windows Mail“ von Windows 8 hat noch einen Fehler im SMTP-Protokoll, daher würde ich gern über „Exchange ActiveSync“ gehen. Vorteilhaft bei einem Xchange-Server wäre auch, dass man halt Termine und so managen kann.

    Wie viele Ressourcen braucht Open-Xchange?
    Ich arbeite ja überwiegend mit vServern. Kann ich auch mehrere Domains drauflegen?

    Muss ich erst diesen Artikel durchlaufen und dann den zweiten (http://www.murawski.ch/2010/12/open-xchange-admin-gui-fur-community-edition/)?

  12. avatar

    Hoi Oliver

    Das OX6 kann zwarActive Sync, aber nur mit der geeigneten OXtender Lizenz. Comunity Edition hat dies nicht mit drin.
    Termine und Kontakte lassen sich problemlos im Open-Xchange managen. Es git auch andere „Tools“ um Kalender und Kontakte zu synchronieren, ohne ActiveSync, aber die sind mühsam.

    Ressourcen intensiv ist OX6 gar nicht. Es ist mühsam zum installieren und die seltsamen Passwörter die man sich aufschreiben muss, sosnt hat man dann paar Nerfen weniger. Dennoch bin ich zufrieden mit OX6 und würde nicht mehr weggehen.

    Ich synce ncihts beim Mail, da ich Outlook mit Google Kalender Synce, dies wiederum mit Android und Lotus Notes.
    Mein Ox6 hat Kalender und Kontakte leer, da ich das wie gesagt darauf nicht auch noch brauche.

    Es gibt aber auch da ein sehr einfachen Weg wie man Google Kalender mit OX6 direkt Syncen kann.
    Ich probiere das gleich mal aus.

    Gruss Stefan

  13. avatar

    Ich sag nix mehr, Google Kalender war bei mir aboniert und alle Daten sind drin ^^
    Das nennt sich Social OX und ist unter Abonemente möglich. 😉

    ActiveSync braucht aber Lizenz. Google und andere Anbieter von Haus aus.

    Gruss Stefan

  14. avatar

    Gut… dann weiß ich nicht, welchen Vorteil würde OpenXChange gegenüber meiner Mail-Verwaltung über Plesk Pannel bieten?

    PS: über deine Kommentare wurde ich entgegen meiner Angabe leider NICHT per Mail informiert :/ Daher antworte ich erst jetzt.

  15. avatar

    Mal ein dickes Danke für das HowTo.

    Hab mir meinen OX6 mal wieder „zer-spielt“ und diese Anleitung hilft mir nun zum x. mal 😉

    Gruß,
    Benjamin

Schreibe einen Kommentar

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

eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.

This Blog will give regular Commentators DoFollow Status. Implemented from IT Blögg