PHP-FPM (FastCGI Process Manager) is an alternative PHP FastCGI implementation with some additional features useful for sites of any size, especially busier sites.
PHP-FPM provides a number of useful features over the traditional FastCGI php implementation. It is implemented as a daemon that controls one or more PHP process 'pools' which can be independently configured. Main configuration options for each pool include:
- Socket on which requests are received (either local or TCP)
- Separate
php.ini
settings for specific application requirements - Dynamic process control. FPM can dynamically change the number of worker processes depending on pool load.
- Uid/gid for the pool workers
- In-flight configuration updates - a change to the pool configuration will be rolled out gracefully across all pool workers without losing connections.