Z-Push/Zimbra New Install - PHP-MAPI error

Take your Zimbra with you!
Post Reply
sharktech
Posts: 5
Joined: Sat Sep 13, 2014 3:35 am

Z-Push/Zimbra New Install - PHP-MAPI error

Post by sharktech »

Hi all
I've just finished installing Zimbra 8 and z-push 2.1 on Centos 6, but ive hit a road block and no amount of searching google and this forum has helped.
This is the error i get when i browse to
I">http://server/microsoft-server-activsync
I change the Backend... to zimbra not zafara in z-push's config.php and this is what i now get.


[QUOTE]Z-Push - Open Source ActiveSync
Version 2.1.1-1788

FatalMisconfigurationException
PHP-MAPI extension is not available
Trace:

Array

(

[0] => Array

(

[file] => /usr/share/z-push/backend/zarafa/zarafa.php

[line] => 54

[function] => include_once

)
[1] => Array

(

[file] => /usr/share/z-push/lib/core/zpush.php

[line] => 429

[args] => Array

(

[0] => /usr/share/z-push/backend/zarafa/zarafa.php

)
[function] => include_once

)
[2] => Array

(

[file] => /usr/share/z-push/lib/core/zpush.php

[line] => 485

[function] => IncludeBackend

[class] => ZPush

[type] => ::

[args] => Array

(

[0] => BackendZarafa

)
)
[3] => Array

(

[file] => /usr/share/z-push/lib/core/zpush.php

[line] => 338

[function] => GetBackend

[class] => ZPush

[type] => ::

[args] => Array

(

)
)
[4] => Array

(

[file] => /usr/share/z-push/lib/core/zpush.php

[line] => 323

[function] => GetStateMachine

[class] => ZPush

[type] => ::

[args] => Array

(

)
)
[5] => Array

(

[file] => /usr/share/z-push/index.php

[line] => 146

[function] => CheckAdvancedConfig

[class] => ZPush

[type] => ::

[args] => Array

(

)
)
)[/QUOTE]
Thanks in Advance
liverpoolfcfan
Elite member
Elite member
Posts: 1096
Joined: Sat Sep 13, 2014 12:47 am

Z-Push/Zimbra New Install - PHP-MAPI error

Post by liverpoolfcfan »

Still looks like it is trying to load the default zarafa.php backend.
The place to request help is at the zimbra backend support page https://sourceforge.net/p/zimbrabackend ... -requests/
13546dalmate
Outstanding Member
Outstanding Member
Posts: 360
Joined: Fri Sep 12, 2014 11:59 pm

Z-Push/Zimbra New Install - PHP-MAPI error

Post by 13546dalmate »

Can you post your configure file?
sharktech
Posts: 5
Joined: Sat Sep 13, 2014 3:35 am

Z-Push/Zimbra New Install - PHP-MAPI error

Post by sharktech »

This is the config i have, i've stripped the licence out to save space when posting :)
[QUOTE]
/**********************************************************************************

* Default settings

*/

// Defines the default time zone, change e.g. to "Europe/London" if necessary

define('TIMEZONE', '');
// Defines the base path on the server

define('BASE_PATH', dirname($_SERVER['SCRIPT_FILENAME']). '/');
// Try to set unlimited timeout

define('SCRIPT_TIMEOUT', 0);
// When accessing through a proxy, the "X-Forwarded-For" header contains the original remote IP

define('USE_X_FORWARDED_FOR_HEADER', false);
// When using client certificates, we can check if the login sent matches the owner of the certificate.

// This setting specifies the owner parameter in the certificate to look at.

define("CERTIFICATE_OWNER_PARAMETER", "SSL_CLIENT_S_DN_CN");
/**********************************************************************************

* Default FileStateMachine settings

*/

define('STATE_DIR', '/var/lib/z-push/');


/**********************************************************************************

* Logging settings

* Possible LOGLEVEL and LOGUSERLEVEL values are:

* LOGLEVEL_OFF - no logging

* LOGLEVEL_FATAL - log only critical errors

* LOGLEVEL_ERROR - logs events which might require corrective actions

* LOGLEVEL_WARN - might lead to an error or require corrective actions in the future

* LOGLEVEL_INFO - usually completed actions

* LOGLEVEL_DEBUG - debugging information, typically only meaningful to developers

* LOGLEVEL_WBXML - also prints the WBXML sent to/from the device

* LOGLEVEL_DEVICEID - also prints the device id for every log entry

* LOGLEVEL_WBXMLSTACK - also prints the contents of WBXML stack

*

* The verbosity increases from top to bottom. More verbose levels include less verbose

* ones, e.g. setting to LOGLEVEL_DEBUG will also output LOGLEVEL_FATAL, LOGLEVEL_ERROR,

* LOGLEVEL_WARN and LOGLEVEL_INFO level entries.

*/

define('LOGFILEDIR', '/var/log/z-push/');

define('LOGFILE', LOGFILEDIR . 'z-push.log');

define('LOGERRORFILE', LOGFILEDIR . 'z-push-error.log');

define('LOGLEVEL', LOGLEVEL_INFO);

define('LOGAUTHFAIL', false);


// To save e.g. WBXML data only for selected users, add the usernames to the array

// The data will be saved into a dedicated file per user in the LOGFILEDIR

// Users have to be encapusulated in quotes, several users are comma separated, like:

// $specialLogUsers = array('info@domain.com', 'myusername');

define('LOGUSERLEVEL', LOGLEVEL_DEVICEID);

$specialLogUsers = array();
// Location of the trusted CA, e.g. '/etc/ssl/certs/EmailCA.pem'

// Uncomment and modify the following line if the validation of the certificates fails.

// define('CAINFO', '/etc/ssl/certs/EmailCA.pem');
/**********************************************************************************

* Mobile settings

*/

// Device Provisioning

define('PROVISIONING', true);
// This option allows the 'loose enforcement' of the provisioning policies for older

// devices which don't support provisioning (like WM 5 and HTC Android Mail) - dw2412 contribution

// false (default) - Enforce provisioning for all devices

// true - allow older devices, but enforce policies on devices which support it

define('LOOSE_PROVISIONING', false);
// Default conflict preference

// Some devices allow to set if the server or PIM (mobile)

// should win in case of a synchronization conflict

// SYNC_CONFLICT_OVERWRITE_SERVER - Server is overwritten, PIM wins

// SYNC_CONFLICT_OVERWRITE_PIM - PIM is overwritten, Server wins (default)

define('SYNC_CONFLICT_DEFAULT', SYNC_CONFLICT_OVERWRITE_PIM);
// Global limitation of items to be synchronized

// The mobile can define a sync back period for calendar and email items

// For large stores with many items the time period could be limited to a max value

// If the mobile transmits a wider time period, the defined max value is used

// Applicable values:

// SYNC_FILTERTYPE_ALL (default, no limitation)

// SYNC_FILTERTYPE_1DAY, SYNC_FILTERTYPE_3DAYS, SYNC_FILTERTYPE_1WEEK, SYNC_FILTERTYPE_2WEEKS,

// SYNC_FILTERTYPE_1MONTH, SYNC_FILTERTYPE_3MONTHS, SYNC_FILTERTYPE_6MONTHS

define('SYNC_FILTERTIME_MAX', SYNC_FILTERTYPE_ALL);
// Interval in seconds before checking if there are changes on the server when in Ping.

// It means the highest time span before a change is pushed to a mobile. Set it to

// a higher value if you have a high load on the server.

define('PING_INTERVAL', 30);
// Interval in seconds to force a re-check of potentially missed notifications when

// using a changes sink. Default are 300 seconds (every 5 min).

// This can also be disabled by setting it to false

define('SINK_FORCERECHECK', 300);
// Set the fileas (save as) order for contacts in the webaccess/webapp/outlook.

// It will only affect new/modified contacts on the mobile which then are synced to the server.

// Possible values are:

// SYNC_FILEAS_FIRSTLAST - fileas will be "Firstname Middlename Lastname"

// SYNC_FILEAS_LASTFIRST - fileas will be "Lastname, Firstname Middlename"

// SYNC_FILEAS_COMPANYONLY - fileas will be "Company"

// SYNC_FILEAS_COMPANYLAST - fileas will be "Company (Lastname, Firstname Middlename)"

// SYNC_FILEAS_COMPANYFIRST - fileas will be "Company (Firstname Middlename Lastname)"

// SYNC_FILEAS_LASTCOMPANY - fileas will be "Lastname, Firstname Middlename (Company)"

// SYNC_FILEAS_FIRSTCOMPANY - fileas will be "Firstname Middlename Lastname (Company)"

// The company-fileas will only be set if a contact has a company set. If one of

// company-fileas is selected and a contact doesn't have a company set, it will default

// to SYNC_FILEAS_FIRSTLAST or SYNC_FILEAS_LASTFIRST (depending on if last or first

// option is selected for company).

// If SYNC_FILEAS_COMPANYONLY is selected and company of the contact is not set

// SYNC_FILEAS_LASTFIRST will be used

define('FILEAS_ORDER', SYNC_FILEAS_LASTFIRST);
// Amount of items to be synchronized per request

// Normally this value is requested by the mobile. Common values are 5, 25, 50 or 100.

// Exporting too much items can cause mobile timeout on busy systems.

// Z-Push will use the lowest value, either set here or by the mobile.

// default: 100 - value used if mobile does not limit amount of items

define('SYNC_MAX_ITEMS', 100);
// The devices usually send a list of supported properties for calendar and contact

// items. If a device does not includes such a supported property in Sync request,

// it means the property's value will be deleted on the server.

