Open Xchange installieren

Nach diversen Versuchen Open Xchange zu installieren, unter Debian, unter CentOS mit Plesk Panel, die alle fehlgeschlagen sind, nun noch ein Versuch unter CentOS „ohne Alles“.

Eine recht gute Anleitung für die Installation findet man eigentlich direkt auf der Seite von OX, ich will hier aber auch auf ein paar Kleinigkeiten hinweisen und außerdem die (eventuellen) Besonderheiten bei einem Virtuellen Root Server (von Host Europe) vermerken.

Open Xchange AppSuite auf CentOS

Also starten wir mit der Anleitung speziell für CentOS von der OX Seite:

http://oxpedia.org/wiki/index.php?title=AppSuite:Open-Xchange_Installation_Guide_for_CentOS_6

Es wird mit Hilfe dieser Anleitung eine Single Server Installation durchgeführt mit einer Single Open-Xchange Instanz (kein Cluster, was mit OX auch möglich ist) und einer Datenbank mit nur einem Datenbank Service. Es wird nur die Open Xchange Installation beschrieben und die absolute Basis Konfiguration, keine Mailserver Installation, oder Konfiguration und auch keiner weiterführende OX Konfiguration.

Voraussetzungen

Was muß an Voraussetzungen gewährleistet sein?

Plain installed CentOS

Ein ohne Schnick-Schnack installiertes CentOS, also eine reine Basis-Installation. Ob dies bei mir der Fall ist, werde ich während der Installation erfahren, denn ich habe einen Virtuellen Root Server und da weiß man nie genau was alles installiert ist. Wenn zum Beispiel Plesk Panel installiert ist, dann ist auch MySQL drauf und schon mit Usern und vor allem Passwörtern versehen, was für diese Installationsanleitung ungeeignet ist.

A configured Internet connection

Allerdings sollte der Server über eine Internetverbindung verfügen, was aber bei einem gehosteten Server im Netz wohl durchaus gegeben ist, wie sollte man sonst selber darauf zugreifen können.

httpd – Apache web server

Der Apache Web Server sollte installiert sein, dies muß ich erstmal überprüfen, denn bei einer echten Plain Installation ist kein Web Server dabei. Ich muß also auf den Server, am besten über SSH-Konsole, ich verwende auf meinem Windows Rechner für diesen Zweck PuTTY, wie wohl die meisten. Dies hier ist keine PuTTY Anleitung, also verbindet Euch auf Euren Server.

Also bei mir ist der Apache2 installiert, nur wird er nicht beim Serverstart mitgestartet, er steht in allen runlevels auf off, dies erfährt man indem man mal

chkconfig –list –Levels eingibt

dann erfährt man was so alles installiert ist, aber nicht gestartet wird. Bei mir also auch httpd, so heißt Apache unter CentOS. Sollte der Diesnt noch nicht laufen, dann mit

/etc/init.d/httpd start

starten bitte. Mit einem kurzen Aufruf des Servers über einen Browser kann man prüfen ob der Apache auch arbeitet, denn wenn er es tut bekommt man eine Seite wie diese hier angezeigt.

2015009_231008_Apache_Server_Test_Page

Also bei mir erstmal alles in Butter. Weiter im Text.

Install vim first – Editor installieren

Dann wird in der Anleitung noch darauf hingewiesen, daß der VIM (Weiterentwicklung des VI) nicht standardmäßig installiert ist und deshalb auch noch nachinstalliert werden muß. Ich mochte schon den VI nicht und mit dem VIM fühle ich mich nicht viel wohler, also werde ich stattdessen den nano installieren, auch wenn die Linux Puristen jetzt die Nase rümpfen mögen.

yum install nano

Das System checkt und fragt nach ob die Downloadgröße so in Ordnung ist man sagt yes und los geht’s, zack complete.

Also ich würde sagen, ich habe die Voraussetzungen für die Installation von Open Xchange erfüllt.

PHP Prüfung

Nur um mich zu versichern ob PHP installiert und in welcher Version, habe ich die Datei

/var/www/html/info.php

