42

I just want to only turn on PHP errors and disable all notices and warnings in PHP files.

Peter Mortensen
  • 30,030
  • 21
  • 100
  • 124
nic
  • 909
  • 3
  • 14
  • 22
  • 1
    possible duplicate of [Turn off warnings and errors on php/mysql](http://stackoverflow.com/questions/1645661/turn-off-warnings-and-errors-on-php-mysql) – mario Dec 28 '11 at 07:12

6 Answers6

57

It is probably not the best thing to do. You need to at least check out your PHP error log for things going wrong ;)

# PHP error handling for development servers
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
php_flag log_errors on
php_flag ignore_repeated_errors off
php_flag ignore_repeated_source off
php_flag report_memleaks on
php_flag track_errors on
php_value docref_root 0
php_value docref_ext 0
php_value error_log /home/path/public_html/domain/PHP_errors.log
php_value error_reporting -1
php_value log_errors_max_len 0
Peter Mortensen
  • 30,030
  • 21
  • 100
  • 124
imp
  • 1,080
  • 7
  • 13
  • 5
    Remembet to never send an error_log file to a public access location. – glerendegui Oct 28 '15 at 14:34
  • @glerendegui indeed, I am not suggesting this is best practice. Like the comment says for a simple development environment, not production its very handy to access the error log on your localhost||network. – imp Oct 31 '15 at 06:27
  • @glerendegui can you explain why not send an error_log file to a public access location? – Tarik Nov 15 '16 at 09:31
  • @Tarik error_log file may contain very sensitivy info about your app bugs. Leaving this file in a public environment looks very unsure. Anyone could try access yourdomain/error_log and access that info – glerendegui Nov 15 '16 at 14:02
  • Does this also disable the error show in mysql ? can anyone post related hide show error from sql that php handles and shows. – zero8 Feb 11 '19 at 05:55
30

If you are in a shared hosting plan that doesn't have PHP installed as a module you will get a 500 server error when adding those flags to the .htaccess file.

But you can add the line

ini_set('display_errors','off');

on top of your .php file and it should work without any errors.

Peter Mortensen
  • 30,030
  • 21
  • 100
  • 124
Fortes
  • 920
  • 12
  • 23
20

Try:

php_value error_reporting 2039
Peter Mortensen
  • 30,030
  • 21
  • 100
  • 124
Sudhir Bastakoti
  • 97,363
  • 15
  • 155
  • 158
  • 1
    Nice! Can you please provide the logic behind the integer 2039? – Binod Kalathil Jul 03 '13 at 06:55
  • 4
    The value 2039 stands for E_ALL & ~E_NOTICE. Found that here: http://www.ibm.com/developerworks/library/os-debug/ – qwerty Oct 07 '13 at 11:37
  • 4
    when i put it in .htaccess it gives 500 internal error – Rajesh Patel Jan 14 '16 at 12:17
  • 1
    @RajeshPatel this works with mod_php but not php-fpm. With php-fpm you can use SetEnv PHP_VALUE "error_reporting = 2039" – mpchadwick Jan 26 '18 at 02:29
  • The value comes from the values of the constants PHP assigned to E_ALL and others. You can get the number using a simple echo on a php file doing as example `echo E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_WARNING & ~E_NOTICE` which should be a string used usually on the php.ini – NetVicious Jan 14 '22 at 10:01
7

Fortes is right, thank you.

When you have a shared hosting it is usual to obtain an 500 server error.

I have a website with Joomla and I added to the index.php:

ini_set('display_errors','off');

The error line showed in my website disappeared.

Peter Mortensen
  • 30,030
  • 21
  • 100
  • 124
Rich
  • 71
  • 1
  • 1
2

Use:

ini_set('display_errors','off');

It is working fine in WordPress' config.php.

Peter Mortensen
  • 30,030
  • 21
  • 100
  • 124
1

I used ini_set('display_errors','off'); and it worked great.

Peter Mortensen
  • 30,030
  • 21
  • 100
  • 124
Mohamed Badr
  • 61
  • 1
  • 8