Your CentOS 7 server needs a PHP2Shell fix, and you’re willing to adapt your legacy application for PHP 8.5. But Remi never released PHP 8.5 packages for CentOS 7. GetPageSpeed fills that gap with PHP-FPM, extensions and a parallel installation option so you can test before switching.
Moving to PHP 8.5 is optional. To patch your current PHP branch without migrating your application, follow the CentOS 7 PHP2Shell guide.
The packages are free to install for personal, development and evaluation use, with no signup. Commercial production use requires GetPageSpeed Ultra or higher, under the repository terms.
Before installing PHP 8.5 on CentOS 7
These instructions target CentOS 7 / EL7 on x86_64. Run the package commands as root. The commands were verified with PHP 8.5.12-1.el7 and repository-release 11-91 on October 26, 2026; later releases may have higher package versions.
CentOS 7 remains an end-of-life operating system. A current PHP runtime does not extend the operating system’s support lifecycle. Keep the OS migration on your roadmap.
Install or update the repository configuration:
yum --assumeyes install https://extras.getpagespeed.com/release-latest.rpm
yum --assumeyes install epel-release
rpm --query getpagespeed-extras-release epel-release
EPEL supplies runtime dependencies used by these packages. Install its release package after the GetPageSpeed release package, which configures the archived CentOS 7 repositories.
Repository-release 11-91 introduced the PHP 8.5 channel. Use that release or newer. The channel is disabled by default; the examples below enable it only for base-package transactions. The parallel collection comes from the main repository and does not need the channel enabled.
Install PHP 8.5 alongside your existing PHP
Install the collection’s CLI, FPM and a practical set of application extensions:
yum --assumeyes install php85-php-cli php85-php-fpm \
php85-php-mysqlnd php85-php-mbstring php85-php-xml \
php85-php-gd php85-php-intl php85-php-zip
scl enable php85 -- php --version
scl enable php85 -- php --modules
scl enable php85 -- php-fpm --test
The version output should identify PHP 8.5 and say Built by GetPageSpeed LLC. The collection runtime and scl command are installed as dependencies; installing Remi’s repository is not required.
| Item | PHP 8.5 collection |
|---|---|
| CLI binary | /opt/getpagespeed/php85/root/usr/bin/php |
| Main configuration | /etc/opt/getpagespeed/php85/php.ini |
| Extension configuration | /etc/opt/getpagespeed/php85/php.d/ |
| FPM pool configuration | /etc/opt/getpagespeed/php85/php-fpm.d/www.conf |
| FPM service | php85-php-fpm |
| Default FPM socket | /var/opt/getpagespeed/php85/run/php-fpm/www.sock |
Use scl enable php85 -- ... for the collection environment, or invoke its absolute PHP path. A bare php command can still select another installed version. Avoid installing php85-syspaths when your intention is to keep the existing system command paths.
Check the installed FPM listener before connecting a site:
grep '^listen =' /etc/opt/getpagespeed/php85/php-fpm.d/www.conf
systemctl enable --now php85-php-fpm
systemctl is-active php85-php-fpm
The service should report active. Point only the application being tested at that pool’s socket, and check the socket permissions for your web-server user. Installing the collection does not route an existing website to it.
Separate PHP package names do not isolate every dependency: yum can also install or update shared system libraries. Review the transaction on a staging copy before adding the collection to a production server.
Install PHP 8.5 as the system PHP
For a fresh host where PHP 8.5 will be the system runtime:
yum --assumeyes --enablerepo=getpagespeed-extras-php85 install \
php-cli php-fpm php-mysqlnd php-mbstring php-xml \
php-gd php-intl php-zip
php --version
php --modules
php-fpm --test
grep '^listen =' /etc/php-fpm.d/www.conf
systemctl enable --now php-fpm
systemctl is-active php-fpm
This uses /usr/bin/php, /etc/php.ini, /etc/php.d/ and the php-fpm service. The default FPM socket is /var/run/php-fpm/www.sock. After the service reports active, connect the intended site to its listener.
These are base-name packages. On a host that already has php-* packages, choosing the 8.5 channel can replace the existing PHP branch. Rehearse that migration against your application and installed extensions before a production change. The fresh-install commands above are not a verified in-place migration or rollback procedure.
Enable only the PHP channel you intend to use for a base-package transaction. Do not enable several version channels together and let yum choose between them.
Optional complete base stack
For the broader GetPageSpeed extension set, install the base-stack metapackage:
yum --assumeyes --enablerepo=getpagespeed-extras-php85 install \
php85-getpagespeed-stack
Despite its php85 prefix, php85-getpagespeed-stack installs base-name PHP packages, not the parallel collection. It includes the FPM runtime, database and other core extensions, plus APCu, igbinary, msgpack, Imagick, memcached, Redis and SSH2.
These seven PECL packages are supplied for the base installation. An equivalent set of php85-php-pecl-* collection packages is not currently published. Check the actual extension requirements of your application before choosing an installation shape.
OPcache, ZIP and extension compatibility
OPcache is built into these PHP 8.5 binaries. Do not request a separate php-opcache or php85-php-opcache package, and do not copy an old zend_extension=opcache.so loader line into the new configuration. The common package provides the OPcache capability and its settings.
To verify that the collection includes OPcache even without INI files:
/opt/getpagespeed/php85/root/usr/bin/php -n -r 'var_export(extension_loaded("Zend OPcache")); echo PHP_EOL;'
For the base installation:
php -n -r 'var_export(extension_loaded("Zend OPcache")); echo PHP_EOL;'
Both commands should print true. This checks that the extension is built in; it does not assert that caching is enabled for every SAPI or that CLI caching has been enabled.
ZIP comes from PHP’s bundled extension, packaged separately as php-zip or php85-php-zip. It is included in the installation commands above. Do not substitute the older branches’ php-pecl-zip package.
The packages do not include an oci8 extension. Applications using Oracle need a separately verified PHP 8.5-compatible extension and client-library setup.
Extensions and encoded applications also need PHP 8.5-compatible builds. Do not copy extension .so files from PHP 8.4 or an older branch. Check ionCube Loader support for your exact PHP version and encoded application instead of assuming compatibility.
Keep PHP 8.5 updated
For the parallel collection:
yum --assumeyes upgrade 'php85-php*' php85-runtime
scl enable php85 -- php --version
scl enable php85 -- php-fpm --test
systemctl restart php85-php-fpm
For a base installation:
yum --assumeyes --enablerepo=getpagespeed-extras-php85 upgrade 'php-*'
php --version
php-fpm --test
systemctl restart php-fpm
If you installed the base-stack metapackage, update it in the same channel when updates are available:
yum --assumeyes --enablerepo=getpagespeed-extras-php85 upgrade \
php85-getpagespeed-stack
Restart the FPM service used by the application after an update so its workers load the new binaries. A newer CLI version alone does not show which version a running web worker is using. Confirm the version through a private application health check as well.
Moving an application to PHP 8.5
Read the PHP 8.4-to-8.5 migration guide. If you are coming from an older branch, also review the intervening migration guides, then test your application’s dependencies, extensions and normal requests on staging.
Keep the existing application runtime and a tested recovery path until the new setup is accepted. PHP 8.5 has no Remi EL7 build to downgrade to, and changing a branch is not the same operation as applying a security update within that branch.
If your immediate goal is to patch PHP2Shell, use the CentOS 7 PHP2Shell guide for your existing maintained branch. Moving to PHP 8.5 is optional for that fix.
The package validation covers fresh base and collection installations serving real requests through Apache mod_php and PHP-FPM. The collection can also be installed alongside PHP 8.4. These checks establish the package and runtime behavior; your application’s migration still needs its own testing.
Commercial use
Personal, development and evaluation use is free. For commercial production, GetPageSpeed Ultra or higher covers use of these packages under the repository terms.

