The reason why error_reporting did work not is you set its value to the following string. 'E_WARNING ^ E_NOTICE ^ E_DEPRECATED'
. But it should not be a string. E_* values are PHP constants and should be used outside quotes like:
ini_set('error_reporting', E_WARNING ^ E_NOTICE ^ E_DEPRECATED);
Also you are using binary XOR (^) between these constants, which is unusual. The suggested value for a production environments is to use E_ALL
alone, for debugging. If you want all errors except E_DEPRECATED
, you can use E_ALL & ~E_DEPRECATED
.
Some PHP settings cannot be changed with ini_set
. You can check the PHP documentation for which variables allow setting on the file level. For example, max_file_uploads
is only changeable from the php.ini file (documentation).