mit folgendem Inhalt erzeugt

<?php
phpinfo();
?>

Dann habe ich auf meiner Internetseite, auf der ja das Apache Testbild läuft, hinten noch info.php rangehängt und schwups erzählt mir der Server die Version von PHP die installiert ist und hunderte von PHP Einstellungen und Parametern noch dazu. (Sicherheitshinweis, bitte prüfen, ob Ihr die Datei da stehen lassen könnt und wollt.)

Eventuell bekommen wir während der Installation noch Probleme mit MySQL, da MySQL schon installiert ist und ich nicht weiß ob schon Passwörter vergeben wurden und welche, aber das werden wir während der Installation erfahren. Los geht’s jetzt endlich.

Ich habe sicherheitshalber auch noch die Java Installation geprüft (Debian z.B. installiert sowas nämlich nicht mit) mit dem Befehl

java -v

spuckt mir das System eine Version aus und ich bin zufrieden, sollte Java nicht drauf sein, ein kurzes

yum install Java

erledigt dies dann für euch

Open Xchange Repositories hinzufügen

Um Open Xchange downloaden und installieren zu können ist der einfachste Weg, die Quellen dem Installer yum bekannt zu machen, dann überprüft der die in Zukunft immer mit und man kann auch ganz normal über yum installieren.

Wir erzeugen also ein Software-Repository-File für Open-Xchange

nano /etc/yum.repos.d/ox.repo

Folgendes wird in diese Datei eingetragen/reinkopiert und gespeichert:

[ox-appsuiteui]
name=Open-Xchange-appsuiteui
baseurl=http://software.open-xchange.com/products/appsuite/stable/appsuiteui/RHEL6/
gpgkey=http://software.open-xchange.com/oxbuildkey.pub
enabled=1
gpgcheck=1
metadata_expire=0m

[ox-backend]
name=Open-Xchange-backend
baseurl=http://software.open-xchange.com/products/appsuite/stable/backend/RHEL6/
gpgkey=http://software.open-xchange.com/oxbuildkey.pub
enabled=1
gpgcheck=1
metadata_expire=0m

Das wars schon

Update Repositories and installing packages

Repositories aktualisieren

Wir aktualisieren also die Pakete des Installers

yum update

und fertig aktualisiert.

Installation Open-Xchange

Kommen wir nun endlich zur eigentlichen Installation. Ich weiß, daß auf meinem System schon MySQL installiert ist, ich führe es der Vollständigkeit halber im Installationsbefehl trotzdem nochmal auf, also folgender Befehl installiert alles:

yum install mysql-server open-xchange open-xchange-authentication-database open-xchange-grizzly \
  open-xchange-admin open-xchange-appsuite \
  open-xchange-appsuite-backend open-xchange-appsuite-manifest

Ich muß zweimal mit yes bestätigen, Download und noch etwas und eine Weile warten, denn ein bißchen was ist ja schon zu installieren und dann ist das auch erledigt.

Open Xchange Konfiguration

OX User

Als erstes zu den Usern die wir verwenden, hier sollte man von allzuviel Kreativität Abstand nehmen, außer man kennt OX schon eine Weile, hat es mehrfach installiert und weiß an welchen Stellen überall in den diversen Installations- und Konfigurationsdateien man dann etwas ändern muß. Anfängern würde ich also empfehlen die Usernamen zu belassen (die kommen nämlich in einigen der Standardinstallationsscripte drin vor) und wirklich nur die Passwörter durch eigene ordentliche Passwörter zu ersetzen. Die User müssen nicht als Systembenutzer angelegt werden.

MySQL Datenbank User

Da wäre der MySQL Datenbank User für Open Xchange:

Username:      openexchange
Password:       db_Password (bitte durch eigenes ersetzen)
Aufgabe:          Führt alle Datenbankoperationen aus

Open Xchange Admin Master

Dann der Open Xchange Admin Master, also der Administrator für die gesamte OX Installation:

Username:     oxadminmaster
Password:      admin_master_Password (bitte durch eigenes ersetzen)
Aufgabe:         Contexte administrieren, Serverkonfiguration