// However some devices do not send a list of supported properties. It is then impossible

// to tell if a property was deleted or it was not set at all if it does not appear in Sync.

// This parameter defines Z-Push behaviour during Sync if a device does not issue a list with

// supported properties.

// See also https://jira.zarafa.com/browse/ZP-302.

// Possible values:

// false - do not unset properties which are not sent during Sync (default)

// true - unset properties which are not sent during Sync

define('UNSET_UNDEFINED_PROPERTIES', false);
// ActiveSync specifies that a contact photo may not exceed 48 KB. This value is checked

// in the semantic sanity checks and contacts with larger photos are not synchronized.

// This limitation is not being followed by the ActiveSync clients which set much bigger

// contact photos. You can override the default value of the max photo size.

// default: 49152 - 48 KB default max photo size in bytes

define('SYNC_CONTACTS_MAXPICTURESIZE', 49152);
/**********************************************************************************

* Backend settings

*/

// the backend data provider

define('BACKEND_PROVIDER', 'BackendZimbra');
/**********************************************************************************

* Search provider settings

*

* Alternative backend to perform SEARCH requests (GAL search)

* By default the main Backend defines the preferred search functionality.

* If set, the Search Provider will always be preferred.

* Use 'BackendSearchLDAP' to search in a LDAP directory (see backend/searchldap/config.php)

*/

define('SEARCH_PROVIDER', 'BackendZimbra');

// Time in seconds for the server search. Setting it too high might result in timeout.

// Setting it too low might not return all results. Default is 10.

define('SEARCH_WAIT', 10);

// The maximum number of results to send to the client. Setting it too high

// might result in timeout. Default is 10.

define('SEARCH_MAXRESULTS', 10);


/**********************************************************************************

* Synchronize additional folders to all mobiles

*

* With this feature, special folders can be synchronized to all mobiles.

* This is useful for e.g. global company contacts.

*

* This feature is supported only by certain devices, like iPhones.

* Check the compatibility list for supported devices:

* http://z-push.sf.net/compatibility

*

* To synchronize a folder, add a section setting all parameters as below:

* store: the ressource where the folder is located.

* Zarafa users use 'SYSTEM' for the 'Public Folder'

* folderid: folder id of the folder to be synchronized

* name: name to be displayed on the mobile device

* type: supported types are:

* SYNC_FOLDER_TYPE_USER_CONTACT

* SYNC_FOLDER_TYPE_USER_APPOINTMENT

* SYNC_FOLDER_TYPE_USER_TASK

* SYNC_FOLDER_TYPE_USER_MAIL

*

* Additional notes:

* - on Zarafa systems use backend/zarafa/listfolders.php script to get a list

* of available folders

*

* - all Z-Push users must have full writing permissions (secretary rights) so

* the configured folders can be synchronized to the mobile

*

* - this feature is only partly suitable for multi-tenancy environments,

* as ALL users from ALL tenents need access to the configured store & folder.

* When configuring a public folder, this will cause problems, as each user has

* a different public folder in his tenant, so the folder are not available.
* - changing this configuration could cause HIGH LOAD on the system, as all

* connected devices will be updated and load the data contained in the

* added/modified folders.

*/
$additionalFolders = array(

// demo entry for the synchronization of contacts from the public folder.

// uncomment (remove '/*' '*/') and fill in the folderid

/*

array(

'store' => "SYSTEM",

'folderid' => "",

'name' => "Public Contacts",

'type' => SYNC_FOLDER_TYPE_USER_CONTACT,

),

*/

);
?>

[/QUOTE]
sharktech
Posts: 5
Joined: Sat Sep 13, 2014 3:35 am

Z-Push/Zimbra New Install - PHP-MAPI error

Post by sharktech »

No one able to help
liverpoolfcfan
Elite member
Elite member
Posts: 1096
Joined: Sat Sep 13, 2014 12:47 am

Z-Push/Zimbra New Install - PHP-MAPI error

Post by liverpoolfcfan »

[quote user="sharktech"]No one able to help[/QUOTE]
As I stated before, it still looks like it is trying to load the default zarafa.php backend.
The place to request help is at the zimbra backend support page Z-Push Zimbra Backend / Support Requests You need to provide log files for your issue to be diagnosed. This forum is not appropriate for posting those log file.
sharktech
Posts: 5
Joined: Sat Sep 13, 2014 3:35 am

Z-Push/Zimbra New Install - PHP-MAPI error

Post by sharktech »

[quote user="liverpoolfcfan"]As I stated before, it still looks like it is trying to load the default zarafa.php backend.
The place to request help is at the zimbra backend support page Z-Push Zimbra Backend / Support Requests You need to provide log files for your issue to be diagnosed. This forum is not appropriate for posting those log file.[/QUOTE]
Sorry mate, the person before wanted to see the config file
Cheers
Post Reply