FastCGI Process Manager (FPM)
These features include: advanced process management with graceful stop/start; pools that give ability to start workers with different uid/gid/chroot/environment, listening on different ports and using different php.ini (replaces safe_mode); configurable stdout and stderr logging; emergency restart in case of accidental opcode cache destruction; accelerated upload support; "slowlog" - logging scripts (not just their names, but their PHP backtraces too, using ptrace and similar things to read remote process' execute_data) that are executed unusually slow; fastcgi_finish_request - special function to finish request and flush all data while continuing to do something time-consuming (video converting, stats processing etc.); dynamic/ondemand/static child spawning; basic and extended status info (similar to Apache mod_status) with various formats like json, xml and openmetrics supported; php.ini-based config file.
Intro
These features include:
- advanced process management with graceful stop/start;
- pools that give ability to start workers with different uid/gid/chroot/environment, listening on different ports and using different php.ini (replaces safe_mode);
- configurable stdout and stderr logging;
- emergency restart in case of accidental opcode cache destruction;
- accelerated upload support;
- "slowlog" - logging scripts (not just their names, but their PHP backtraces too, using ptrace and similar things to read remote process' execute_data) that are executed unusually slow;
fastcgi_finish_request()- special function to finish request and flush all data while continuing to do something time-consuming (video converting, stats processing etc.);- dynamic/ondemand/static child spawning;
- basic and extended status info (similar to Apache mod_status) with various formats like json, xml and openmetrics supported;
- php.ini-based config file.
php-fpm must not be reachable from an untrusted network. A client that can open a FastCGI connection controls the configuration used for the request, including auto_prepend_file, and can therefore execute arbitrary code. Access is restricted through the listen and listen.allowed_clients directives.
Install Configuration