PHP Versions & Configuration
Custom configurations and multiple php versions are only supported when using PHP-FPM or FCGID as php-interface. It is not possible using mod_php which should be avoided due to security reasons.
1. PHP configurations / php.ini
You can manage multiple php configurations (php.ini) for your customers domains. Besides the main ini-settings, depending on your php interface, you can adjust the process-manager settings, enable slowlog, pass Authorization-header (FPM) or the used php-binary and process/requests settings (FCGID) and more.
1.2 Properties of PHP configuration
Select the desired php-version from the selectbox. To manage different version, see 2. PHP-FPM versions below.
Enable slowlog (per domain)
If enabled, a slow-log for each domain with this configuration assigned will be created in the logfile directory (read from settings) with the name
Add "-pass-header Authorization" / "CGIPassAuth On" to vhosts
This is available for apache only
If enabled, enables passing HTTP authorization headers to scripts as CGI variables.
Override FPM-daemon settings
If enabled, the process-manager related settings inherited from the selected php-version will be overwritten. The affected fields are marked with the note Only used if "Override FPM-daemon settings" is set to "Yes"
You can set and adjust desired
php.ini directives and values as needed/required. There are also some replacer variables that can be used to further customize the config based on customer/domain values.
If you add new directives you need to validate that they are added to the list of available directives in
Settings » PHP-FPM as the generated fpm-pool configuration files need a mapping of the directive to the corresponding section, e.g. php_flags, php_values, php_admin_flags and php_admin_values
FCGID is available for apache only
Path including the binary of the corresponding php-cgi version, e.g.
Allowed file-extensions that should be passed to the fcgid-handler, default is
PHP Processes for this domain
Define the value for
PHP_FCGI_CHILDREN or leave empty for default (see
Settings » FCGID)
Maximum php requests for this domain
Define the value for
PHP_FCGI_MAX_REQUESTS. The maximum requests allowed on a per domain base, default can be adjusted in
Settings » FCGID
This value sets the desired default permissions for created files by the php-handler, the default value for this can also be globally set in
Settings » FCGID.
You can set and adjust desired php.ini directives and values as needed/required. There are also some replacer variables that can be used to further customize the config based on customer/domain values.
2. PHP-FPM versions
Froxlor allows management of multiple php-fpm versions. For Debian/Ubuntu this can easily be achieved by using the deb.sury.org repository, or ppa:ondrej/php on ubuntu respectively. Then simply install the desired version with the required/needed extensions.
2.1 Properties of PHP-FPM versions
php-fpm restart command
Enter the service/systemctl command to restart the specific php-fpm version, e.g.
service php8.1-fpm restart
Configuration directory of php-fpm
This is the target directory where all the domains pool-configs will be generated into. This is a froxlor-managed directory, you should not create custom files in there as they will get deleted by the cronjob. To find the correct folder, check the
php-fpm.conf file for something like this (default):
include=/etc/php/8.1/fpm/pool.d/*.conf. This means the configuration directory should be set to
Process manager control (pm)
Choose how the process manager will control the number of child processes. Possible values: static, ondemand, dynamic. For more information, see https://www.php.net/manual/en/install.fpm.configuration.php
Limits the extensions of the main script FPM will allow to parse. This can prevent configuration mistakes on the webserver side. You should limit FPM only to the .php extensions to prevent malicious users to use other extensions to execute php code.
Add custom configuration to each PHP-FPM pool-configuration, for example
pm.status_path = /status for monitoring. The replacer variables below can be used in this setting. Possible values can be found on https://www.php.net/manual/en/install.fpm.configuration.php (note that froxlor generates the required ones for you automatically).
The config won't be checked for any errors. If it contains errors, PHP-FPM might not start again!