FreeBSD Update auf php8.3

Ein Update auf eine aktuelle php Version war erforderlich. Hier die Schritte um unter FreeBSD von php7.2 auf php8.3 das Update durchzuführen. Vorher sollte der Webserver und der php-fpm gestopt werden.

Abfrage, welche Module und welche Versionen installiert sind:

# pkg info -x php

php72-7.2.34
php72-bcmath-7.2.34
php72-bz2-7.2.34
php72-ctype-7.2.34
php72-curl-7.2.34
php72-dom-7.2.34
php72-exif-7.2.34
php72-extensions-1.0
php72-fileinfo-7.2.34
php72-filter-7.2.34
php72-gd-7.2.34
php72-hash-7.2.34
php72-iconv-7.2.34
php72-json-7.2.34
php72-mbstring-7.2.34
php72-mysqli-7.2.34
php72-opcache-7.2.34
php72-openssl-7.2.34
php72-pdo-7.2.34
php72-pdo_sqlite-7.2.34
php72-phar-7.2.34
php72-posix-7.2.34
php72-session-7.2.34
php72-simplexml-7.2.34
php72-sqlite3-7.2.34
php72-tokenizer-7.2.34
php72-xml-7.2.34
php72-xmlreader-7.2.34
php72-xmlwriter-7.2.34
php72-zip-7.2.34
php72-zlib-7.2.34

Ausgabe in eine Datei umleiten, diese Ausgabe kann dann zur Installation der neuen Version, hier php8.3 verwendet werden.

# pkg info -x php | sed s/72/83/g | sed s/-7.2.34//g | sed s/_1//g > php8.pkg

Prüfen, welche Pakete deinstalliert werden, ohne das Kommando auszuführen. Pkg bietet die dry-run Option an:

# pkg remove -nx php72

Checking integrity... done (0 conflicting)
Deinstallation has been requested for the following 31 packages (of 0 packages in the universe):

Installed packages to be REMOVED:
        php72: 7.2.34
        php72-bcmath: 7.2.34
        php72-bz2: 7.2.34
        php72-ctype: 7.2.34
        php72-curl: 7.2.34
        php72-dom: 7.2.34
        php72-exif: 7.2.34
        php72-extensions: 1.0
        php72-fileinfo: 7.2.34
        php72-filter: 7.2.34
        php72-gd: 7.2.34
        php72-hash: 7.2.34
        php72-iconv: 7.2.34
        php72-json: 7.2.34
        php72-mbstring: 7.2.34
        php72-mysqli: 7.2.34
        php72-opcache: 7.2.34
        php72-openssl: 7.2.34
        php72-pdo: 7.2.34
        php72-pdo_sqlite: 7.2.34
        php72-phar: 7.2.34
        php72-posix: 7.2.34
        php72-session: 7.2.34
        php72-simplexml: 7.2.34
        php72-sqlite3: 7.2.34
        php72-tokenizer: 7.2.34
        php72-xml: 7.2.34
        php72-xmlreader: 7.2.34
        php72-xmlwriter: 7.2.34
        php72-zip: 7.2.34
        php72-zlib: 7.2.34

Number of packages to be removed: 31

The operation will free 36 MiB.

Wenn die Ausgabe ok ist, dann Feuer frei:

# pkg remove -x php72

Danach die erforderlichen Pakete aus der o.g. Datei installieren:

# cat php8.pkg | xargs -L1 -p pkg install -y

Nach Abschluß, php-fpm und den Webserver starten.

Technik