Problems with redis after upgrade php from 7.2 to 7.4

I upgraded my nc-server form 18.7 to 19.0.2.2 This worked fine, but in settings it says nc19 would be the last version which uses php7.2.
So I decided to upgrade directly to 7.4
So far so good, but after that I can’t connect over Browser to the server anymore. On the website i get a simple Access denied. In the logfile I get following Error:

{“reqId”:“3bJFmMlh6mkDDejeK3wc”,“level”:3,“time”:“2020-09-08T10:20:45+00:00”,“remoteAddr”:“192.168.1.11”,“user”:“–”,“app”:“remote”,“method”:“GET”,“url”:“/nextcloud/status.php”,“message”:{“Exception”:“OC\HintException”,“Message”:“Memcache \OC\Memcache\Redis not available for local cache”,“Code”:0,“Trace”:[{“file”:“/srv/dateien/html/nextcloud/lib/private/Server.php”,“line”:672,“function”:“__construct”,“class”:“OC\Memcache\Factory”,“type”:“->”},{“file”:“/srv/dateien/html/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php”,“line”:118,“function”:“OC\{closure}”,“class”:“OC\Server”,“type”:“->”,“args”:[“*** sensitive parameters replaced “]},{“file”:”/srv/dateien/html/nextcloud/lib/private/ServerContainer.php",“line”:124,“function”:“offsetGet”,“class”:“Pimple\Container”,“type”:“->”},{“file”:“/srv/dateien/html/nextcloud/lib/private/Server.php”,“line”:1701,“function”:“query”,“class”:“OC\ServerContainer”,“type”:“->”},{“file”:“/srv/dateien/html/nextcloud/lib/private/Server.php”,“line”:854,“function”:“getMemCacheFactory”,“class”:“OC\Server”,“type”:“->”},{“file”:“/srv/dateien/html/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php”,“line”:118,“function”:“OC\{closure}”,“class”:“OC\Server”,“type”:“->”,“args”:[" sensitive parameters replaced “]},{“file”:”/srv/dateien/html/nextcloud/lib/private/ServerContainer.php",“line”:124,“function”:“offsetGet”,“class”:“Pimple\Container”,“type”:“->”},{“file”:“/srv/dateien/html/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php”,“line”:163,“function”:“query”,“class”:“OC\ServerContainer”,“type”:“->”},{“file”:“/srv/dateien/html/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php”,“line”:114,“function”:“OC\AppFramework\Utility\{closure}”,“class”:“OC\AppFramework\Utility\SimpleContainer”,“type”:“->”,“args”:[" sensitive parameters replaced ***”]},{“file”:“/srv/dateien/html/nextcloud/lib/private/ServerContainer.php”,“line”:124,“function”:“offsetGet”,“class”:“Pimple\Container”,“type”:“->”},{“file”:“/srv/dateien/html/nextcloud/lib/private/Server.php”,“line”:1891,“function”:“query”,“class”:“OC\ServerContainer”,“type”:“->”},{“file”:“/srv/dateien/html/nextcloud/lib/private/legacy/OC_App.php”,“line”:347,“function”:“getAppManager”,“class”:“OC\Server”,“type”:“->”},{“file”:“/srv/dateien/html/nextcloud/lib/private/legacy/OC_App.php”,“line”:114,“function”:“getEnabledApps”,“class”:“OC_App”,“type”:“::”},{“file”:“/srv/dateien/html/nextcloud/lib/base.php”,“line”:648,“function”:“loadApps”,“class”:“OC_App”,“type”:“::”},{“file”:“/srv/dateien/html/nextcloud/lib/base.php”,“line”:1095,“function”:“init”,“class”:“OC”,“type”:“::”},{“file”:“/srv/dateien/html/nextcloud/status.php”,“line”:37,“args”:[“/srv/dateien/html/nextcloud/lib/base.php”],“function”:“require_once”}],“File”:“/srv/dateien/html/nextcloud/lib/private/Memcache/Factory.php”,“Line”:98,“Hint”:“Is the matching PHP module installed and enabled?”,“CustomMessage”:“–”},“userAgent”:“Mozilla/5.0 (Linux) mirall/2.6.5-20200713.144448.adada8b2e-1.0~bionic1 (Nextcloud)”,“version”:“19.0.2.2”}
`

It says something about Redis not available for local cache, but I’m nearly sure that I configured Redis the same way as on php7.2.
Btw. I can switch back to php7.2, and everything is working fine, so I have no urgency.
My server is Ubuntu 18.04 LTS with apache2 2.4.29

Here is my config.php:

`
<?php

