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.
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.