2 entries in php.ini
dictate the output of errors:
display_errors is usually set to
Off (Which is a good thing, because error display in production sites is generally not desirable!).
However, in development, it should be set to
On, so that errors get displayed. Check!
error_reporting (as of PHP 5.3) is set by default to
E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED (meaning, everything is shown except for notices, strict standards and deprecation notices). When in doubt, set it to
E_ALL to display all the errors. Check!
Whoa whoa! No check! I can’t change my php.ini!
That’s a shame. Usually shared hosts do not allow the alteration of their php.ini file, and so, that option is sadly unavailable. But fear not! We have other options!
In the desired script, we can alter the php.ini entries in runtime! Meaning, it’ll run when the script runs! Sweet!
These two lines will do the same effect as altering the php.ini entries as above! Awesome!
I still get a blank page/500 error!
That means that the script hadn’t even run! That usually happens when you have a syntax error!
With syntax errors, the script doesn’t even get to runtime. It fails at compile time, meaning that it’ll use the values in php.ini, which if you hadn’t changed, may not allow the display of errors.
In addition, PHP by default logs errors. In shared hosting, it may be in a dedicated folder or on the same folder as the offending script.
If you have access to php.ini, you can find it under the