[horde] Upgrade PHP 5.4.45 to 5.6.31

Jan Schneider jan at horde.org
Fri Aug 11 15:09:39 UTC 2017


Zitat von Anton Köstlbacher <horde3 at dingsbums.org>:

> 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?

There is no solution that would fit all possible problems with broken  
charsets. There are just too many places where the charset conversion  
could have gone wrong. You would need a solution tailored to your  
exact problem.

-- 
Jan Schneider
The Horde Project
https://www.horde.org/



More information about the horde mailing list