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.