I agree with WebHosting Watch: it can be permissions...but I'm not sure I fully agree with that it's usually the problem.
In my opinion, please don't just change things hoping they will work. That's shooting in the dark, which isn't good. It's just bad practice.
Find your PHP or apache error log, and look for the error in there. Then you'll know what course of action to take.
If nothing is there, you'll need to adjust the logging on your server. Take a look here
http://php.net/manual/en/errorfunc.configuration.php
Best of luck!