A 500 internal error is a 500 internal error.
If an exception is being thrown, catch it. If there is an error in the code, look in the error log and fix it. 500 means there is an error, and PHP refused to continue. This is the generic "oops" error from PHP, and is what the front-facing side of PHP always sends. It would be a security risk in some cases to display all errors to people who visit a website.
To display the specific errors, either look in the logfile for your webserver, or add this snippet to the top of the php files:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL | E_STRICT); // E_STRICT should technically be used too
?>
Remember to remove this snippet on a production site.
Common errors in PHP usually involve invalid T_STRING
or T_VARIABLE
s, or a Syntax Error. Check string concats, quotes, semi-colons, etc.
As for CakePHP erroring, you probably have an older version of CakePHP, with a strict setting in your inifile that causes a fatal error on E_DEPRECATED
.
The current version of CakePHP is 2.3. You should probably update. As far as I know, CakePHP 1.2 still uses new by reference