Bobcares

PHP-FPM Code and FileSystem Layout for EasyApache 4

by | Jan 12, 2021

PHP-FPM Code and FileSystem Layout for EasyApache 4 allows the website to handle loads.

As part of our Server Management Services, we assist our customers with several cPanel queries.

Today, let us discuss PHP-FPM Code and FileSystem Layout for EasyApache.

 

PHP FastCGI Process Manager

Here, our Support Engineers explains the following information about the PHP-FPM daemon:

  • The PHP-FPM filesystem layout
  • How the system implements PHP-FPM on your system

PHP-FPM provides an alternative FastCGI daemon for PHP that allows a website to handle significant loads. It allows a host to set specific amounts of resources to process a domain’s requests via workers available to respond to PHP requests (pools).

PHP-FPM does not overload a system’s memory with PHP from Apache processes. It only executes PHP requests, which enables it to serve content quicker than other methods.

We can only activate Apache PHP-FPM if the server has at least 2 GB of RAM available, or at least 30 MB of RAM per domain. If we enable PHP-FPM on a server with less than the required RAM, the server may experience severe performance issues.

 

PHP-FPM Code and FileSystem Layout for EasyApache

In order to understand PHP-FPM code and Filesystem layout, let us cover a few topics our Support Engineers find relevant.

PHP-FPM Code and FileSystem Layout for EasyApache

PHP-FPM implementation

The Cpanel::PHPFPM (Cpanel/PHPFPM.pm) module provides the basis of EasyApache support with PHP-FPM. The module’s built-in defaults generate configuration files that provide fully functional PHP-FPM pools for a domain.

The system uses the following configuration files:

/var/cpanel/ApachePHPFPM/system.yaml

/var/cpanel/ApachePHPFPM/system_pool_defaults.yaml

We will need to create these two files manually. To do this, we perform the following steps:

  • Create the /var/cpanel/ApachePHPFPM/ directory.
mkdir -p /var/cpanel/ApachePHPFPM/
  • Eventually, create the two files.
touch /var/cpanel/ApachePHPFPM/system.yaml
touch /var/cpanel/ApachePHPFPM/system_pool_defaults.yaml

 

File contents

Each file contains different directives from the built-in values.

The following example displays the system.yaml file’s contents:

—
daemonize: yes
  • This example only uses a different value than the built-in default for the daemonize setting.
  • The system-pool-defaults.yaml file applies the value to each pool that we create.
  • Each domain in the system requires that we create one pool.
  • Replace any unacceptable characters such as .[]() with an underscore _.

The table below contains examples of unacceptable value names:

Old Name                               New Name
syslog.facility                       syslog_facility
php_admin_value[disable_functions]    php_admin_value_disable_functions

 

The filesystem configuration files

The system stores the configuration files that control PHP-FPM in the following files:

  • /opt/cpanel/ea-php54/root/etc/php-fpm.conf – This file contains the system configurations of PHP-FPM.
  • /opt/cpanel/ea-php54/root/etc/php-fpm.d/[domain].conf – This file changes the domain to the domain setting of the website that we use. For example, the cptest1.tld.conf domain.

The .yaml files within the /var/cpanel directories generate these two files.

  • Do not edit these configuration files manually.
  • The system duplicates these configuration files for each version that we select.
  • The /opt/cpanel/ea-php54/root/etc/php-fpm.d/[domain].conf file displays ea-php54 or php54 as its version.

 

Required files

We use the required file /var/cpanel/userdata/[user]/[domain].php-fpm.yaml only if we wish to run PHP-FPM.

/var/cpanel/userdata/[user]/[domain].php-fpm.yaml – This file controls a specific domain’s pool. The system uses the built-in default values and system_pool_defaults values to generate the [domain].conf file.

 

Optional files

We use the following optional files only if we wish to change the default parameters. All domain pools use these defaults unless a .yaml file overrides them.

  • /var/cpanel/ApachePHPFPM/system.yaml

This file contains system-level settings. The system also uses this file to generate the /opt/cpanel/ea-php5?/root/etc/php-fpm.conf file, where the ? indicates that the system uses this file to generate all of the PHP versions in the php-fpm.conf file.

  • /var/cpanel/ApachePHPFPM/system_pool_defaults.yaml

The system uses this file to generate each domain’s pool and configure each user’s pool.

 

Restore PHP to the system

The system cannot remove configurations or other related files when we manually remove RPMs. If we manually remove RPMs, we could remove dependencies that our hosted websites require.

Our support techs do not recommend to perform yum remove operations with any ea-php RPMs.

If we remove PHP from the system while any of the hosted websites still use it, those websites will display errors. In addition, Apache could fail to display the website entirely.

Before we perform a yum remove, confirm that none of the hosted websites use the PHP version that we wish to remove with WHM’s MultiPHP Manager interface.

To restore PHP versions to the system, we run:

ea_install_profile –install /etc/cpanel/ea4/profiles/cpanel/default.json
/usr/local/cpanel/scripts/restartsrv apache_php_fpm

[Did the command fail? Contact us now!]

 

Conclusion

In short, PHP-FPM Code and FileSystem Layout for EasyApache allows the website to handle loads. Today, we saw a method of implementation by our Support Engineers on the same.

PREVENT YOUR SERVER FROM CRASHING!

Never again lose customers to poor server speed! Let us help you.

Our server experts will monitor & maintain your server 24/7 so that it remains lightning fast and secure.

GET STARTED

var google_conversion_label = "owonCMyG5nEQ0aD71QM";

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *

Never again lose customers to poor
server speed! Let us help you.

Privacy Preference Center

Necessary

Necessary cookies help make a website usable by enabling basic functions like page navigation and access to secure areas of the website. The website cannot function properly without these cookies.

PHPSESSID - Preserves user session state across page requests.

gdpr[consent_types] - Used to store user consents.

gdpr[allowed_cookies] - Used to store user allowed cookies.

PHPSESSID, gdpr[consent_types], gdpr[allowed_cookies]
PHPSESSID
WHMCSpKDlPzh2chML

Statistics

Statistic cookies help website owners to understand how visitors interact with websites by collecting and reporting information anonymously.

_ga - Preserves user session state across page requests.

_gat - Used by Google Analytics to throttle request rate

_gid - Registers a unique ID that is used to generate statistical data on how you use the website.

smartlookCookie - Used to collect user device and location information of the site visitors to improve the websites User Experience.

_ga, _gat, _gid
_ga, _gat, _gid
smartlookCookie
_clck, _clsk, CLID, ANONCHK, MR, MUID, SM

Marketing

Marketing cookies are used to track visitors across websites. The intention is to display ads that are relevant and engaging for the individual user and thereby more valuable for publishers and third party advertisers.

IDE - Used by Google DoubleClick to register and report the website user's actions after viewing or clicking one of the advertiser's ads with the purpose of measuring the efficacy of an ad and to present targeted ads to the user.

test_cookie - Used to check if the user's browser supports cookies.

1P_JAR - Google cookie. These cookies are used to collect website statistics and track conversion rates.

NID - Registers a unique ID that identifies a returning user's device. The ID is used for serving ads that are most relevant to the user.

DV - Google ad personalisation

_reb2bgeo - The visitor's geographical location

_reb2bloaded - Whether or not the script loaded for the visitor

_reb2bref - The referring URL for the visit

_reb2bsessionID - The visitor's RB2B session ID

_reb2buid - The visitor's RB2B user ID

IDE, test_cookie, 1P_JAR, NID, DV, NID
IDE, test_cookie
1P_JAR, NID, DV
NID
hblid
_reb2bgeo, _reb2bloaded, _reb2bref, _reb2bsessionID, _reb2buid

Security

These are essential site cookies, used by the google reCAPTCHA. These cookies use an unique identifier to verify if a visitor is human or a bot.

SID, APISID, HSID, NID, PREF
SID, APISID, HSID, NID, PREF