This manual is deprecated. Please visit https://groupoffice.readthedocs.io for the latest documentation.

Difference between revisions of "Troubleshooting"

From Group-Office Groupware and CRM Documentation
Jump to: navigation, search
Line 216: Line 216:
  
 
Now uploading unicode named files should work!
 
Now uploading unicode named files should work!
 +
 +
 +
==E-mail is slow==
 +
Group-Office is able to handle thousands of e-mails in a mailbox. A mailbox with 10.000 messages should be displayed within a second. Here are some tips if you experience slow mail performance:
 +
 +
#Always use IMAP and not POP-3
 +
#There are two different storage formats for e-mail. These formats are mbox and maildir. It's higly recommended to use maildir format. With mbox format all e-mail messages are stored in one single plain text file. You can imagine that this is not very efficient when you have hundreds or thousands of e-mails in a mailbox. With Maildir the messages are stored in a much smarter way which doesn't cause the system to slow down when the mailbox size grows. With mbox format it's also not possible to create subfolders inside folders that contain messages. A folder contains either subfolders or messages but not both. To summarize maildir is faster and offers more flexibility.
 +
#Make sure the network connection is fast between Group-Office and the IMAP server. Ideally the servers are located in the same network. If you can't do this you might want to fetch mail [[Use_POP3_on_a_remote_catch-all_mailbox_for_local_delivery on the local server with fetchmail]].

Revision as of 14:50, 22 April 2010

General instructions

  1. Make sure error logging is enabled in php.ini (add log_errors=on to /etc/../php.ini)
  2. Make sure Group-Office logging is enabled in config.php ( set $config['log']=true;)
  3. Check the Apache error logs. They are the most important for problem solving!
  4. Search this site
  5. Search the forums
  6. If you have a support contact send a good description of the problem and relevant error messages to Intermesh.

Post installation problems

I get the error: "The Group-Office javascripts were not loaded. Check the host property in config.php and see if the file_storage_path folder and it's contents are writable"

Check the value of $config['file_storage_path'] in config.php. The path here should point to an existing folder for and should have a trailing slash. The folder and it's contents should be writable. If this is all right then you should check your webserver log for errors.

I get the error: "The Group-Office javascripts were not loaded. Your local_url and local_path configuration properties are probably configured incorrectly."

This means that the local_url or local_path property in the config.php are not defined correctly. Group-Office needs a directory to write cached javascript files that are accessible through the webserver. So when Group-Office is loaded it will load http://url.to.go/<local_url>/cache/somescript.js. The URL is not valid so you must correct it.

It can also be that Apache does not have write permissions to the local directory. On a Debian server this can be solved with:

chown www-data:www-data /path.to/local

I don't get past "Loading base system " or "Loading modules" The screen just hangs

Take the following steps:

  1. View the source of the HTML page to see if there is an error in the source. Press CTRL+U to view the source.
  2. Check if there is a Javascript error. In Internet Explorer there is a warning Icon at the toolbar and Firefox shows the errors in the Error console. Firebug is also a useful tool to track down javascript errors but is generally only useful for developers.
  3. Check your PHP or webserver error log.

allowed memory size was exhausted

Raise the memory_limit setting in /etc/php5/apache2/php.ini or /etc/php.ini. Path of php.ini might be different on your system.

Problems with synchronization

If you have problems with synchronizing Group-Office then please take following steps first before contacting Intermesh:

  1. Double check the setup and read the instructions
  2. Make sure error logging is enabled in php.ini
  3. Make sure Group-Office logging is enabled in config.php ( set $config['log']=true;)
  4. Check the logs they are very important. There should be a Group-Office log file in $config['file_storage_path'] /log/sync/ as well. If it's not there you probably have a file permission problem. Group-Office tries to move the log file from the temporary directory to a user log file directory. It could be that this process fails and sync fails as well.
  5. Check if the solution is on this page
  6. Try performing a 'Slow sync'. With a slow sync all data gets send to Group-Office and Group-Office sends back all missing data.
  7. Try performing a sync in mode: 'Replace all local data' (Name might differ per device). The device will delete all local calendar and contact data and Group-Office will send all data to the client. Of course only do this when the Group-Office data is leading.
  8. Search the forums
  9. Send to Intermesh: Apache error log (eg /var/log/apache/error.log), Group-Office error log (eg /home/groupoffice/log/sync/username.log), Client error log and a description of what happens exactly. Without the logs we can't do anything!

Common errors

"No SyncML response" or "Server Failure: server returned error code -1" or "Invalid hostaddress"
The server probably didn't reply because an error occurred. Check the apache error log for errors. Also with the Synthesis client check if you have set the Server Version to SyncML 1.1 and not 1.2. You can find that setting at Extras->Settings->Options

Not found (404)
You probably setup an invalid remote database for contacts, calendar or todo's. Please check the installation instructions for the correct values (vcal, vcaltodo, vtodo, vcard etc...)

PHP Fatal error: Call to a member function children() on a non-object in ...
If you have the Synthesis client please check if the server version is set to SyncML 1.1

wbxml to xml or vice versa conversion failed
Check if $config['cmd_wbxml2xml'] and $config['cmd_xml2wbxml'] are set and check if these commands are actually executable by apache.

wbxml2xml failed: Unknown Public ID
[Group-Office][20070619 16:24][notloggedin]: Fatal error: wbxml2xml conversion failed
[Group-Office][20070619 16:24][notloggedin]: XML error: no element found at line 1
Check if you have libwbxml2 version 0.9.2 or higher installed. Any earlier version will fail.

Or you have set the client to use SyncML version 1.2. In that case change it to 1.1

