Categories

Articles in Configuration Category

php.ini Error Settings

Error settings in php.ini tell PHP interpreter what kind of errors should be reported and where those should be reported. You may enable these settings in your development environment and disable few in your production environment since useful information error reports provide can also be sensitive information that outsiders shouldn’t see.

display_errors

Default value of this setting is ‘On’. It tells PHP interpreter that if it finds a type of error mentioned in error_reporting setting then add it to the output of the script. This basically means to show the errors in web browser.

display_startup_errors

Default value of this setting is ‘Off’. This tells whether to display errors that occur in PHP’s startup sequence. PHP manual recommends turning this ‘On’ only in your development environment as an aid for debugging.

log_errors

Default value of this setting is ‘Off’. This setting tells whether errors should be logged in web server’s error log file. When you finish your application and put it live, it’s a good practice that you turn ‘Off’ display_errors and turn ‘On’ log_errors in your production server’s php.ini file.

This prevents users seeing any sensitive information that can go with error reports and let you still see them via web server’s error log. But in development, you would rather like to see errors on the web browser and would set the settings other way around.

error_reporting

This setting tells what type of errors should be displayed and/or logged. There are constants that can be given as values to this setting and there is single constant (E_ALL) that represents all error types.

Default value of this setting will be like below.

error_reporting = E_ALL & ~E_NOTICE

Above it instructs to discard errors fall into notices category. For an example, if you used an undefined variable in an echo() statement, PHP generates a notice. This can be a useful feature in debugging.

Think that you defined a variable as $name but mistyped it in the echo() statement as $nmae then PHP interpreter would let you know it. So, make sure you enable notices in your development environment by using just E_ALL as below.

error_reporting = E_ALL
E_STRICT was introduced in PHP 5.0.0 and till PHP 5.4.0, it was not included in E_ALL. So, if you are using a version in-between, have the error_reporting setting as below in your development environment.

error_reporting = E_ALL | E_STRICT

Where to Head from Here...
Share with Your Peers...

We Value Your Feedback...

We love to hear what you think about this article. Please provide your opinion, suggestions and improvements using following form. Note that submitted feedback is not displayed but we will get back to you if it needs a reply.