ISPConfig3 und Z-Push
Dieser Beitrag beschreibt die Installation und Konfiguration von Z-Push auf einem Debian Server mit ISPConfig3.
Z-Push ist eine Open-Source Anwendung um ActiveSync kompatible PDAs und Handys zu synchronisieren. Z-Push wurde ursprünglich von der Zarafa Deutschland GmbH entwickelt.
Am Ende dieses Tutorials sollten deine Kunden in der Lage sein, mit Hilfe von Push-Technologie ihre Handys zu synchronisieren.
Anforderungen
Um Z-Push zur Arbeit zu bewegen, musst du die folgenden Anforderungen erfüllen:
Ein komplett eingerichteter Debian Squeeze Server mit ISPConfig3, Apache 2, Php 5 und Dovecot (IMAP Protokol) und ein Handy (Ich nutze ein iPhone 5 für diesen Beitrag).
Anmerkungen
In diesem Beitrag verwende ich den Hostnamen example.com als Hauptdomain des Servers. Ich benutze auch die Email-Domäne blablub.com als Kunden-Domain auf dem Server.
Diese Einstellungen werden sich für dich unterscheiden, also musst du diese ersetzen.
Benötigte Packete
Um Z-Push zum laufen zu bringen muß auf dem Server das php-soap Paket installiert sein, also installieren wir dies mit:
apt-get install php-soap
Z-Push Installation
Wir können uns Z-Push bei zarafa-deutschland.de herunterladen.
Es macht Sinn vor dem Download zu schauen was die aktuellste stabile Version ist und diese zu nutzen.
Wir üblich laden wir die Datei in den /tmp Ordner:
cd /tmp
wget http://zarafa-deutschland.de/z-push-download/final/2.0/z-push-2.0.7-1690.tar.gz
tar xzvf z-push-2.0.7-1690.tar.gz
mkdir -p /usr/share/z-push
cp -R z-push-2.0.7-1690/* /usr/share/z-push/
rm -rf z-push*
Nun ist Z-Push unter /usr/share/z-push installiert.
Z-Push Konfiguration
Z-Push benötigt noch zwei weitere Verzeichnisse um arbeiten zu können: /var/lib/z-push und /var/log/z-push. Also erstellen wir diese nun und setzen auch gleich die korrekten Berechtigungen:
mkdir -p /var/lib/z-push
mkdir -p /var/log/z-push
chown www-data:www-data /var/lib/z-push
chown www-data:www-data /var/log/z-push
chmod 750 /var/lib/z-push
chmod 750 /var/log/z-push
Nun müssen wir die Datei /usr/share/z-push/config.php bearbeiten damit sie auf unsere Umgebung passt:
nano /usr/share/z-push/config.php
Wir passen die Zeitzone (bsp: Europe/Berlin) und den Backend Provider (in unserem Fall BackendIMAP) an:
[...]
define('TIMEZONE', 'Europe/Berlin');
[...]
define('BACKEND_PROVIDER', "BackendIMAP");
[...]
Apache & PHP Konfiguration
Wir wollen, dass unsere Kunden ihre Handys mit ihren eigenen Domain konfigurieren können. Zum Beispiel hat ein Kunde eine Email-Domäne, wie in unserem Beispiel blablub.com, auf unserem Server gespeichert. Wir möchten, dass der Kunde sein Email-Konto auf seinem Handy konfigurieren kann.
Also erstellen wie eine apache.conf Datei in /usr/share/z-push:
nano /usr/share/z-push/apache.conf
AddType application/x-httpd-php .php .php3 .php4 .php5
Alias /Microsoft-Server-ActiveSync /usr/share/z-push/index.php
<Directory "/usr/share/z-push/">
Options -Indexes
AllowOverride None
Order allow,deny
allow from all
</Directory>
Z-Push ist eine Implementierung des ActiveSync-Protokolls, weshalb wir einen solchen Alias zu verwenden haben.
Stelle sicher das PHP folgende Einstellungen hat:
php_flag magic_quotes_gpc off
php_flag register_globals off
php_flag magic_quotes_runtime off
php_flag short_open_tag on
Falls dies nicht der Fall ist, können diese Zeiten in der Datei /usr/share/z-push/apache.conf, im Directory tag, eingefügt werden.
Zur Aktivierung der Konfiguration müssen wir noch einen Symlink anlegen:
ln -s /usr/share/z-push/apache.conf /etc/apache2/sites-enabled/z-push.conf
Nun können wir den Apache neu starten um die Änderungen vor zu nehmen:
/etc/init.d/apache2 restart
Open Basedir PHP Konfiguration
Das letzte, was wir auf unserem Server zu tun haben ist das Open Basedir PHP unserer Haupt-Domain zu konfigurieren. Wir können die Änderungen mithilfe von ISPConfig vornehmen. In diesem Beitrag können wir auf ISPConfig mit https://example.com:8080 zugreifen und melden uns mit Admin-Rechten an. Unter ISPConfig, habe ich eine Website (example.com) erstellt. Nun öffnen wir die Einstellungen der Seite und begeben uns in den Optionen-Tab. Im PHP open_basedir Feld, fügen Sie folgenden Zeile am Ende ein:
:/usr/share/z-push:/var/lib/z-push:/var/log/z-push
Dies gibt dem Web-User Zugang zu den Ordnern /usr/share/z-push, /var/lib/z-push und /var/log/z-push.
Jetzt ist die Konfiguration auf dem Server abgeschlossen.
Handy Konfiguration
Wir können nun testen, ob das Push-Protokoll, mit unserem Email-Konto auf einem Handy funktioniert. Für diesen Beitrag habe ich ein iPhone 5 genutzt, aber es sollte auch mit Android, Windows oder BlackBerry Handys funktionieren. Damit es funktioniert, müssen wir ein Exchange-Konto konfigurieren.
Auf dem iPhone gehen wir in Einstellungen->Mail->Konto hinzufügen. Dann wählen wir Microsoft Exchange. Zuerst müssen wir die Email-Adresse, das Passwort und die Beschreibung des Kontos das wir benutzen wollen, ausfüllen. Im nächsten Schritt, füllen wir das Server-Feld aus. Zum Beispiel, wenn die Email-Adresse [email protected] ist können wir blablub.com für das Server-Feld verwenden. Der Benutzername ist unsere Email-Adresse. Wir können, falls konfiguriert, das SSL-Protokoll verwenden. Schließlich bestätigen wir die Einstellungen mit einem Klick auf OK.
Ab jetzt sollten wir neue Emails auf unserem Handy sofort erhalten wenn sie den Server erreicht haben.