FAQ PHP & Development

What is PHP-FPM and why does it matter?

The process manager that runs PHP behind most modern hosting stacks, and the reason your host almost certainly already uses it.

Updated 4 min read Beginner

PHP-FPM — FastCGI Process Manager — is the software that actually runs PHP behind most modern hosting setups, sitting between the web server and your PHP code and handling requests through a pool of worker processes rather than one shared process trying to do everything. You do not install or manage it directly on shared hosting; it is already the layer your account runs on, and knowing it is there mostly matters for understanding why certain settings behave the way they do.

What it replaced

Older setups ran PHP as a module directly inside the web server itself, generally called mod_php. That approach tied PHP tightly to the web server's own process model, made it harder to run more than one PHP version side by side, and meant a slow PHP script could tie up a web server worker that would otherwise be free to serve other requests. FPM separates the two: the web server handles connections and static files, and hands anything that needs PHP over to a pool of FPM workers running independently.

Why this separation is useful in practice

  • Multiple PHP versions on one server. Because FPM pools run independently of the web server, different sites on the same box can run entirely different PHP versions — which is exactly what lets you change a single site's PHP version without touching anything else on the account.
  • Better isolation. A PHP process crashing or being killed for exceeding a limit affects that pool, not the web server handling every other request.
  • More precise resource control. Limits like the number of simultaneous workers, or how long an idle worker stays alive, are tuned at the pool level rather than for the entire web server.

Why some old advice stops working under it

The most common practical consequence for a shared hosting customer is that .htaccess lines like php_value memory_limit 256M, which worked under the older mod_php model, are not read by FPM at all — see using .htaccess. Settings like that move to the PHP settings area of your control panel or a user-level php.ini file instead, which is the reason a tutorial written for an older hosting stack can quietly stop working when followed on a current one.

You do not need to configure FPM yourself on shared hosting — it is part of the platform, working the same way regardless of which site you are looking at — but recognising the name explains why some settings live where they do.

Related reading