Context Admin

Der Context Admin ist Administrator für jeweils einen Context innerhalb von OX

Username:     oxadmin
Password:      admin_Password (bitte durch eigenes ersetzen)
Aufgabe:         Administriert User/Gruppen/Ressourcen innerhalb seines Kontextes

Vorbereitungen

Um OX konfigurieren zu können muß der MySQL Server laufen. Wir starten den also, nur falls er noch nicht läuft:

/etc/init.d/mysqld start

Bei mir war es eindeutig der erste Start, er brachte diverse Hinweise wie ich MySQL abzusichern hätte usw., aber das erledigen wir bewußt erst nach der OX Installation, die mag nämlich gar nicht wenn es schon Passwörter und so was gibt.

Des Weiteren hält OX es für eine gute Idee den Open Xchange Pfad zu Standardpfadangabe des Systems hinzuzufügen, weil dies macht das starten von OX Befehlen und Programmen einfacher, also tun wir dies.

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

Mit Hilfe des initconfigdb scriptes konfigurieren wir nun die OX Konfigurations Datenbank.

/opt/open-xchange/sbin/initconfigdb --configdb-pass=db_password -a

erledigt, hat funktioniert.

Der Parameter -a sorgte dafür, daß ein Administrator Account zu MySQL hinzugefügt wurde, mit dem wir später dann auch die Datenbank für OX anlegen können. War MySQL schon angelegt, kann dies zu Problemen in der weiteren Installation führen, man sollte also bei Problemen in den nächsten schritten in jedem Falle prüfen, ob das mit dem DB-User geklappt hat und ob der wirklich alle Privilegien besitzt.

Na dann starten wir mal ohne viel Vorrede den oxinstaller

/opt/open-xchange/sbin/oxinstaller --no-license \
--servername=sokrates --configdb-pass=db_password \
--master-pass=admin_master_password --network-listener-host=localhost --servermemory 1536

Und auch das funktionierte anstandslos, wunderbar.

Die offizielle Anleitung läßt mich jetzt Einstellungen für ein Mailserver Login vornehmen, aber dies möchte ich später tun, also weiter im Test.

Starten wir den OX Service

/etc/init.d/open-xchange start

Done OK, super.

Nun müssen wir noch den neuen Server bei der Open Xchange Konfigurations-Datenbank anmelden

/opt/open-xchange/sbin/registerserver -n sokrates -A oxadminmaster -P admin_master_password

Server 1 registered, heißt es hat geklappt.

Nun legen wir ein Verzeichnis an, in dem der Server Dateien wie Anhänge usw. ablegen kann und damit OX auch darauf zugreifen kann geben wir dem von den Scripten erzeugten Systemuser open-xchange auch die Rechte auf dieses Verzeichnis

mkdir /var/opt/filestore
chown open-xchange:open-xchange /var/opt/filestore

Und auch das scheint funktioniert zu haben. Bleibt noch das Verzeichnis auch als Filestore bei OX zu registrieren:

/opt/open-xchange/sbin/registerfilestore -A oxadminmaster -P admin_master_password \
-t file:/var/opt/filestore -s 1000000

filestore 2 registered, heißt auch das hat geklappt.

So, nun noch die OX Datenbank registrieren in der Open Xchange all seine Sachen ablegen kann und dann sollte es losgehen.

/opt/open-xchange/sbin/registerdatabase -A oxadminmaster -P admin_master_password \
-n oxdatabase -p db_password -m true

database 3 registered, heißt,h at auch geklappt.

Service Konfigurieren

Jetzt wo der Open Xchange Server läuft und die Datenbank dazu läuft müssen wir den Apache so konfigurieren, daß er auch das OX GUI anzeigt. Außerdem ist es empfohlen die Erweiterungen mod_expires und mod_deflate einzuschalten. Als erstes aber löschen wir die aktuelle Welcome Message unseres Apache Servers, obwohl uns diese bisher so viel Freude bereitet hat.

rm /etc/httpd/conf.d/welcome.conf

