Why a bug in PHP itself changes the usual playbook
Why end-of-life branches do not get the fix
Upgrading the app versus taking it off the internet
- If the site has to be public, such as a store, a booking system, or a marketing site, isolation means downtime. Treat isolation as a short bridge and put the upgrade first.
- If the app is an internal tool only staff use, isolation can be quick and cheap, and it can hold for longer. Still plan the upgrade, because isolated servers tend to get exposed again later when someone opens a port for convenience.
Mistakes that leave servers exposed anyway
php -v. That command shows the default command-line PHP, which is often not what websites use. A server can run several PHP versions side by side through PHP-FPM pools, control panel builds, or containers. These read-only checks give a more honest picture:
BASH
# Default CLI PHP only. Websites may use a different version.
php -v
# PHP-FPM master processes and the config file each one uses
ps -eo pid,args | grep '[p]hp-fpm: master'
# cPanel EasyApache PHP builds (this path exists only on cPanel servers)
ls -d /opt/cpanel/ea-php*
# PHP inside a running container (replace CONTAINER with a name from docker ps)
docker exec CONTAINER php -vphp -v reports. Anything on a supported branch gets the official patch as soon as it is available. Anything on an EOL branch either moves to a patched supported release or comes off the public internet today, with the WAF as extra cover rather than the plan. Then check whether anything got in before you closed the door.