I have installed a PHP application onto a shared hosting web server. I am getting a 500 Internal Server Error
. I don't seem to have access to any log files so I would like the error page to temporarily give details of the error.
I know how to do this in ASP.Net but I am not that familiar with PHP.
try:
at the top of the file.
look at the values in
phpinfo();
to see if anything sticks out... put it somewhere in the code and it should display a bunch of php version informationAn "Internal Server Error" is not a PHP error (as the name says). Therefore, you either have to look at your server logs (which you do not have access to, as it seems) or you can't do anything about it from PHP.
If Jeremy Morgan's solution doesn't work, try creating your own log file using
set_error_handler()
. Usually some information about the state of the application ($GLOBALS and so on) can be enough information, but PHP will (at least try to) pass you all sorts of information about where the error occurred and what type of error it is.Also, try using the "Divide And Conquer" method of debugging. Start with about half of your file, and then expand upward if it's still crashing or downward if it runs umtil that point. If you don't want to remove your code, either
/* comment out */
the code to be cut, or use the__halt_compiler()
special directive to have PHP ignore all remaining data in the file.Finally, one thing that drove me mad trying to fix it is what's called a Byte Order Mark. PHP was evaluating that BOM at the beginning of the file, causing it to send output, and causing problems while trying to send headers and the like. Probably not what your issue is, but knowledge worth having.
I doubt you're getting that error from PHP. On shared hosting it's more likely that the application's default .htaccess config is causing the error.
My guess would be a mod_rewrite without a
RewriteBase
set.