Changing PHP error settings
Sometimes your site might not function as expected, or it may display errors or warnings. Changing PHP error handling will help deduce functionality issues and prevent unwanted information on your site.
Regardless of the PHP handler in use, you can edit PHP settings the MultiPHP INI Editor in WHM or cPanel. PHP will display and log all errors except for Notices. It also prevents errors from being displayed in the browser:
While Notices are generally not the source of site level issues, they may help narrow down the root cause.
To change this setting at the global level, login to WHM and navigate to the MultiPHP INI Editor. In the Editor Mode tab, select the PHP version you need to change:

Next, search for error_reporting in the text editor, change the line to the following, and click Save:
To change this setting for a domain, click the MultiPHP INI Editor icon in the domain's cPanel account. In the Editor Mode tab, select your domain from the Select a location dropdown. Add the error_reporting setting with the value of E_ALL and click Save:
While constants are the most common method, the directive can also take integers as a setting. Below is the list of integers and their named constants:
This setting will report only USER and STRICT errors:
PHP's official documentation has information about predefined constants and bitwise operators:
Predefined Constants
Bitwise Operators
Error log locations
When trying to troubleshoot site issues, it is beneficial to check for PHP errors. But, most people do not want to display the errors on their site. Displaying errors on a live site generally isn't a good user experience. In that case, reviewing the logs will help determine if PHP is the source of the issue. PHP saves errors to different logs based on the PHP handler:
PHP-FPM - /home/USERNAME/logs/domain_tld.php.error.log
CGI, DSO, FCGI, LSAPI - /var/log/apache2/error_log
The suPHP handler logs errors in the directory where the initial script runs. When accessing a WordPress site, PHP errors log to /home/USERNAME/public_html/error_log. When accessing your-site.tld/wp-admin, errors log to /home/USERNAME/public_html/wp-admin/error_log.
Common errors
There are different types of Fatal errors, of which these three are the most common:
Incorrect permissions or ownership generally cause the Failed opening required error. The file needs to accessible by the user that is running PHP. From a security standpoint, this should be the cPanel user.
Sites referencing non-existent extensions can cause the Unable to load dynamic library error. If the site requires an extension, you will need to install it using EasyApache 4 (WHM >> Home >> Software >> EasyApache 4). Otherwise, remove the extension reference in the script or configuration file.
The Allowed memory size error occurs when a PHP script requires more memory than PHP allows. The default limit is 32M and is often enough, but sometimes a site needs more. A good rule of thumb is to add the "tried to allocate" bytes to the memory_limit plus some extra. This action allows some wiggle room for the script.
Additional Questions / Feedback
Feel free to click on the Discussion tab to let us know if you have any questions or feedback about the information in this tutorial.
Sometimes your site might not function as expected, or it may display errors or warnings. Changing PHP error handling will help deduce functionality issues and prevent unwanted information on your site.
Regardless of the PHP handler in use, you can edit PHP settings the MultiPHP INI Editor in WHM or cPanel. PHP will display and log all errors except for Notices. It also prevents errors from being displayed in the browser:
Code:
error_reporting = E_ALL & ~E_NOTICE
log_errors = On
display_errors = Off
To change this setting at the global level, login to WHM and navigate to the MultiPHP INI Editor. In the Editor Mode tab, select the PHP version you need to change:

Next, search for error_reporting in the text editor, change the line to the following, and click Save:
Code:
error_reporting = E_ALL
Code:
error_reporting = E_ALL
Code:
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
2048 E_STRICT
4096 E_RECOVERABLE_ERROR
8192 E_DEPRECATED
16384 E_USER_DEPRECATED
32767 E_ALL
Code:
error_reporting = E_USER_ERROR & E_STRICT
Predefined Constants
Bitwise Operators
Error log locations
When trying to troubleshoot site issues, it is beneficial to check for PHP errors. But, most people do not want to display the errors on their site. Displaying errors on a live site generally isn't a good user experience. In that case, reviewing the logs will help determine if PHP is the source of the issue. PHP saves errors to different logs based on the PHP handler:
PHP-FPM - /home/USERNAME/logs/domain_tld.php.error.log
CGI, DSO, FCGI, LSAPI - /var/log/apache2/error_log
The suPHP handler logs errors in the directory where the initial script runs. When accessing a WordPress site, PHP errors log to /home/USERNAME/public_html/error_log. When accessing your-site.tld/wp-admin, errors log to /home/USERNAME/public_html/wp-admin/error_log.
Common errors
There are different types of Fatal errors, of which these three are the most common:
Code:
PHP Fatal error: require(): Failed opening required '/home/USERNAME/public_html/wp-includes/load.php' (include_path='.:/opt/cpanel/ea-php56/root/usr/share/pear') in /home/USERNAME/public_html/wp-settings.php on line 19
PHP Warning: PHP Startup: Unable to load dynamic library '/opt/cpanel/ea-php56/root/usr/lib64/php/modules/memcached.so' - libmemcached.so.11: cannot open shared object file: No such file or directory in Unknown on line 0
PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 80 bytes) in /home/USERNAME/public_html/wp-includes/cache.php on line 506
Sites referencing non-existent extensions can cause the Unable to load dynamic library error. If the site requires an extension, you will need to install it using EasyApache 4 (WHM >> Home >> Software >> EasyApache 4). Otherwise, remove the extension reference in the script or configuration file.
The Allowed memory size error occurs when a PHP script requires more memory than PHP allows. The default limit is 32M and is often enough, but sometimes a site needs more. A good rule of thumb is to add the "tried to allocate" bytes to the memory_limit plus some extra. This action allows some wiggle room for the script.
Additional Questions / Feedback
Feel free to click on the Discussion tab to let us know if you have any questions or feedback about the information in this tutorial.