Begrüßung gelöscht. Jetzt konfigurieren wir das mod_Proxy_http Modul

nano /etc/httpd/conf.d/proxy_http.conf

folgender Inhalt soll in die Datei

LoadModule proxy_http_module modules/mod_proxy_http.so

<IfModule mod_proxy_http.c>
   ProxyRequests Off
   ProxyStatus On
   # When enabled, this option will pass the Host: line from the incoming request to the proxied host.
   ProxyPreserveHost On
   # Please note that the servlet path to the soap API has changed:
   <Location /webservices>
       # restrict access to the soap provisioning API
       Order Deny,Allow
       Deny from all
       Allow from 127.0.0.1
       # you might add more ip addresses / networks here
       # Allow from 192.168 10 172.16
   </Location>
 
   # The old path is kept for compatibility reasons
   <Location /servlet/axis2/services>
       Order Deny,Allow
       Deny from all
       Allow from 127.0.0.1
   </Location>
   
   # Enable the balancer manager mentioned in
   # http://oxpedia.org/wiki/index.php?title=AppSuite:Running_a_cluster#Updating_a_Cluster
   <IfModule mod_status.c>
     <Location /balancer-manager>
       SetHandler balancer-manager
       Order Deny,Allow
       Deny from all
       Allow from 127.0.0.1
     </Location>
   </IfModule>
   
   <Proxy balancer://oxcluster>
       Order deny,allow
       Allow from all
       # multiple server setups need to have the hostname inserted instead localhost
       BalancerMember http://localhost:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 route=OX1
       # Enable and maybe add additional hosts running OX here
       # BalancerMember http://oxhost2:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 route=OX2
      ProxySet stickysession=JSESSIONID|jsessionid scolonpathdelim=On
      SetEnv proxy-initial-not-pooled
      SetEnv proxy-sendchunked
   </Proxy>
   
   # The standalone documentconverter(s) within your setup (if installed)
   # Make sure to restrict access to backends only
   # See: http://httpd.apache.org/docs/$YOUR_VERSION/mod/mod_authz_host.html#allow for more infos
   #<Proxy balancer://oxcluster_docs>
   #    Order Deny,Allow
   #    Deny from all
   #    Allow from backend1IP
   #    BalancerMember http://converter_host:8009 timeout=100 smax=0 ttl=60 retry=60 loadfactor=50 keepalive=On route=OX3
   #    ProxySet stickysession=JSESSIONID|jsessionid scolonpathdelim=On
   #	   SetEnv proxy-initial-not-pooled
   #    SetEnv proxy-sendchunked
   #</Proxy>
   # Define another Proxy Container with different timeout for the sync clients. Microsoft recommends a minimum value of 15 minutes.
   # Setting the value lower than the one defined as com.openexchange.usm.eas.ping.max_heartbeat in eas.properties will lead to connection
   # timeouts for clients.  See http://support.microsoft.com/?kbid=905013 for additional information.
   #
   # NOTE for Apache versions < 2.4:
   # When using a single node system or using BalancerMembers that are assigned to other balancers please add a second hostname for that
   # BalancerMember's IP so Apache can treat it as additional BalancerMember with a different timeout.
   #
   # Example from /etc/hosts: 127.0.0.1	localhost localhost_sync
   #
   # Alternatively select one or more hosts of your cluster to be restricted to handle only eas/usm requests
   <Proxy balancer://eas_oxcluster>
      Order deny,allow
      Allow from all
      # multiple server setups need to have the hostname inserted instead localhost
      BalancerMember http://localhost_sync:8009 timeout=1900 smax=0 ttl=60 retry=60 loadfactor=50 route=OX1
      # Enable and maybe add additional hosts running OX here
      # BalancerMember http://oxhost2:8009 timeout=1800  smax=0 ttl=60 retry=60 loadfactor=50 route=OX2
      ProxySet stickysession=JSESSIONID|jsessionid scolonpathdelim=On
      SetEnv proxy-initial-not-pooled
      SetEnv proxy-sendchunked
   </Proxy>
   
   # When specifying additional mappings via the ProxyPass directive be aware that the first matching rule wins. Overlapping urls of
   # mappings have to be ordered from longest URL to shortest URL.
   # 
   # Example:
   #   ProxyPass /ajax      balancer://oxcluster_with_100s_timeout/ajax
   #   ProxyPass /ajax/test balancer://oxcluster_with_200s_timeout/ajax/test
   #
   # Requests to /ajax/test would have a timeout of 100s instead of 200s 
   #   
   # See:
   # - http://httpd.apache.org/docs/current/mod/mod_proxy.html#proxypass Ordering ProxyPass Directives
   # - http://httpd.apache.org/docs/current/mod/mod_proxy.html#workers Worker Sharing
   ProxyPass /ajax balancer://oxcluster/ajax
   ProxyPass /appsuite/api balancer://oxcluster/ajax
   ProxyPass /drive balancer://oxcluster/drive
   ProxyPass /infostore balancer://oxcluster/infostore
   ProxyPass /publications balancer://oxcluster/publications
   ProxyPass /realtime balancer://oxcluster/realtime
   ProxyPass /servlet balancer://oxcluster/servlet
   ProxyPass /webservices balancer://oxcluster/webservices

   #ProxyPass /documentconverterws balancer://oxcluster_docs/documentconverterws
 
   ProxyPass /usm-json balancer://eas_oxcluster/usm-json
   ProxyPass /Microsoft-Server-ActiveSync balancer://eas_oxcluster/Microsoft-Server-ActiveSync

