[horde] WSOD with Debian Install of Horde 5.0.4 Groupware Webmail, followup

Andy Dorman adorman at ironicdesign.com
Thu May 2 22:00:51 UTC 2013

We love and have been using older versions of Horde/Imp for years using 
Apache, mod-fcgid & suexec...so we are pretty familiar with it in 
general, although PHP is NOT our primary language (we have been doing 
mostly Perl for close to 20 years)

We have to manage a large number of servers, so we try to stick with 
Debian packages (testing & unstable) to keep thing simple if we can. 
That is why we are not using PEAR to do our install.

We are trying to set up the Debian package for Horde 5.0.4 Groupware 
Webmail on our test server.  We have set up the db, Apache virtual host 
and run webmail-install (which appeared to run just fine with no 
errors).  But now, for the last 6 - 8 hours, we have been banging our 
heads up against the most maddening WSOD when we try to run either 
index.php or test.php

Debian installs the horde php code into /usr/share/horde with 
horde/config a symlink -> /etc/horde/horde.  We have set up the Apache 
virtual host with "DocumentRoot /usr/share/horde/".  We know (or at 
least we think we know) that the web server virtual host config is not 
the issue because we added a phpinfo.php page to our DocumentRoot and 
that displays just fine.

When we access /phpinfo.php the error_reporting is 32767 (E_ALL | 
E_STRICT) and display_errors & display_startup_errors are "On".

However, when we pull up /test.php (/etc/horde/horde/conf.php has
$conf['testdisable'] = false; ) OR just /, we get the WSOD.

The really annoying thing is there are no php errors in the Apache or 
syslogs either, even though we have set /etc/php5/cgi/php.ini to log to 

We added a bunch of "echo '<p>I am here.</p>';" type statements in both 
test.php and index.php and both scripts seem to be failing at the same 
point....it is not returning from the call to "Horde_Registry::appInit..."

For example, in test.php with the echo lines below...

try {
     echo '<p>setting appInit array.</p>';
     Horde_Registry::appInit('horde', array(
         'authentication' => 'none',
         'test' => true
     echo '<p>finished setting appInit array.</p>';
     $init_exception = null;
} catch (Exception $e) {
     define('HORDE_TEMPLATES', __DIR__ . '/templates');
     echo '<p>catching error.</p>';
     $init_exception = $e;
echo '<p>app init done.</p>';

we see "setting appInit array." and then nothing else.

FWIW, we confirmed that __DIR__ is indeed "/usr/share/horde".

In index.php we did the same thing with echo statements and again, it is 
never returning from

Horde_Registry::appInit('horde', array(
     'authentication' => 'none',
     'nologintasks' => true

And the REALLY silly thing that is making us feel like real "newbies" 
(as if all the above was not enough) is that we can not find where 
Horde_Registry::appInit is defined so we can instrument it.  Of course, 
that my be the real problem here.  The call to Horde_Registry::appInit 
is everywhere, but no where can we find it in the code in /usr/share/horde/.

So we would be thrilled if anyone has any thoughts about what else we 
should look into.  We are pretty sure we are going to feel like real 
idiots when we finally figure this one out.

Thanks for your patience,

Andy Dorman
Ironic Design, Inc.

=== followup ===

OK, this just keeps getting weirder...but we are closing in on it...we 
are just not sure what "it" is...

It finally occurred to us to try running test.php from the command line 
and here is what we got (with all our little "echo" statement in there)...

> server:/usr/share/horde# php ./test.php
> <html>
> <head>
> <title>PHP Test page</title>
> </head>
> <body>
> <p>Hello Test Page 1</p>
> my base directory is /usr/share/horde</body>
> </html>
> <p>starting to check.</p><p>looking for autoloader.</p><p>looking for registry.</p><p>Application.php required.</p><p>setting appInit array.</p>PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 49152 bytes) in /etc/horde/horde/conf.php on line 86
> Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 49152 bytes) in /etc/horde/horde/conf.php on line 86

We have set up cli/php.ini with a memory limit of 128M.  This should NOT 
be pushing that limit, right?

We can easily bump the limit up if needed, but I hope we do not need to.

More information about the horde mailing list