500 server errors are very generic. they only mean that "an error has occurred" they are generally used to hide the actual error from the user, but are of no help when developing.
Is this on a local or remote testing server?
try adding the following code at line 1, this may show the actual error so we can get an idea of the problem:
<?php
error_reporting(E_ALL);
ini_set('display_errors','on');
?>