Q. I'm using error logging in place of error displaying on production web sites. However, I do not want to see error messages about the use of uninitialized variables. I'd like to see all critical errors, except for notices and coding standards warnings. How do I disable error messages?
A. PHP provides various levels of error reporting using a bit-field as follows:
| Error Bit | Purpose |
|---|---|
| E_ALL | All errors and warnings (doesn't include E_STRICT) |
| E_ERROR | Fatal run-time errors |
| E_WARNING | Run-time warnings (non-fatal errors) |
| E_PARSE | Compile-time parse errors |
| E_NOTICE | Run-time notices (these are warnings which often result from a bug in your code, but it's possible that it was intentional (e.g., using an uninitialized variable and relying on the fact it's automatically initialized to an empty string) |
| E_STRICT | Run-time notices, enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code. |
| E_CORE_ERROR | Fatal errors that occur during PHP's initial startup |
| E_CORE_WARNING | Warnings (non-fatal errors) that occur during PHP's initial startup |
| E_COMPILE_ERROR | Fatal compile-time errors |
| E_COMPILE_WARNING | Compile-time warnings (non-fatal errors) |
| E_USER_ERROR | User-generated error message |
| E_USER_WARNING | User-generated warning message |
| E_USER_NOTICE | User-generated notice message |
Show only errors
Open /etc/php.ini file
# vi /etc/php.ini
Set error_reporting as follows:
error_reporting = E_COMPILE_ERROR|E_ERROR|E_CORE_ERROR
Alternately, you can show all errors, except for notices and coding standards warnings
error_reporting = E_ALL & ~E_NOTICE
Save and close the file. Restart apache web server:
# /etc/init.d/httpd restart
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop













{ 8 comments… read them below or add one }
I am running my web site on a shared host.
In my case the /etc/php.ini is not accessible, but they allow me to use local php.ini in each folder.
Other web hosting companies allow to modify .htaccess, so the alternative solution for this:
error_reporting = E_ALL & ~E_NOTICE
when using .htaccess is:
php_value error_reporting 2039
In the case where you have a shared host, the php.ini file needs to be recursively copied to each folder that will be executing PHP code.
To automate this process, you can use this script:
COMPLETE!
You could instead override the values of PHP configuration file “php.ini” inside your code by using the ini_set function , which has two parameters , one of them is the name of the configuration value ” for example ‘display_error’ ” and the other is the value we want to set it to ‘ 0 or 1 as an example for display_error’.
in this case you don’t even need to restart the httpd , and you don’t affect other websites on a shared host
How to disable notice and warning error without using in PHP.ini file Like(error_reporting = E_ALL & ~E_NOTICE)
Please let me know if you know any other alternate solutions.
Thanks
Mani
very very useful site for me. I am getting lots of linux tips from here. Thank you very much and keep it up in the future too.
Starting with PHP 5.3 there is now also E_DEPRECATED
Same thing like Mani, How can I get out of these issues without accessing php.ini
Thanks in advance
very very useful site for me. I am getting lots of linux tips from here. Thank you very much and keep it up in the future too.