500 - Internal server error NOT appearing in error.log (or access.log)

Solution 1:

SOLVED: Alas, there is a load balancer controlling the server, and the load balancer was set up to stop connections after 10 seconds of inactivity or so. The problem is solved now. The reason the 500 did not show up in the apache's error.log is that it was the "outer" system (the load balancer) stopping the connection, not the server itself. Thank you all for your ideas and help! Hopefully someone else will find this enlightening some day.

Best regards, Roman.

Solution 2:

This could be an issue with your Apache LogLevel directive or it could be related to the PHP runtime error handling.

Solution 3:

Other possibility : Look for @ in your source files.

Extract from php documentation

Warning
Currently the "@" error-control operator prefix will even disable error reporting for critical errors that will terminate script execution. Among other things, this means that if you use "@" to suppress errors from a certain function and either it isn't available or has been mistyped, the script will die right there with no indication as to why.

Credits go to Luc M, which saved me, and a lot of CodeIgniter users.