[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