Reported in forum http://forum.piwik.org/read.php?2,108845
triggered on php 5.4.23 -> caused by a critical bug in eAccelerator.
Turns out this project is dead, not maintained, and should not be used.
Please ask your sysadmin / web host to use APC instead!
In 8318219cad363e3430080b0609fa281227dc7892: Refs #4439 Registering the callback in the frontcontroller and using a static method rather than a closure
Maybe you also get this error:
Warning: usort() expects parameter 2 to be a valid callback, no array or string given in /usr/www/users/.../piwik/core/View.php on line 212
in which case it's the same problem. Please comment here with your PHP version, to see if it is a wide spread issue. Cheers
i got the same problem using PHP 5.4.23 :
Warning: register_shutdown_function(): Invalid shutdown callback '' passed in /usr/www/users/.../piwik/index.php on line 66
I tried to reproduce it with different PHP versions but without success. I will close it for now but if anyone still experiences some issues please reopen and send us (hello at piwik.org) - if possible - ftp and piwik credentials so that we are able to reproduce and debug the issue. It seems to be related to a specific configuration.
Will send login data and everything needed do your email adress.
@Brevis thx for sending the details. I found the cause for your problems and other people having a server at Hetzner.
The problem is caused by the eAccelerator ( http://eaccelerator.net/ ) extension. The related ticket can be found here: https://github.com/eaccelerator/eaccelerator/issues/12 . The ticket is already a year old and eAccelerator seems to be not under active development so we do not expect a fix for this issue soon.
The solution is to disable eAccelerator in PHP.ini:
eaccelerator.enable = 0
Only disabling the optimizer as recommended here https://github.com/eaccelerator/eaccelerator/issues/12#issuecomment-23235828 did not solve the issue for us.
Note: Disabling eAccelerator leads to less performance, we recommend to install and use another PHP accelerator like APC http://en.wikipedia.org/wiki/List_of_PHP_accelerators#Alternative_PHP_Cache_.28APC.29 instead.
In ab6070fca5de90d1b645ae95a54e18a0c82f4be0: refs #4439 disable eAccelerator if enabled (just disabling optimizing did not work) and display a message in the admin UI. Also disabled eAccelerator during tracking. We might need to move the method to detect eAccelerator to another place, not sure if this is the best one
In 175b62493fe2dd4dff984dba8664d4f75bb19740: Refs #4439 inlining the message as to not create new translation for this edge case.
I suggested to eAccelerator that they mark their project as deprecated https://github.com/eaccelerator/eaccelerator/pull/44