Guest post by: Paul A.
Server Analyst III
One of the most common support requests we receive is regarding 500 Internal Server Errors. The 500 error itself covers a vast range of possibilities. This specifically covers common PHP 500 errors running on servers utilizing suPHP (all of our shared and reseller servers utilize suPHP).
The most common cause for the error is permissions. In a suPHP environment, PHP files and directories that they are executed from cannot be writeable by group or everyone (maximum of 755 permissions). Ensure that all PHP files are 755 or less, and the directories that they are in have permissions of 755 or less as well.
Errors can also be caused by php_flag or php_value entries in an .htaccess file. Since suPHP runs as CGI and not as module like mod_php, it cannot be controlled through an .htaccess. Any php_flag or php_value entries will cause a 500 error on a suPHP server.
A 500 error can also be caused by a malformed PHP header that contains a non-printable character prior to the PHP tag opening. This will cause a premature end of script headers error and a 500 error.