[Kolab-devel] Freebusy data not provided (native openSUSE)

Richard Bos ml at radoeka.nl
Sat Mar 7 23:26:56 CET 2009


Hello Gunnar,

Op zaterdag 07 maart 2009 14:55:06 schreef Gunnar Wrobel:
> > What could be the reason that  $result = $this->_cache->load($access,
> > $req_extended);
> > fails?  Can the cause be in wrong directory names, of permissions?
>
> Yes, I believe so.
>
> > For now I have this:
> > # grep cache *
> > config.php:/* Location of the cache files */
> > config.php:$conf['fb']['cache_dir']    = '/var/cache/freebusy';
> >
> > drwxrwxrwx 2 root root 4096 2009-03-05 21:57 /var/cache/freebusy/
>
> While this sounds unsafe :) the script should definitely have write access.

That's not the default.  I did it, because of the errors.  I want to be sure that the permissions are not in the way.


> > # find /var/cache/freebusy
> > /var/cache/freebusy
> >
> > Is it possible to print the values of $access and $req_extended?
> >
> > Hopefully, you have a clue what is wrong over here and can help me to
> > solve it!
>
> Before going into the code, I'd rather like to have a look at the log  
> files. On a standard Kolab server the free/busy system will generate  
> two log files within /kolab/var/kolab-freebusy/log/. One is named  
> "freebusy.log" and the other "php-error.log". I'd be especially  
> interested in the second one. The fact that you don't see any further  
> output from the script indicates that a fatal error occured. In that  
> case PHP should log an error in the current PHP error log file. You  
> can also output the location of that file by adding a line like this  
> into the script:
>
>   var_dump(ini_get('error_log'));

Very good that is what I needed, the output is:
string(37) "/var/log/kolab/freebusy/php-error.log"

I checked the log file before and it is always empty :(  Let's what I have at the moment:

kolab2:/var/log/kolab/freebusy # ls -ltr
total 48
-rw-r--r-- 1 wwwrun www   166 2009-03-06 22:57 php-error.log
-rw-r--r-- 1 wwwrun www 42376 2009-03-06 23:53 freebusy.log

The contents of php-error.log is:
[06-Mar-2009 22:57:39] PHP Fatal error:  Call to a member function exportvCalendar() on a non-object on line 90

However, I just tried the freebusy*ifb call and that does not result in an error message in the log.

Ah, I just discovered that this entry in the log file is written when I comment
out line 216.

> If this shows
>
>   bool(false)
>
> no errors get logged and you should fix your PHP configuration.
>
> Another important setting is
>
>   php -r "var_dump(ini_get('log_errors'));"

That results in:
string(1) "1"

> 'log_errors' also needs to be turned on to get log entries in the error
> log.

# grep -R log_errors  /etc/php5/*
/etc/php5/apache2/php.ini:log_errors = On
/etc/php5/apache2/php.ini:; Set maximum length of log_errors. In error_log information about the source is
/etc/php5/apache2/php.ini:log_errors_max_len = 1024

/etc/php5/cli/php.ini:log_errors = On
/etc/php5/cli/php.ini:; Set maximum length of log_errors. In error_log information about the source is
/etc/php5/cli/php.ini:log_errors_max_len = 1024

> You can also set 'display_errors' to be 'On'. In that case PHP errors  
> should be dumped to the browser.

# grep errors /srv/www/htdocs/freebusy/config.php
ini_set('display_errors', 1);

It looks like the logs are set correctly.  I wonder why nothing gets logged when line 216 
($result = $this->_cache->load($access, $req_extended);) is executed, hopefully you have a clue?

-- 
Richard




More information about the devel mailing list