If your PHP installation suppresses error messages and encounters a fatal error before your PHP script produces any output then PHP will exit and return an HTTP response without any content!
Another potential cause of this issue is to have white space after a closing ?> therefore try deleting all white space after the closing php tag.
This is obvioulsy quite difficult to debug therefore you should use turn on error reporting.
Another good way of debugging this issue is by using PHP's die function to stop execution after where you think the problem is.
If you now see something, you can be sure this is what is causing your issues. This is another reason why you should implement logging as this way you can see what is happening even when no output is being shown on the screen.