[horde] Upgrade PHP 5.4.45 to 5.6.31

Anton Köstlbacher horde3 at dingsbums.org
Fri Aug 11 14:55:08 UTC 2017


Am 11.08.2017 um 15:01 schrieb Jan Schneider:
> 
> Zitat von Anton Köstlbacher <horde3 at dingsbums.org>:
> 
>> Am 11.08.2017 um 11:29 schrieb Jan Schneider:
>>>
>>> Zitat von Anton Köstlbacher <horde3 at dingsbums.org>:
>>>
>>>> Hi Horders,
>>>>
>>>> I tried updating a Debian Wheezy PHP from 5.4.45-0+deb7u9 to 
>>>> 5.6.31-1~dotdeb+7.1
>>>>
>>>> After upgrading PHP, other apps like Mediakwiki, Wordpress etc. are 
>>>> working just fine.
>>>>
>>>> When logging into Horde I get:
>>>>
>>>> 2017-08-10T22:25:26+02:00 EMERG: HORDE 
>>>> Horde_Prefs_Scope::serialize() must return a string or NULL [pid 
>>>> 21634 on line 62 of "/usr/share/php/Horde/Prefs/Cache/HordeCache.php"]
>>>>
>>>> I disabled all caching, but it doesn't help. There were changes in 
>>>> PHP regarding serialization and also json_decode. Could there be 
>>>> serialized values in hordes prefs table which need to be 
>>>> updated/corrected before upgrading PHP?
>>>>
>>>> Sorry if this was asked before, but I couldn't find anything. Thanks 
>>>> for your help!
>>>>
>>>> Kind Regards,
>>>> Anton
>>>
>>> It's rather json_encode that seems to failing. Try raising the log 
>>> level to get any warnings and errors from that call.
>>
>> Did that already, I found this occurences in the log:
>>
>> 2017-08-10T22:46:26+02:00 DEBUG: HORDE Load config file (conf.php; 
>> app: horde) [pid 25053 on line 110 of 
>> "/usr/share/php/Horde/Registry/Loadconfig.php"]
>> 2017-08-10T22:46:26+02:00 DEBUG: HORDE Load config file (hooks.php; 
>> app: horde) [pid 25053 on line 110 of 
>> "/usr/share/php/Horde/Registry/Loadconfig.php"]
>> 2017-08-10T22:46:26+02:00 DEBUG: HORDE Read session data 
>> (kaj411tfd43go08ekl7pcquov1) [pid 25053]
>> 2017-08-10T22:46:26+02:00 DEBUG: HORDE [horde] Load config file 
>> (nls.php; app: horde) [pid 25053 on line 110 of 
>> "/usr/share/php/Horde/Registry/Loadconfig.php"]
>> 2017-08-10T22:46:26+02:00 DEBUG: HORDE [horde] Load config file 
>> (prefs.php; app: horde) [pid 25053 on line 110 of 
>> "/usr/share/php/Horde/Registry/Loadconfig.php"]
>> 2017-08-10T22:46:26+02:00 EMERG: HORDE [horde] 
>> Horde_Prefs_Scope::serialize() must return a string or NULL [pid 25053 
>> on line 62 of "/usr/share/php/Horde/Prefs/Cache/HordeCache.php"]
>> 2017-08-10T22:46:26+02:00 DEBUG: HORDE 1. require() 
>> /var/www/buero/web/xxxx.de/webmail/login.php:243
>> 2. Horde_Prefs->getValue() 
>> /var/www/buero/web/xxxx.de/webmail/index.php:62
>> 3. Horde_Prefs->_getScope() /usr/share/php/Horde/Prefs.php:289
>> 4. Horde_Prefs->_loadScope() /usr/share/php/Horde/Prefs.php:382
>> 5. Horde_Prefs_Cache_HordeCache->store() 
>> /usr/share/php/Horde/Prefs.php:457
>> 6. serialize() /usr/share/php/Horde/Prefs/Cache/HordeCache.php:62
>>
>> And second with ActiveSync:
>>
>> 2017-08-10T22:50:41+02:00 DEBUG: HORDE  1. 
>> Horde_Rpc_ActiveSync->getResponse() 
>> /var/www/buero/web/xxxx.de/webmail/rpc.php:160
>>  2. Horde_ActiveSync->handleRequest() 
>> /usr/share/php/Horde/Rpc/ActiveSync.php:143
>>  3. Horde_ActiveSync->authenticate() 
>> /usr/share/php/Horde/ActiveSync.php:753
>>  4. Horde_Core_ActiveSync_Driver->authenticate() 
>> /usr/share/php/Horde/ActiveSync.php:578
>>  5. Horde_Core_ActiveSync_Auth->authenticate() 
>> /usr/share/php/Horde/Core/ActiveSync/Driver.php:221
>>  6. Horde_Core_Auth_Application->authenticate() 
>> /usr/share/php/Horde/Core/ActiveSync/Auth.php:63
>>  7. Horde_Core_Auth_Application->_setAuth() 
>> /usr/share/php/Horde/Core/Auth/Application.php:150
>>  8. Horde_Registry->setAuth() 
>> /usr/share/php/Horde/Core/Auth/Application.php:673
>>  9. Horde_Registry->preferredLang() 
>> /usr/share/php/Horde/Registry.php:2616
>> 10. Horde_Prefs->getValue() /usr/share/php/Horde/Registry.php:2843
>> 11. Horde_Prefs->_getScope() /usr/share/php/Horde/Prefs.php:289
>> 12. Horde_Prefs->_loadScope() /usr/share/php/Horde/Prefs.php:382
>> 13. Horde_Prefs_Cache_HordeCache->store() 
>> /usr/share/php/Horde/Prefs.php:457
>> 14. serialize() /usr/share/php/Horde/Prefs/Cache/HordeCache.php:62
>>
>> Uptodate Horde Webmail. Disabled cache and emptied cache and static 
>> directories. Deleted sessions and cookies.
> 
> Then you seem to have a broken json extension.
> 
> json_encode is only supposed to return a non-string, i.e. a boolean 
> value of false, on an error condition. And error would show up in the logs.
> Did you check your error_reporting level too?

error_reporting is E_ALL. Nothing in Apache error log.

Just tested json_encode with simple data, it does work. phpinfo says:

json support 	enabled
json version 	1.2.1

I tried the following:

Log "$this->_prefs" in /usr/share/php/Horde/Prefs/Scope.php serialize().

It showed a broken umlaut in my "fullname" pref. In other prefs the 
umlauts are ok. I deleted the "fullname" pref in the db and now I can 
log in and the UI shows up correctly.

"Array ( [id] => [fullname] => Array ( [v] => Toni K�stlbacher [d] => )"

Seems to be a similar issue as in 
http://marc.info/?l=kronolith&m=144654455532422&w=2

We use horde since version 2 and at some point we converted the tables 
to UTF-8. It seems there are some values in the pref-Blobs which now 
make problems using PHP 5.6.

Do you have an idea how to parse the prefs-blobs to eventually identify 
the broken characters?











More information about the horde mailing list