Friday, October 23, 2026

Build & Install PHP 8.5.12 from Solaris Userland before offical Oracle release

With the recent PHP zero day problems I am sure you wonder what to do with your PHP version if you on Solaris. You could wait for Oracle release, put in a workaround, take website down or build/install a new version (unoffically).

Guide for the upgrade:
  • Follow the steps here to download userland: https://github.com/oracle/solaris-userland
$ cd (your-workspace)
$ gmake setup CANONICAL_REPO=http://Your.Local.IP.repository/
$ cd components/php/php85
$ gmake download
$ gmake build
$ gmake publish
$ pkg list -afv -g file:///scratch/clone/i386/repo/ FMRI IFO pkg://nightly/compress/xz@5.8.4-11.4.96.0.0.234.0:20261023T111402Z --- pkg://nightly/web/php@8.5.12-11.4.96.0.0.234.0:20261023T120231Z ---
  • In this case the PHP is 8.5.11 (as of 23rd Oct 26) so to get a new version you will need to:
    • Get sha256 hash from https://www.php.net/downloads.php
    • Change Makefile so that it builds latest version 8.5.12
$ cd (your-workspace)/components/php/php85
$ diff ~/Makefile.orig Makefile 35c35 < MICRO_VERSION=11 --- > MICRO_VERSION=12 43c43 < sha256:d9be75c08e8c316f4c8f4194d8fbe1750a15f6a6d9d4e3fe72082abeeb800360 --- > sha256:08bc2eba2a588654ade1357174aa646b761556c862dda0678345ee29ed481209 $ gmake download $ gmake build $ gmake publish $ pkg list -afv -g file:///scratch/clone/i386/repo/ FMRI IFO pkg://nightly/compress/xz@5.8.4-11.4.96.0.0.234.0:20261023T111402Z --- pkg://nightly/web/php@8.5.12-11.4.96.0.0.234.0:20261023T120231Z --- pkg://nightly/web/php-85@8.5.12-11.4.96.0.0.234.0:20261023T120127Z ---
  • Install the new package
#  pkg install -v -g file:///scratch/clone/i386/repo/ pkg://nightly/web/php-85@8.5.12-11.4.96.0.0.234.0
Creating Plan (Solver setup): |
pkg install: No matching version of web/php-85 can be installed:
  Reject:  pkg://nightly/web/php-85@8.5.12-11.4.96.0.0.234.0
  Reason:  This version is excluded by installed incorporation consolidation/userland/userland-incorporation@11.4-11.4.96.0.1.227.1
  • Fix the above so you can install the fresh install
#  pkg facet version-lock.web/php-85
FACET                                                            VALUE SRC
version-lock.web/php-85                                          True  system

# pkg change-facet version-lock.web/php-85=false
# pkg facet version-lock.web/php-85 FACET VALUE SRC version-lock.web/php-85 False local
# pkg install -v -g file:///scratch/clone/i386/repo/ pkg://nightly/web/php-85@8.5.12-11.4.96.0.0.234.0 Packages to update: 1 Estimated space available: 81.79 GB Estimated space to be consumed: 329.92 MB Create boot environment: No Create backup boot environment: Yes Rebuild boot archive: No Changed packages: solaris -> nightly web/php-85 8.5.6-11.4.95.0.1.227.0 -> 8.5.12-11.4.96.0.0.234.0 Editable files to change: Install: etc/php/8.5/conf.d/extensions.ini.new
  • Check it
$ pkg list web/php-85
NAME (PUBLISHER)                                  VERSION                    IFO
web/php-85 (nightly)                              8.5.12-11.4.96.0.0.234.0   i--
$ php -v
PHP 8.5.12 (cli) (built: Oct 23 2026 12:50:50) (ZTS)
Copyright (c) The PHP Group
Zend Engine v4.5.12, Copyright (c) Zend Technologies
    with Zend OPcache v8.5.12, Copyright (c), by Zend Technologies

  • Hopefully, this will keep your site secure until Oracle release a offical patch.

No comments: