Introduction
PHP is a server-side scripting language used in web development. As a scripting language, PHP is used to write code (or scripts) to perform tasks. If a script encounters an error, PHP can generate an error to a log file.
In this tutorial, learn how to enable PHP Error Reporting to display all warnings. We also dive into creating an error log file in PHP.
What is a PHP Error?
A PHP error occurs when there is an issue within the PHP code. Even something simple can cause an error, such as using incorrect syntax or forgetting a semicolon, which prompts a notice. Or, the cause may be more complex, such as calling an improper variable, which can lead to a fatal error that crashes your system.
How to Display all PHP Errors
If you do not see errors, you may need to enable error reporting.
To enable error reporting in PHP, edit your PHP code file, and add the following lines:
<?php
error_reporting(E_ALL);
?>
You can also use the ini_set command to enable error reporting:
<?php
ini_set('error_reporting', E_ALL);
?>
Edit php.ini to Enable PHP Error Reporting
If you have set your PHP code to display errors and they are still not visible, you may need to make a change in your php.ini file.
On Linux distributions, the file is usually located in /etc/php.ini folder.
Open php.ini in a text editor.
Then, edit the display_errors
line to On
.
This is an example of the correction in a text editor:
Edit .htaccess File to turn on Error Reporting
The .htaccess file, which acts as a master configuration file, is usually found in the root or public directory. The dot at the beginning means it’s hidden. If you’re using a file manager, you’ll need to edit the settings to see the hidden files.
Open the .htaccess file for editing, and add the following:
php_flag display_startup_errors on
php_flag display_errors on
If these values are already listed, make sure they’re set to on.
Save the file and exit.
Other Useful Commands
To display only the fatal warning and parse errors, use the following:
<?php
error_reporting(E_ERROR | E_WARNING | E_PARSE);
?>
You can add any other error types you need. Just separate them with the pipe | symbol.
This list contains all the predefined constants for PHP error types.
One useful feature is the “not” symbol.
To exclude a particular error type from reporting:
<?php
error_reporting(E_ALL & ~E_NOTICE)
?>
In this example, the output displays all errors except for notice errors.
How to Turn Off PHP Error Reporting
To turn off or disable error reporting in PHP, set the value to zero. For example, use the code snippet:
<?php
error_reporting(0);
?>
How to Create an Error Log File in PHP
Error logs are valuable resources when dealing with PHP issues.
To display PHP error logs, edit the .htaccess file by adding the following:
php_value error_log logs/all_errors.log
If you don’t have access to the .htaccess file, you can edit the httpd.conf or apache2.conf file directly.
This log is typically stored in the /var/log/httpd/ or /var/log/apache2/ directory.
To enable error logging, edit your version of the file and add the following:
ErrorLog “/var/log/apache2/website-name-error.log”
You may substitute httpd for apache2 if needed. Likewise, if you’re using nginx, you can use that directory for the error log.
How to Display PHP Errors on a Webpage
Error logs are valuable resources when dealing with PHP issues.
To display PHP error logs, edit the .htaccess file by adding the following:
php_value error_log logs/all_errors.log
If you don’t have access to the file, you can edit the httpd.conf or apache2.conf file directly.
This log is typically stored in the /var/log/httpd/ or /var/log/apache2/ directory.
To enable error logging, edit your version of the file and add the following:
ErrorLog “/var/log/apache2/website-name-error.log”
You may substitute httpd for apache2 if needed. Likewise, if you’re using nginx, you can use that directory for the error log.
Conclusion
This tutorial has provided you with multiple alternatives to enable and show all PHP errors and warnings. By receiving error notifications quickly and accurately, you can improve the ability to troubleshoot PHP issues. If you are implementing new features, installing a new PHP-based app, or trying to locate a bug on your website, it is important to know which PHP version your web server is running before taking any steps.