====== Troubleshooting PHP Not Reporting Errors ====== You've enabled PHP error reporting so that you may troubleshoot PHP code, but for some reason, no errors are being reported. Why? On the ''phpinfo.php'' page, you see the following local values, which are correct: display_errors On display_startup_errors On error_log php_error.log error_reporting E_ALL To diagnose the issue, let's create a test script called ''test.php'' and add the following lines: Since the faked function ''zzzzzxzzzzxd'' doesn't exit at all, visiting ''http://youdomain.com/test.php'' should trigger a fatal error. However, there is no output of any error on the web browser, nor on the local VirtualHost PHP error logs. Why not? Check ''phpinfo.php'' again. We see **error_log**'s global value is ''32767'', while the local value is ''E_ALL''. Check the global ''php.ini'' and you will find that **error_reporting** is set to ''E_ALL''. This is because you have a local override set in .htaccess as ''php_value error_reporting E_ALL''. The error reporting syntax in the .htaccess **php_value** override is incorrect. If it is set in php.ini, it should be ''error_reporting = E_ALL'', but if it is an override in the Apache conf or .htaccess, ''error_reporting'' should be an integer, and not ASCII characters. Such incorrect syntax will lead to a ''500'' error for the site. The corrrect override syntax should be: php_value error_reporting 32767 Here ''32767'' in Apache conf or .htaccess is equivalent to ''E_ALL'' in php.ini. After the above change, PHP error reporting should work fine and PHP should report a fatal error for ''test.php'' in both the browser and the error log.