Php7-redis removed by update, breaking nextcloud (on raspberry pi)

When I updated from Tumbleweed 20221211 (with zypper dup), php7-redis was removed, which turns out to break nextcloud (nextcloud is not installed via zypper on my system). From journalctl -b:

Dec 16 19:59:05 ari-pi systemd[1]: Started Nextcloud cron.php job.
Dec 16 19:59:05 ari-pi php[12991]: OCP\HintException: [0]: Memcache \OC\Memcache\Redis not available for local cache (Is the matching PHP module installed and enabled?)
Dec 16 19:59:05 ari-pi systemd[1]: nextcloud-cron.service: Main process exited, code=exited, status=1/FAILURE
Dec 16 19:59:05 ari-pi systemd[1]: nextcloud-cron.service: Failed with result 'exit-code'.

Every nextcloud command suffers that error.

I could not re-install php7-redis via zypper anymore, because it’s not in zypper anymore. I could re-install it with opi, which did a lot of downdrading of php7 packages, but it broke php-fpm.

So in the end I restored to Tumbleweed 20221211, put a lock on php7-redis (and php7-imagick, which was also removed, no idea if it really is needed):

# zypper al php7-redis
Specified lock has been successfully added.
# zypper al php7-imagick
Specified lock has been successfully added.
# zypper ll
# | Name         | Type    | Repository | Comment
--+--------------+---------+------------+--------
1 | php7-imagick | package | (any)      | 
2 | php7-redis   | package | (any)      | 

Followed by:

# zypper dup

and all is happy again (Tumbleweed 20221214) .

So if you have your own nextcloud installation in Tumbleweed: beware of php7-redis being removed by an update.

I wonder if updating to php8 will happen automatically in the short future, or should I do that myself? All my installed php7 packages seem to exist as php8 packages, except for php8-json. No idea if that is used. For the time being I will stick to php7.

Just FYI: I’ve made the jump to php8 and nextcloud is running fine with it.

Basically, I installed the php8 versions of the currently installed php7 packages with zypper. The missing php8-json package is not really missing: JSON seems to be built in in php8 nowadays.

The command I used was:

zypper in $(zypper se -i php7 | grep ^i | cut -d\| -f2 | sed 's/ //g;s/php7/php8/' | tr \\n ' ')

It reports 30 problems, with 30 solutions to deinstall the php7 package that will be replaced by its php8 counter part. So after pressing ‘1’ thirty times, zypper proceeds:

Resolving dependencies...
Resolving package dependencies...

The following 8 recommended packages were automatically selected:
  php8-ctype php8-dom php8-iconv php8-openssl php8-sqlite php8-tokenizer php8-xmlreader php8-xmlwriter

The following 30 NEW packages are going to be installed:
  php8 php8-bcmath php8-bz2 php8-cli php8-ctype php8-curl php8-dom php8-exif php8-fileinfo php8-fpm php8-gd php8-gettext php8-gmp php8-iconv php8-imagick
  php8-intl php8-mbstring php8-mysql php8-opcache php8-openssl php8-pcntl php8-pdo php8-posix php8-redis php8-sqlite php8-tokenizer php8-xmlreader
  php8-xmlwriter php8-zip php8-zlib

The following 31 packages are going to be REMOVED:
  php7 php7-bcmath php7-bz2 php7-cli php7-ctype php7-curl php7-dom php7-exif php7-fileinfo php7-fpm php7-gd php7-gettext php7-gmp php7-iconv php7-imagick
  php7-intl php7-json php7-mbstring php7-mysql php7-opcache php7-openssl php7-pcntl php7-pdo php7-posix php7-redis php7-sqlite php7-tokenizer php7-xmlreader
  php7-xmlwriter php7-zip php7-zlib

30 new packages to install, 31 to remove.

A final error Installation has completed with error can be ignored, because of Package 'php8-json' not found. (I should have filtered out that package in my command).

Next, I had to update the following setting files with the modifications that I had in the corresponding php7 setting files:

/etc/php8/cli/php.ini
/etc/php8/fpm/php-fpm.conf
/etc/php8/fpm/php-fpm.d/www.conf
/etc/php8/fpm/php.ini

Restarting the nginx and php-fpm services revived nextcloud again.