Skip to main content

ArtinTech Solution

Ubuntu VPS Guide: Update PHP-FPM Workers and Restart Safely

On a VPS, the PHP security update is your job, and it has a trap: new files on disk do not change the code your running PHP-FPM workers use. This guide uses Ubuntu 24.04 and PHP 8.3 as the example. Adjust the version numbers to your server.

1. See where your PHP comes from

apt policy php8.3-fpm

Ubuntu 24.04 typically shows a version like 8.3.6-0ubuntu0.24.04.x from the official security repository. That looks old next to the upstream fix in 8.3.36, but Ubuntu patches inside the version number.

2. Update the packages

Use the names of the PHP packages actually installed on your server.

apt update
apt install --only-upgrade <your installed php8.3 packages>

If the answer is that the newest version is already installed, you already have the latest patched build from Ubuntu.

3. Read the proof in the changelog

zcat /usr/share/doc/php8.3-fpm/changelog.Debian.gz | head -4

A patched package says Security update and names CVE-2026-109618 and CVE-2026-109619. On Linux the changelog is the proof, not the version number.

What tells the truth about a PHP patch: the build date on managed hosting, the package changelog on Linux and the service start time
Evidence beats version numbers.

4. Check that the workers are running the new code

grep php8.3-fpm /var/log/dpkg.log | tail
systemctl status php8.3-fpm

If the service start time is older than the package install time, restart it:

systemctl restart php8.3-fpm

Restart queue workers and other long-running app processes too. If your app has an admin-only status page, the worker process ID should change after the restart.

Four steps: package updated, old workers still run old code, restart PHP-FPM, process ID changes as proof
An update is not finished until the workers restart.

5. Optional stopgap for CVE-2026-115560

A third flaw, CVE-2026-115560, was disclosed on October 23 without an emergency patch at the time. PHP advises turning off session upload progress until a fix lands. Set it in the server config, not with ini_set in code.

echo "session.upload_progress.enabled=0" > /etc/php/8.3/fpm/conf.d/99-php-hardening.ini
systemctl restart php8.3-fpm
php-fpm8.3 -i | grep upload_progress.enabled

This is a temporary measure, not a replacement for the update. Running Docker? Update the base image, rebuild and redeploy the containers.

Why a restart can go wrong

Restarting PHP-FPM drops in-flight requests, a bad configuration file can stop the service from starting, and queue workers can be forgotten. On a production server serving customers, that is where mistakes cost money.

Let ArtinTech Solution run it

  • Updates PHP packages and reads the changelog proof
  • Restarts PHP-FPM, queue workers and app processes in a safe order
  • Verifies the running workers use the patched code
  • Applies and tests temporary mitigations where an update is not yet possible
  • Hardens the server and checks it for signs of a prior compromise

Don't want to risk your server security? Hire ArtinTech Solution experts today for professional security audits, PHP upgrades, and emergency fixes.

Share this article

Leave a Reply

Your email address will not be published. Required fields are marked *