This may be of interest to those of you who want to test Nextcloud 28 with PHP 8.3 on Ubuntu 22.04 (or Debian).
You’ll probably use → the ppa/dpa from Ondřej Surý ← to get php8.3 in the first place, and you probably do the update with the meanwhile more than 1k times downloaded
php-updater script with builtin
php.net-defaults and -changelog of the most php-ini directives and a verbose explanation:
sudo wget -O /usr/local/bin/php-updater https://global-social.net/apps/raw/s/php-updater sudo chmod +x /usr/local/bin/php-updater php-updater -h
At the moment I’m writing this, PHP 8.3 is still in RC5, so in its early stages, and a lot of PHP modules are still not delivered, including some that are absolutely necessary to operate Nextcloud.
Meanwhile all modules used by nextcloud are packaged by Ondřej Surý.
Nevertheless, some modules are still not packaged and can be built with this script though.
That’s why I wrote
php-module-builder . It makes it easy to build and install all essential modules that are not yet available as Debian packages. The modules installed with this tool can also be removed just as easily. So the entire administration for the self-built modules is handled by one script. There is no need to make any changes to the
php.ini ; the modules are all integrated into PHP by the script with Debian-style symlinks and locations, along with their own little ini files.
This tool is helpful as well if you make use of the File Actions-
files_scripts app, which relies on the Lua module that always has to be built.
Installation of the script:
sudo wget -O /usr/local/bin/php-module-builder https://global-social.net/apps/raw/s/php-module-builder sudo chmod +x /usr/local/bin/php-module-builder php-module-builder
I signed the script, and it comes with an integrated updater to stay at the cutting edge and an automated integrity test that checks after installation and every update.
Here an example echo:
ernolf@nc237:~$ php-module-builder Usage: php-module-builder <php_version> <module> [--firstrun] [--remove] [--force] [--step] --firstrun - first run wizard --remove - remove module instead if install --force - install or remove modules even though the script does not know if it works --step - run everything step by step - supported PHP-versions: 8.0 8.1 8.2 8.3 - supported (tested) modules: apcu excimer facedetect igbinary imagick lua lz4 memcache memcached msgpack redis rrd smbclient solr ssh2 stomp swoole tideways uopz uploadprogress uuid vips xdebug xhprof yac yaml zstd - Built and installed modules: - PHP Version: 8.1 Module Versions: lua-2.0.7 --------------------- - PHP Version: 8.3 Module Versions: apcu-5.1.23 igbinary-3.2.14 imagick-3.7.0 lua-2.0.7 redis-6.0.2 smbclient-1.1.1 xdebug-3.2.2 yaml-2.2.3 zstd-0.13.1 --------------------- - you can try to build a not tested module with "--force", please give me feedback about the result.
Happy hacking and much luck,