How to Enable PHP Error Reporting Using php.ini?

Problem:

You run a php script and it displays nothing – just a blank white screen. It happens due to any error occurs in that script. You know changing few things in the php.ini file will display the errors in the browser which will help you to identify the problem quickly.

Solution:

By default, the error reporting is disabled. Hiding error messages, browsers prevent showing any sensitive server information. Though, in the development phase, developers find these error messages helpful to accelerate the development.

To enable error messages, it requires few changes in the php.ini file. Follow the steps below-

Step 1: Locate the php.ini file

  • If you’re using cPanel, find the php.ini file in – /home/username/php.iniHere, username is your cPanel username.
  • If you’re using Plesk for VPS, find the php.ini file in – /var/www/vhost/$domain/etc/php.ini
    Here, $Domain is your domain name.
  • If you’re developing php locally in XAMPP server, the php.ini file is in – /xampp/php/
  • If you don’t have access in the web server, you can ask server guys for it.

Step 2: Enable error displaying option

In the php.ini file, search with “Error handling and logging” string. You’ll see something like the following image-Error handling and logging section in php

To enable errors to display in the browser, remove semicolons (;) in front of the following two lines-

; display_errors = On; display_startup_errors = On

The first line will enable displaying errors in the browser and the second line will enable displaying PHP’s startup sequence errors . The previous line can’t handle the startup sequence errors.

So, it will look like the following picture-

How to enable displaying errors in php

Step 3: Decide which errors to display

To display all possible errors, enable one of the following three error reporting  lines in the php.ini file depending on your PHP version.

  • For PHP 5.3 –
    error_reporting = -1
    or error_reporting = E_ALL | E_STRICT
  • For rest of the versions-
    error_reporting = -1
    or
    error_reporting = E_ALL

After enabling the above line in the php.ini file, it will look like the following picture –

option in php.ini file that enable displaying all type of errors in browser

Step 4: Enable error log file

To log any errors in the web server’s error log file, uncomment the following line in the php.ini file-

; log_errors = On

It will look like the following picture-

How to enable error log in php

In the production level, you must turn off the displaying error messages in the browser. But, as the error log file will remain be enabled, any error if ever occurs will be saved in the server’s log file. You can check that file to see error information.

How to find the error log file

You can find the location of your error log file in the php.ini file. Look for a line starting with “error_log = ”. For my local machine the line look like-

error_log = “F:\xampp\php\logs\php_error_log”

There are other methods to accomplish the same task. Check the following-
How to Enable PHP Error Reporting Using .htaccess File?