wbxml2xml failed: Unexpected End Of WBXML Buffer
[Group-Office][20070619 18:22][notloggedin]: Fatal error: wbxml2xml conversion failed
[Group-Office][20070619 18:22][notloggedin]: XML error: no element found at line 1
Check if you have libwbxml2 version 0.9.2 or higher installed. Any earlier version will fail.

Problems with creating files or folder

If you are having errors like these:

Warning: mkdir() [function.mkdir]: Permission denied
Failed to create folder(s): Array(..,..,)

Then you have to take the following steps:

  1. Check the filesystem permissions of the paths mentioned in the error
  2. Check if safe_mode is enabled and denies you access
  3. Check if open_basedir is set and denies you access

The bottom line is that the Apache user (Usually apache or www-data) needs write permissions on the following folders defined in config.php:

$config['file_storage_path']
$config['tmpdir']

You can put the folowing script in the directory where Group-Office.php is to do a quick test:

<?php
require('Group-Office.php');

echo 'Using create mode: '.$GO_CONFIG->create_mode;

mkdir($GO_CONFIG->file_storage_path.'test');
mkdir($GO_CONFIG->tmpdir.'test');

Disable open_basedir in Plesk

If you get errors with "open_basedir restriction in effect" you should disable open_basedir or change $config['file_storage_path'] and $config['tmpdir'] to an allowed path within the open_basedir setting.

To disable open_basedir in a Plesk managed server do the following:

Login as root:
vi /home/httpd/vhosts/domain.com/conf/vhost.conf

Enter:

<Directory /var/www/vhosts/domain.com/httpdocs><br />
php_admin_flag safe_mode off
php_admin_value open_basedir none
php_admin_flag magic_quotes_gpc off
php_admin_flag log_errors on
</Directory>

Reload the conf into httpd.include:

PLESK 5/6
/usr/local/psa/admin/bin/my_apci_rst

PLESK 7
/usr/local/psa/admin/sbin/websrvmng -u --vhost-name=domain.com

Now it should be disabled

Restoring lost data from a MySQL backup

To restore a backup load the backup database into a seperate database and use PhpMyAdmin to export the right data easily. We will show you an example of how to restore a single calendar. This way of restoring will leave all existing appointments intact but it will restore lost appointments. Login to PhpMyadmin and select the backup database. Browse the cal_calendars table and find out the "id" of the calendar you want to store.

Calendar restore

Now delete all calendar data that does not belong to that calendar (replace <calendar_id> with your calendar ID):

DELETE FROM cal_calendars WHERE id!=<calendar_id>;
DELETE FROM cal_events WHERE calendar_id!=<calendar_id>;
DELETE FROM cal_exceptions WHERE event_id NOT IN (SELECT id FROM cal_events);
DELETE FROM cal_participants WHERE event_id NOT IN (SELECT id FROM cal_events);

Now we have our data prepared. We need to export the right tables using INSERT IGNORE commands. This will insert only non-existent records.

In PhpMyAdmin click at the Database name at the left frame so that you view all tables in the main screen. Now click at "Export". Select the tables:

  1. cal_events
  2. cal_events_calendars
  3. cal_calendars
  4. cal_participants
  5. go_acl
  6. go_acl_items

Uncheck the Structure box
Select "IGNORE INSERTS" and "COMPLETE INSERTS"
Select export type "INSERT"
Save the file and load it into your main database make a backup of your database before you do this in case something goes wrong.


CMS website restore

In this example you want to restore the website with id=1. The following queries will remove all except site 1.

delete from cms_files where exists(select id from cms_folders fo where fo.site_id!=1 and cms_files.folder_id=fo.id);
delete from cms_folders where site_id!=1;

Now export the data like the calendar example.

Problems with unicode filenames

If you are having problems with filenames showing up wierd on the filesystem then you must set the locale of Linux to UTF-8. On Debian you can do this as following:

Run:

$ locale

If this outputs something like the output below then all should work fine.

LANG=nl_NL.UTF-8
LC_CTYPE="nl_NL.UTF-8"
LC_NUMERIC="nl_NL.UTF-8"
LC_TIME="nl_NL.UTF-8"
LC_COLLATE="nl_NL.UTF-8"
LC_MONETARY="nl_NL.UTF-8"
LC_MESSAGES="nl_NL.UTF-8"
LC_PAPER="nl_NL.UTF-8"
LC_NAME="nl_NL.UTF-8"
LC_ADDRESS="nl_NL.UTF-8"
LC_TELEPHONE="nl_NL.UTF-8"
LC_MEASUREMENT="nl_NL.UTF-8"
LC_IDENTIFICATION="nl_NL.UTF-8"
LC_ALL=

If there's no UTF-8 in the locale then you should change it.

Run:

$ dpkg-reconfigure locales

Select en_US.UTF8 for example. You can select multiple values.

After that set the locale:

$ export LC_ALL=en_US.UTF8

Now uploading unicode named files should work!


E-mail is slow

Group-Office is able to handle thousands of e-mails in a mailbox. A mailbox with 10.000 messages should be displayed within a second. Here are some tips if you experience slow mail performance:

  1. Always use IMAP and not POP-3
  2. There are two different storage formats for e-mail. These formats are mbox and maildir. It's higly recommended to use maildir format. With mbox format all e-mail messages are stored in one single plain text file. You can imagine that this is not very efficient when you have hundreds or thousands of e-mails in a mailbox. With Maildir the messages are stored in a much smarter way which doesn't cause the system to slow down when the mailbox size grows. With mbox format it's also not possible to create subfolders inside folders that contain messages. A folder contains either subfolders or messages but not both. To summarize maildir is faster and offers more flexibility.
  3. Make sure the network connection is fast between Group-Office and the IMAP server. Ideally the servers are located in the same network. If you can't do this you might want to fetch mail Use_POP3_on_a_remote_catch-all_mailbox_for_local_delivery on the local server with fetchmail.