</IfModule>

Viele Zeilen, aber man kann ja kopieren.

Jetzt manipulieren wir noch die Default Website Settings um das Open Xchange GUI anzuzeigen

nano /etc/httpd/conf.d/ox.conf

und dies der Inhalt der neuen Datei

<VirtualHost *:80>
       ServerAdmin webmaster@localhost

       DocumentRoot /var/www/html
       <Directory /var/www/html>
               Options Indexes FollowSymLinks MultiViews
               AllowOverride None
               Order allow,deny
               allow from all
               RedirectMatch ^/$ /appsuite/
       </Directory>

       <Directory /var/www/html/appsuite>
               Options None +SymLinksIfOwnerMatch
               AllowOverride Indexes FileInfo
       </Directory>
</VirtualHost>

Hoffentlich klappt das alles.

Das Installationsdokument möchte gerne, daß ich HTTPS konfiguriere, aber auch das spare ich mir für später, erstmal soll es laufen, dann wird abgesichert.

Deshalb werden wir jetzt den Webserver neu starten um die gemachten Änderungen auch wirksam werden zu lassen.

/etc/init.d/httpd restart

Um sicherzustellen, daß bei einem Neustart des Servers auch alle benötigten Diesnte mit hochkommen, tragen wir die jetzt in die entsprechenden Runlevels ein.

$ chkconfig --level 345 mysqld on
$ chkconfig --level 345 httpd on
$ chkconfig --level 345 open-xchange on

Kontext und User anlegen

Um wenigstens testen zu können sollten wir einen Admin und einen Testuser anlegen.

Wir kreieren also Kontext 1 als Default Context und den dazu gehörigen Administrator und dann noch einen Testuser in diesem Kontext, mit dem wir testen können. Das soll es dann gewesen sein.

/opt/open-xchange/sbin/createcontext -A oxadminmaster -P admin_master_password -c 1 \
-u oxadmin -d "Context Admin" -g Admin -s User -p secret -L defaultcontext \
-e oxadmin@example.com -q 1024 --access-combination-name=all

context 1 created, bedeutet es hat geklappt, nun noch der Testuser

/opt/open-xchange/sbin/createuser -c 1 -A oxadmin -P secret -u testuser \
-d "Test User" -g Test -s User -p secret -e testuser@example.com \
--imaplogin testuser --imapserver 127.0.0.1 --smtpserver 127.0.0.1

user 3 in context 1 created, heißt auch das hat funktioniert, nun folgt der ultimative Test, wir versuchen uns anzumelden.

ES HAT FUNKTIONIERT.

Schreibe einen Kommentar

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