Php-updater - a script to upgrade php in a safe way

@ernolf

Thank you so much for your efforts! :pray:
It worked.

@bb77
I’m using Debian 11.11

2 Likes

Ah ok, looks like ansifilter is only available in the current stable release (Debian 12), testing (upcoming Debian 13) and unstable (sid): ansifilter - Debian Package Tracker

2 Likes

Hi,

i downloaded your script, but i´m not able to install it.

when i try to run it, i get following error:

Screenshot 2025-10-24 093155

i´m on HandssonIT VM

Hi @alex156,

You must install the jq package:

sudo apt-get install jq

If that doesnt solve it, run

sudo apt-get install --reinstall jq

h.t.h.


ernolf

2 Likes

installing jq worked for me. php is now updated. thank you!

1 Like

I had to get the script from here: https://global-social.net/raw/scripts/php-updater

1 Like

I had an issue running this script on Hannsson IT VM. I previously used this script a year or so ago to get me to PHP 8.3 without issue.

Had a snaphot, ran the script twice, got the same results. Upon successful completion of script and PHP 8.4 being active, I was unable to exit Maintenance Mode via OCC, and was getting Internal Server Errors. I kept getting this error:

An unhandled exception has been thrown:
OCP\HintException: [0]: Memcache OC\Memcache\Redis not available for local cache (Is the matching PHP module installed and enabled?)

So I re-ran the script to compare 8.3 > 8.4 components, and this was the output:

## actual PHP related packages installed and managed by dpkg
X   Package                Version                                       Status

* php8.3-bcmath          8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included module: bcmath
* php8.3-bz2             8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included module: bz2
  SAPI php8.3-cli             8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\php binary /usr/bin/php8.3 <<INACTIVE not linked
* php8.3-common          8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included modules: calendar ctype exif ffi fileinfo ftp gettext iconv pdo
  phar posix shmop sockets sysvmsg sysvsem sysvshm tokenizer
* php8.3-curl            8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included module: curl
* php8.3-dev             8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  SAPI php8.3-fpm             8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\listening on unix socket /run/php/php8.3-fpm.nextcloud.sock <<NOT CONNECTED
* php8.3-gd              8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included module: gd
* php8.3-gmp             8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included module: gmp
* php8.3-igbinary        3.2.16-3+ubuntu20.04.1+deb.sury.org+1           hm
  \\included module: igbinary
* php8.3-imap            8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included module: imap
* php8.3-intl            8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included module: intl
* php8.3-ldap            8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included module: ldap
* php8.3-mbstring        8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included module: mbstring
* php8.3-opcache         8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included module: opcache
* php8.3-pgsql           8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included modules: pdo_pgsql pgsql
* php8.3-readline        8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included module: readline
* php8.3-redis           6.1.0-2+ubuntu20.04.1+deb.sury.org+1            hm
  \\included module: redis
* php8.3-smbclient       1.1.1-1+ubuntu20.04.1+deb.sury.org+2            hm
  \\included module: smbclient
* php8.3-soap            8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included module: soap
* php8.3-sqlite3         8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included modules: pdo_sqlite sqlite3
* php8.3-xml             8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included modules: dom simplexml xml xmlreader xmlwriter xsl
* php8.3-zip             8.3.20-1+ubuntu20.04.1+deb.sury.org+1           hm
  \\included module: zip
  SAPI php8.4-cli             8.4.15-1+ubuntu22.04.1+deb.sury.org+1           im
  \\php binary /usr/bin/php8.4  linked to generic /usr/bin/php
* php8.4-common          8.4.15-1+ubuntu22.04.1+deb.sury.org+1           im
  \\included modules: calendar ctype exif ffi fileinfo ftp gettext iconv pdo
  phar posix shmop sockets sysvmsg sysvsem sysvshm tokenizer
  SAPI php8.4-fpm             8.4.15-1+ubuntu22.04.1+deb.sury.org+1           im
  \\listening on unix socket /run/php/php8.4-fpm.nextcloud.sock  apache2
* php8.4-opcache         8.4.15-1+ubuntu22.04.1+deb.sury.org+1           im
  \\included module: opcache
* php8.4-readline        8.4.15-1+ubuntu22.04.1+deb.sury.org+1           im
  \\included module: readline
* php-common             2:96+ubuntu20.04.1+deb.sury.org+1               hm
* php-pear               1:1.10.16+submodules+notgz-2+ubuntu20.04.1+deb.sury.org+1hm
* pkg-php-tools          1.42build1                                      im

Not only was Redis missing from PHP 8.4, but so were a bunch of other modules. I manually installed them from CLI and then was able to end Maintenance Mode, and quick testing of all my apps via web interface and mobile, it appears to be functional. System tab also shows PHP 8.4 as installed now.

I’m not sure why this occurred, but again both attempts did not install all the same PHP8.4 modules that 8.3 had. During the script, it certainly prompted me to copy modified values from 8.3 to applicable 8.4 configs, and Redis was in fact one of those prompts. So I’m confused why it simply did not install all the corresponding modules.

Just posting in case others have this same issue.

Hi @R0gue_One,

Thank you so much for this valuable feedback. I’m already looking into the cause.

I would be even more grateful if you would be willing to open an issue on GitHub with all the relevant information about the VM you’re using. I assume it wasn’t the VM you updated to 8.3 a year ago, or at least you were running scripts from the VM again. In the VM, the modules igbinary, redis, and smbclient aren’t delivered as packages, but for reasons completely incomprehensible to me, they come with poorly constructed, i.e., incorrectly linked, PECL versions.

I hope you haven’t rebooted yet, because important log files that can help me determine the cause are located in
/tmp/ebtb/log/*
It would be great if you could send them to me via PM.

I’d be happy to elaborate on this further on GitHub.


ernolf

The VM is indeed the same VM from a year or so ago. I’ve maintained it by upgrading Ubuntu, PHP, Postgres, etc but it’s still at its core the original machine.

The first time the issue occurred, I did reboot, and got the same command. I then restored my snapshot, enabled Maintenance mode, and ran through it again which failed, which is when I then tried installing components manually.

It’s not been rebooted since then, so I’ll check and see if there is any data in the mentioned logfile.

I may have manually installed smbclient before to deliver a fix for an issue, I don’t recall.

I’ll be happy to open a GitHub issue shortly.

Thank you, Thank you, Thank you
you saved me a holiday in a clinicum :zany_face:
That script ist just great, it found a few small glitches in my config and removed the smbclientstuff, which i did not need at all, saved all my tuningstuff and … well :folded_hands:

1 Like