Z-Push

From vwiki
Revision as of 07:04, 11 May 2012 by Sstrutt (talk | contribs) (Added category)
Jump to navigation Jump to search

Z-Push installation instructions. These instructions assume that you already have a working Apache web server with PHP running on which to run the Z-Push and Zimbra Backend PHP scripts.

Z-Push provides the ActiveSync functionality for your mobile device, the Zimbra Backend interfaces this with the Zimbra server using its SOAP API.

Z-Push is constantly being updated, and the main forum thread in which to keep track of updates and bugfixes is here - http://www.zimbra.com/forums/mobility/26536-z-push-zimbra-backend-push-email-contacts-appointments-tasks.html

Note that I've now documented how to get HTML formatted emails from your Zimbra server (the below only supports plain text email). I only ever implemented the below myself as a proof of concept, I don't know ho well it works. I do use the HTML version, it works!


  1. Download the latest version from https://developer.berlios.de/project/filelist.php?group_id=8963
  2. Extract the download
    • eg tar -zvf z-push-1.5.4-707.tar.gz
  3. Copy the software to your web root
    • cp -r z-push-1.5.4-707 /var/www/z-push
  4. Allow write access to the state folder
    • EG chgrp www-data /var/www/z-push/state
    • EG chmod g+w /var/www/z-push/state
  5. Edit config.php settings for
    1. Timezone (set to your local timezone)
      • EG date_default_timezone_set("Europe/London");
    2. Provisioning (security - needs to be relaxed for older mobile devices)
      • EG define('LOOSE_PROVISIONING', true);
    3. Backend provider
      • EG $BACKEND_PROVIDER = "BackendZimbra";
    4. and append the following Zimbra Backend settings
      • // ************************
      • // BackendZimbra settings
      • // ************************
      • define('ZIMBRA_URL', 'https://NameOfYourDoman.com'); //Please do not put a trailing forward slash at the end of the url
      • define('ZIMBRA_USER_DIR', 'zimbra');
      • define('ZIMBRA_SYNC_CONTACT_PICTURES', true);
      • define('ZIMBRA_VIRTUAL_CONTACTS',true);
      • define('ZIMBRA_VIRTUAL_APPOINTMENTS',true);
      • define('ZIMBRA_VIRTUAL_TASKS',true);
      • define('ZIMBRA_IGNORE_EMAILED_CONTACTS',true);
      • define('ZIMBRA_HTML',true);
      • define('ZIMBRA_ENFORCE_VALID_EMAIL',true);
      • define('ZIMBRA_SMART_FOLDERS',true);
      • define('ZIMBRA_DEBUG',true);
  6. Create file for debug to go to
    • touch /var/www/z-push/debug.txt
    • chmod 777 /var/www/z-push/debug.txt
  7. Install PHP cURL
    • apt-get install php5-curl
  8. Download z-RTF.php to the include directory
  9. Add an alias to the Apache site config (eg /etc/apache2/sites-enabled/000-default ), and all php config in .htaccess
    • /Microsoft-Server-ActiveSync /var/www/z-push/index.php
    • <Directory /var/www/z-push>
    • AllowOverride All
    • </Directory>
  10. Create a .htaccess in root of z-push with the following entries
    • php_flag magic_quotes_gpc off
    • php_flag register_globals off
    • php_flag magic_quotes_runtime off
    • php_flag short_open_tag on
  11. Download the latest Zimbra Backend release from http://downloads.sourceforge.net/project/zimbrabackend and untar to backend folder