Internal Server Error

Internal Server Error is a generic error response code (500) indicating that the server has encountered an error for which no further details are available. Nevertheless, more details can usually be found in the Apache error log, generally found at: ~/logs/your-site.com/http/error.log

One common 500 error in the Apache log is "Premature end of script headers". If a site uses CGI or PHP, the permissions of all CGI and PHP files as well as the directories containing those files will most likely have to be changed to prevent such errors.

In the case of CGI scripts, see: CGI

If you are using PHP, note that Dreamhost uses phpsuexec. With phpsuexec, PHP files run under the user's account on the server instead of the default Apache user "nobody". This enhances security, but may result in 500 errors unless all PHP files are changed to 755 permissions (i.e. writable only be the user's account, but readable and executable by everyone). To learn how to change file permissions, see CHMOD. Any directories containing PHP files should also be changed to 755. Be sure to change permissions for ALL the PHP files in the application, including those in any subdirectories.

When using a One-Click Install, the correct file permissions should be set automatically. File permissions for any user-installed applications should be checked if 500 errors are encountered.

Note that improper file permissions can result in either constant 500 errors - in which case no one can access the user's site - or in seemingly random errors. In the case of random errors, it may appear that users from certain geographic regions or ISPs are unable to access the site. Changing the file permissions as outlined above will fix this problem.