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: