Difference between revisions of "Z-Push v2 with Zimbra"

From vwiki
Jump to navigation Jump to search
(Initial creation)
 
m (Minor corrections)
Line 13: Line 13:
The following procedure assumes that you have a web-server that's accessible from the internet.  Mine is an [http://httpd.apache.org/ Apache2] webserver, running on [http://releases.ubuntu.com/lucid/ Ubuntu 10.04 LTS], therefore any references to commands, paths, etc, will have come from that set-up.
The following procedure assumes that you have a web-server that's accessible from the internet.  Mine is an [http://httpd.apache.org/ Apache2] webserver, running on [http://releases.ubuntu.com/lucid/ Ubuntu 10.04 LTS], therefore any references to commands, paths, etc, will have come from that set-up.


If you are upgrading from Z-Push v1 its recommended that you start from scratch; move your old installation to a different folder (eg <code>mv /var/ww/z-push <code>/var/www/z-push-v1</code>), then install v2 to <code>/var/ww/z-push</code>.  Client devices shouldn't need to have their accounts re-added/re-sync'ed following the new install as Z-Push should manage this anyway.  However I found that this doesn't always work properly and have ended up needing to re-add accounts to some mobile devices.  
If you are upgrading from Z-Push v1 its recommended that you start from scratch; move your old installation to a different folder (eg <code>mv /var/ww/z-push /var/www/z-push-v1</code>), then install v2 to <code>/var/ww/z-push</code>.  Client devices shouldn't need to have their accounts re-added/re-sync'ed following the new install as Z-Push should manage this anyway.  However I found that this doesn't always work properly and have ended up needing to re-add accounts to some mobile devices.  


== Set-up ==
== Set-up ==
Line 29: Line 29:
# Move the contents to your webserver folder
# Move the contents to your webserver folder
#* EG <code> mv z-push-2.0.3-1467/* /var/www/z-push/</code>
#* EG <code> mv z-push-2.0.3-1467/* /var/www/z-push/</code>
# Create folders for state (<code>/var/lib/z-push</code>) and log data (<code>/var/log/z-push</code>) and make writable by the webserver (can be altered in <code>config.php</code> file)
# Create folders for state (<code>/var/lib/z-push</code>) and log data (<code>/var/log/z-push</code>) and make writeable by the webserver (can be altered in <code>config.php</code> file)
#* <code> mkdir /var/lib/z-push </code>
#* <code> mkdir /var/lib/z-push </code>
#* <code> mkdir /var/log/z-push </code>
#* <code> mkdir /var/log/z-push </code>
Line 36: Line 36:
#* EG <code> chgrp www-data /var/log/z-push </code>
#* EG <code> chgrp www-data /var/log/z-push </code>
#* EG <code> chmod g+w /var/log/z-push</code>
#* EG <code> chmod g+w /var/log/z-push</code>
# Download the Zimbra Z-Push backend into a <code>/zimbra</code> folder under <code>backend</code>
# Download the Zimbra Z-Push backend into a <code>/zimbra</code> folder under the <code>backend</code> folder
#* EG <code> svn checkout https://zimbrabackend.svn.sourceforge.net/svnroot/zimbrabackend/zimbra-backend/branches/z-push-2 /var/www/z-push/backend/zimbra</code>
#* EG <code> svn checkout https://zimbrabackend.svn.sourceforge.net/svnroot/zimbrabackend/zimbra-backend/branches/z-push-2 /var/www/z-push/backend/zimbra</code>
# Update the Z-Push <code>config.php</code> file as required (see example below - [[#Z-Push_Config|Z-Push Config]])
# Update the Z-Push <code>config.php</code> file as required (see example below - [[#Z-Push_Config|Z-Push Config]])
In theory, it should be working now, in order to test...
# Browse to your server, eg http://as.domain.com/Microsoft-Server-ActiveSync
#* You should be prompted for a username and password (for an account on your Zimbra server)
#* If Apache has failed to deliver the prompt to you, check the webserver log.  Either your website isn't configured correctly or Z-Push experienced a PHP error.
# Enter a valid Zimbra user/pass
#* You should get a page showing "Z-Push - Open Source ActiveSync" which doesn't contain errors - this confirms that connectivity exists between all the required components (Apache, Z-Push, Zimbra), and that they are basically OK.


=== Z-Push Config ===
=== Z-Push Config ===
The below is just an example, see the <code>INSTALL</code> file that comes with the Zimbra backend to work out the correct settings for your environment.
<source lang="php">
<source lang="php">
// Update existing fields in config
// Update existing fields in config
Line 48: Line 57:


// Add to config
// Add to config
define('ZIMBRA_URL', 'https://mail.sandfordit.com')
define('ZIMBRA_URL', 'https://mail.domain.com');
define('ZIMBRA_SYNC_CONTACT_PICTURES', true);
define('ZIMBRA_SYNC_CONTACT_PICTURES', true);
define('ZIMBRA_VIRTUAL_CONTACTS',true);
define('ZIMBRA_VIRTUAL_CONTACTS',true);

Revision as of 13:10, 21 September 2012

The procedure below should get you up and running so you can sync your mobile device to your Zimbra server using Active-Sync provided by Z-Push.

It doesn't include setting up provisioning, which is the Active-Sync feature that enhances security by providing a mechanism to remote wipe your devices, enforce storage encryption etc. See the forum thread above if you want to know how to set it up.

Do not attempt to install Z-Push on the same server as Zimbra.
It is possible, but will require you to hack your Zimbra installation, and performing a Zimbra upgrade will probably break Z-Push.

If you must do it, then your best bet is to install on separate server first. Then, once you know you've got a working installation, try to get Z-Push running on your Zimbra server.

The following procedure assumes that you have a web-server that's accessible from the internet. Mine is an Apache2 webserver, running on Ubuntu 10.04 LTS, therefore any references to commands, paths, etc, will have come from that set-up.

If you are upgrading from Z-Push v1 its recommended that you start from scratch; move your old installation to a different folder (eg mv /var/ww/z-push /var/www/z-push-v1), then install v2 to /var/ww/z-push. Client devices shouldn't need to have their accounts re-added/re-sync'ed following the new install as Z-Push should manage this anyway. However I found that this doesn't always work properly and have ended up needing to re-add accounts to some mobile devices.

Set-up

See the following sections for Apache configuration...

  1. If you don't have them, install subversion and php-curl
    • apt-get install subversion php5-curl
  2. Create a folder for Z-Push on your webserver
    • EG mkdir /var/www/z-push
  3. Download the latest Z-Push version (see http://z-push.sourceforge.net/soswp/index.php?pages_id=39&t=Download) to a temp folder and unpack
  4. Move the contents to your webserver folder
    • EG mv z-push-2.0.3-1467/* /var/www/z-push/
  5. Create folders for state (/var/lib/z-push) and log data (/var/log/z-push) and make writeable by the webserver (can be altered in config.php file)
    • mkdir /var/lib/z-push
    • mkdir /var/log/z-push
    • EG chgrp www-data /var/lib/z-push
    • EG chmod g+w /var/lib/z-push
    • EG chgrp www-data /var/log/z-push
    • EG chmod g+w /var/log/z-push
  6. Download the Zimbra Z-Push backend into a /zimbra folder under the backend folder
  7. Update the Z-Push config.php file as required (see example below - Z-Push Config)

In theory, it should be working now, in order to test...

  1. Browse to your server, eg http://as.domain.com/Microsoft-Server-ActiveSync
    • You should be prompted for a username and password (for an account on your Zimbra server)
    • If Apache has failed to deliver the prompt to you, check the webserver log. Either your website isn't configured correctly or Z-Push experienced a PHP error.
  2. Enter a valid Zimbra user/pass
    • You should get a page showing "Z-Push - Open Source ActiveSync" which doesn't contain errors - this confirms that connectivity exists between all the required components (Apache, Z-Push, Zimbra), and that they are basically OK.

Z-Push Config

The below is just an example, see the INSTALL file that comes with the Zimbra backend to work out the correct settings for your environment.

// Update existing fields in config
define('TIMEZONE', 'Europe/London"');
define('PROVISIONING', false);
$BACKEND_PROVIDER = "BackendZimbra";

// Add to config
define('ZIMBRA_URL', 'https://mail.domain.com');
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_RETRIES_ON_HOST_CONNECT_ERROR',3);
define('ZIMBRA_DEBUG',true);

See http://php.net/manual/en/timezones.php for the correct name for your local timezone

Mobile Device Setup

To sync devices via Active Sync add the account details as an Microsoft Exchange or Active Sync account.

Do not select to sync SMS - the Active Sync protocol that Z-Push uses supports it, but Zimbra does not.