[horde] Upgrade PHP 5.4.45 to 5.6.31
Jan Schneider
jan at horde.org
Sat Aug 12 11:06:09 UTC 2017
Zitat von Anton Köstlbacher <horde3 at dingsbums.org>:
> Am 11.08.2017 um 17:09 schrieb Jan Schneider:
>>
>> 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.
>
> If you can give me a hint how to fetch all prefs from all users from
> the db i can figure it out myself. I couldn't find any documentation
> how to do that. Thanks in advance!
They are all stored in the horde_prefs table, if you are using an SQL
backend for prefs. If this is what you mean.
--
Jan Schneider
The Horde Project
https://www.horde.org/
More information about the horde
mailing list