Learn about Centmin Mod LEMP Stack today
Become a Member

PHP-FPM Several issues after Installation.

Discussion in 'Beta release code' started by wmtech, Aug 2, 2026.

  1. wmtech

    wmtech Active Member

    188
    44
    28
    Jul 22, 2017
    Ratings:
    +140
    Local Time:
    2:13 PM
    Please fill in any relevant information that applies to you:
    • CentOS Version: Rocky Linux 9
    • Centmin Mod Version Installed: 140.00beta01
    • Nginx Version Installed: 1.31.3
    • PHP Version Installed: None, planned was 8.3
    • MariaDB MySQL Version Installed: 10.11
    • When was last time updated Centmin Mod code base ? : recent
    • Persistent Config:
    Centminmod version: 140.00beta01.b359 (git branch)
    OS: Rocky Linux 9 (kernel 5.14.0-687.31.1.el9_8.x86_64)
    PHP target version: 8.3

    During a fresh install with betainstaller83.sh, the initial PHP 8.3 source tarball download failed/was corrupted, and both the primary and fallback download attempts produced an unusable file. Instead of halting, the installer continued through the entire remaining install sequence (~14,000+ log lines), producing dozens of unrelated, confusing downstream errors that all stem from this single root cause.

    There should be a hard validation step immediately after PHP source download/extraction (around line 1093, inc/downloads.inc or wherever the extraction check lives): verify the extracted directory exists and contains a configure script before proceeding. On failure, abort the entire install with a clear fatal error, rather than continuing.

    Consider also validating tarball size/checksum before attempting extraction, to catch corrupted or truncated downloads earlier (in our case the file was ~757 KB vs the expected ~20-30 MB — trivially detectable).

    After installation there was no PHP on the server, so I tried to install PHP 8.3 again with centminmod menu option 5.

    This failed to because of 2 subsequent errors which also would warrant a fix:

    1) PHPGEOIP_ALWAYS should default to 'n' on PHP 8+, or the geoip install function should detect PHP major version ≥7 and skip/warn instead of attempting the doomed build. maxminddb (MaxMind's current library) is the working replacement and compiles cleanly on 8.3.

    2) minor PHP rebuilds don't trigger PECL extension reinstall

    In inc/php_upgrade.inc, reinstall logic for redis/timezonedb is gated behind PHP_MAJORUPGRADE='y' (only set when $PHPMUVER != $PHPCURRENTVER) combined with .ini-existence checks. A same-version PHP rebuild (e.g. 8.3.32 → 8.3.33 patch-level recompile) still wipes the compiled .so files from the extensions directory via make install, but because it's not flagged as a "major" upgrade and the stale .ini files still exist from before, redis/timezonedb/geoip never get rebuilt — leaving PHP silently missing those extensions until manually reinstalled via pecl install.


    The reinstall check should verify the actual .so file's presence in the current PHP extension API directory (e.g. /usr/local/lib/php/extensions/no-debug-non-zts-20230831/), not just whether the .ini file exists — since the .ini persists across rebuilds but the compiled binary does not.

    Hope this helps.
     
  2. eva2000

    eva2000 Administrator Staff Member

    59,439
    12,536
    113
    May 24, 2014
    Brisbane, Australia
    Ratings:
    +19,176
    Local Time:
    10:13 PM
    Nginx 1.31.x
    MariaDB 10.x/11.4+/12.3+
    Thanks for feedback, will take some time to digest this :)
    Good idea (y)