How To Install Z-Push On An ISPConfig 3 Server (Debian Lenny)

Z-push is an implementation of the ActiveSync protocol which is used 'over-the-air' for multi platform ActiveSync devices, including Windows Mobile, iPhone, Sony Ericsson and Nokia mobile devices. With Z-push any groupware can be connected and synced with these devices. This install of Z-Push is on a The Perfect Server - Debian Lenny (Debian 5.0) [ISPConfig 3] setup.

I'm using z-push on my 1st website of the server (client1 / web1). You will need to change the /var/clients/client1/web1/web/ part to your own settings if different.

For z-push to work you will need to have imap enabled for the user.

A quote from a famous person:

This document comes without warranty of any kind! I want to say that this is not the only way of setting up such a system. There are many ways of achieving this goal but this is the way I take. I do not issue any guarantee that this will work for you!

-- Let's get started with installing z-push. --

Make sure that you are doing this as su user (root). Also make sure that you are using the latest version of z-push. More info @ At time of writing this "howto" it was version z-push-1.3RC2.

* Download, un-tar and move directory:

cd /tmp
tar zxf z-push-1.3RC2.tar.gz
mv z-push /var/clients/client1/web1/web/

* Edit the z-push/config.php file.

cd /var/clients/client1/web1/web/z-push
nano config.php

- Make sure that date_default_timezone_set (line 14) is set to your time zone.
- Set $BACKEND_PROVIDER to BackendIMAP (line 49).

NOTE: I also needed to add as small "custom fix" to make emails send from the Windows Mobile Phone to show the senders e-mail address. I'm not sure if this was due to my setup of the mailserver or if it was my Windows Mobile Phone.
If you are having the same problem as I did, than change define('IMAP_DEFAULTFROM', '') (line 74) to define('IMAP_DEFAULTFROM', ' ') (note the space between the ' ')

* Remove the file backend/ics.php:

rm /var/clients/client1/web1/web/z-push/backend/ics.php

* Make sure that directory z-push/state is writable for your webserver:

chmod 777 /var/clients/client1/web1/web/z-push/state

* Create a .htaccess file:

nano .htaccess

And add this to it:

php_flag magic_quotes_gpc off
php_flag register_globals off
php_flag magic_quotes_runtime off
php_flag short_open_tag on

You can also add the above to the Apache Directives field in ISPconfig3.

* Add Alias /Microsoft-Server-ActiveSync /var/clients/client1/web1/web/z-push/index.php to your httpd.conf:

cd /etc/apache2/
nano httpd.conf

At the end of httpd.conf add:

Alias /Microsoft-Server-ActiveSync /var/clients/client1/web1/web/z-push/index.php

* Restart Apache:

/etc/init.d/apache2 restart

* Set website PHP mode to: Mod-PHP

Log in to ISPconfig3 and go the the tab Sites > Domain. Now select the website that you are installing z-push to, and set PHP to Mod-PHP. When done click Save.

Now go to, and with a bit of luck you will get a login popup screen. Use the email address and password from an IMAP user account. After this you will get an error:

GET not supported
This is the z-push location and can only be accessed by Microsoft ActiveSync-capable devices.

This error is correct, as you are accessing the z-push by web browser. All you need to do now is set up your mobile phone, and you've got push working!
The URL of the server to use in your mobile phone will be You do not need to add z-push or Microsoft-Server-ActiveSync.

If you are having problems, than you can create a debug.txt in the root directory of z-push. The debug.txt will log all activity, and give you a lot of extra info to find the problem(s).

touch /var/clients/client1/web1/web/z-push/debug.txt
chmod 777 /var/clients/client1/web1/web/z-push/debug.txt
Share this page:

4 Comment(s)