$CONFIG = array (
‘instanceid’ => ‘xxxxxxxxx’,
‘passwordsalt’ => ‘xxxxl’,
‘secret’ => ‘xxxx’,
‘trusted_domains’ =>
array (
0 => ‘xxxx.ddns.net’,
),
‘memcache.local’ => ‘\OC\Memcache\Redis’,
‘redis’ =>
array (
‘host’ => ‘localhost’,
‘port’ => 6379,
),
‘memcache.locking’ => ‘\OC\Memcache\Redis’,
‘datadirectory’ => ‘/srv/dateien/nextcloud/data’,
‘overwrite.cli.url’ => ‘https://xxxx.ddns.net/nextcloud’,
‘dbtype’ => ‘mysql’,
‘version’ => ‘19.0.2.2’,
‘dbname’ => ‘nextcloud’,
‘dbhost’ => ‘localhost’,
‘dbport’ => ‘’,
‘dbtableprefix’ => ‘oc_’,
‘dbuser’ => ‘USR’,
‘dbpassword’ => ‘PW’,
‘logtimezone’ => ‘UTC’,
‘installed’ => true,
‘maintenance’ => false,
‘mail_from_address’ => ‘carlo’,
‘mail_smtpmode’ => ‘sendmail’,
‘mail_domain’ => ‘x’,
‘mail_smtphost’ => ‘x’,
‘theme’ => ‘’,
‘loglevel’ => 2,
‘data-fingerprint’ => ‘x’,
‘mail_smtpport’ => ‘465’,
‘mail_smtpauthtype’ => ‘LOGIN’,
‘mail_smtpsecure’ => ‘ssl’,
‘mysql.utf8mb4’ => true,
‘has_rebuilt_cache’ => true,
‘defaultapp’ => ‘spreed’,
‘app_install_overwrite’ =>
array (
0 => ‘apporder’,
),
‘updater.release.channel’ => ‘stable’,
‘updater.secret’ => ‘x’,
);
`

Maybe someone can give me a hint what I am missing.
Thanks in advance

I found in the log an errormessage which I did not saw before

PHP Startup: Unable to load dynamic library ‘redis.so’ (tried: /usr/lib/php/20190902/redis.so (/usr/lib/php/20190902/redis.so: undefined symbol: igbinary_serialize), /usr/lib/php/20190902/redis.so.so (/usr/lib/php/20190902/redis.so.so: cannot open shared object file: No such file or directory)) at Unknown#0

I looked under /usr/lib/php/20190902 and found redis.so
Maybe this give som more information :wink:

Unfortunately it isn’t sufficient to have one redis.so copy on your server, because it need to match the installed and configured php module. Make sure that you’ve correctly installed AND configured the php7.4- version of the module and that is is configured for both the php cli and web component.

Due to the fact that this is a common configuration problem, you will find several matches on this topic using the search function of the forum:

https://help.nextcloud.com/search?q=Unable%20to%20load%20dynamic%20library%20%E2%80%98redis.so%E2%80%99

Normally the admin does upgrade the Ubuntu from Ubuntu 18.04 LTS to 20.04 LTS to get newer PHP versions. But i think with Ubuntu it is normal to use PPA . I do not know why.

Sorry i do not use Redis. But normally you must install the packages
redis-server php-redis

Ubuntu 18.04 LTS
https://packages.ubuntu.com/de/bionic/redis-server
https://packages.ubuntu.com/de/bionic/php-redis
/usr/lib/php/20170718/redis.so

Ubuntu 20.04 LTS
https://packages.ubuntu.com/de/focal/redis-server
https://packages.ubuntu.com/de/focal/php-redis
/usr/lib/php/20190902/redis.so

Search the file:
find /usr/lib/php -name "redis.so"
Or
ls -l /usr/lib/php

Have installed it
dpkg -l |fgrep redis

Thanks j-ed, the link helped me at least so far that I found out, it was php-igbinary which was missing under 7.4, php -v showed directly the correct errormessage, but now after correcting this php -v show everything OK, but on the website I still get only access denied, but now even no error in the log of NC, i changed the loglevel to 4, but no error.

Although you’ve configured Redis to use a host name and port it usually might switch to a socket connection as soon as “localhost” is used. So it would be worse to check under which user the daemon is running and how it has been set-up.

the Redis configuration (/etc/redis/redis.conf) might look similar to this:

port 6379
bind 127.0.0.1

unixsocket /var/run/redis.sock
unixsocketperm 0770

The Nextcloud configuration might look like this:

 'redis' => array (
    'host' => '/var/run/redis.sock',
    'port' => 0,
    'timeout' => 0.0,
  ),

See also:

OK, Problem is solved after searching for hours :grinning: and it had nothing to do with redis anymore, which I believed already, because the error message about redis was gone and only Access denied on Webpage.
First I found error in apache errorlog:

Got error 'Access to the script '/var/www/html/xxx...' has been denied (see security.limit_extensions)

so I concentrated on security.limit_extensions, it’s a parameter one can set in /etc/php/7.x/fpm/pool/www.conf which sets the extentions of scriptfiles, when it’s not set it uses only php, which should be OK. I tried to set it, but thi did not help.
Continue searching and trying different parameters did not help eather, but then I found one message telling try to set:

cgi.fix_pathinfo=1

in php.ini. I would never search for this, but it solved the problem. I checked than, in 7.2 this parameter was completely commented out and in 7.4 it was set to 0, by changing it to 1 made my instance working again :wink: