PHP-FPM User Pools
Last modified: August 28, 2019
This document explains how the system creates a user pool with PHP-FPM.
How does the system create pools?
The system creates a pool when the
/var/cpanel/userdata/[user]/[domain].php_fpm.yaml configuration file exists in the domain. This file must include the following lines:
You may place any desired pool values in this file.
- You must include the
---line above the pool values in this file.
_is_presentvalue is optional, but you must include it if you do not set any other values in the file.
.yamlfiles. Incorrect syntax in these files will cause services to fail. We strongly recommend that you create a backup of your system before you manually edit
Create a pool
To create a pool, run the
/scripts/php_fpm_config --rebuildscript to create a pool.
The system will perform the following steps:
The system scans for the
/var/cpanel/ApachePHPFPM/system_pool_defaults.yamlfiles and then generates a system configuration for each of the PHP versions.
The system searches for the domain’s
The system generates a line in the
/opt/cpanel/[ea_php_version]/root/etc/php-fpm.d/[domain].conffile for every
To direct the requests to the
php_fpmdaemon with Apache, the system modifies the
httpd.conffile with the
rebuild_files()script to resemble the following example:
The system removes any existing
conf files that do not contain a corresponding
The system creates the FPM socket in the
/opt/cpanel/phpversion/root/usr/var/run/php-fpm/obscure_domain.sock directory, where
phpversion represents the version of PHP, and
obscure_domain represents a hashed version of the domain. Your hashed version will resemble the following example:
When the pool and system configurations exist in their designated locations, the system restarts the pools. The method that the system uses to restart them depends on whether it runs as a
systemd or an
init.d system. The system then removes any PHP version pools that do not hold domains with that version.
When you create a PHP-FPM user pool, if the following conditions exist, the system automatically binds them to the
- The WHM account uses either the
- You enabled the Experimental: Jail Apache Virtual Hosts using mod_ruid2 and cPanel® jailshell setting in the Security section of WHM’s Tweak Settings interface (WHM >> Home >> Server Configuration >> Tweak Settings).