PHP-FPM Service Down Checklist for WordPress
PHP-FPM is the service that processes PHP requests for WordPress when using Nginx. If PHP-FPM stops, crashes or points to the wrong socket, your site may show 502 Bad Gateway, blank pages or timeout errors.
Common causes
- PHP-FPM service is stopped.
- The wrong PHP version is configured.
- Nginx points to the wrong PHP-FPM socket.
- RAM is exhausted.
- A plugin creates fatal PHP errors.
- The PHP-FPM pool is overloaded.
Checklist
- Check the active PHP-FPM service name.
- Check PHP-FPM status.
- Check Nginx error log for upstream errors.
- Check the fastcgi_pass value in the Nginx server block.
- Check RAM and CPU usage.
- Restart PHP-FPM only after confirming the issue.
- Reload Nginx after config changes.
- Open the website and wp-admin again.
- Watch logs after recovery.
- Document the PHP version used by the site.
Final check
PHP-FPM should be active, Nginx should point to the correct socket and the WordPress site should load without new upstream errors in the log.
When to Use This Checklist
Use this checklist when a WordPress site using Nginx shows 502 errors, blank pages or PHP backend failures.
Required Tools
SSH access, Nginx, PHP-FPM, WordPress files, Nginx error log, VPS terminal
Before You Start
Find the PHP version used by the site before restarting or editing PHP-FPM configuration.
Structured Checklist Steps
- Identify PHP-FPM service name.
- Check PHP-FPM status.
- Check Nginx error log.
- Verify fastcgi_pass socket path.
- Check RAM and CPU.
- Restart PHP-FPM if stopped.
- Reload Nginx if config changed.
- Test frontend and wp-admin.
- Monitor logs after recovery.
Verification Steps
- PHP-FPM status is active.
- Nginx config test passes.
- Website loads normally.
- No new upstream socket error appears.
Rollback Plan
If PHP-FPM fails after a config change, restore the previous pool config or Nginx server block, then restart PHP-FPM and reload Nginx.
Common Mistakes
- Restarting services without reading logs.
- Using the wrong PHP version.
- Pointing Nginx to a missing socket.
- Ignoring RAM exhaustion.
- Changing multiple configs at once.
Related Commands
sudo systemctl status php8.2-fpm
sudo nginx -t
sudo tail -n 100 /var/log/nginx/error.log
free -h
top
sudo systemctl restart php8.2-fpm
sudo systemctl reload nginx