A “500 Internal Server Error” message usually indicates a problem on the server-side. It could be a script that malfunctioned or improper settings in your .htaccess file, but it always indicates that your browser was able to reach the server but the server was unable to serve the requested page.
Here are several possible reasons for this error:
1. In most of the cases the problem is caused by the content of an .htaccess file located inside the folder that you are trying to load – usually your domain name’s main directory.
Due to technical and/or security reasons a few directives are not allowed to be overriden via .htaccess. Such directives are, for example: Options, ExecCGI, FollowSymLinks, Includes.
Also, it is not possible to change values from the PHP configuration using “php_flag” or “php_value” in .htaccess.
In case you receive an Internal Server Error 500 message – please check if any of the afore-mentioned directives are present in your .htaccess file and either comment on them by placing “#” at the beginning of the line or delete the entire line.
In some cases there are so many lines in your .htaccess that it is difficult to inspect all of them to determine which one, if any, is causing the problem. An easy way to find out whether it is the .htaccess file that lies at the bottom of this problem is to simply disable the file by renaming it to a.htaccess, for example. This action is easily reversable.
2. If the content of your .htaccess file is not the case, it is recommended that you activate the Error Logs for the problematic website and try to reproduce the problem several times so that the logs could be generated.
- In case the logs show a “Permission denied” message, then the reason for the server error is related to file/folder permissions.
Make sure that the permissions of the file(s)/folder(s) are either 644 or 755 – this will eliminate the possibility of incorrect permissions causing the problem.
IMPORTANT: PHP files must not have 777 permissions. If you are trying to open a PHP file that has such permissions, it will result in an “Internal Server Error 500”. To resolve the problem, simply change the permissions of the file to 644 or 755. - In case the logs show a “Premature end of script headers” message, such error message could be invoked by several reasons:
- The script requires more than the usual time to be processed and is being killed by our system. In order to ensure the stable performance of all other hosting accounts, we have set the “max_execution_time” option in the PHP Settings to 30 secs.
- There is an error within the programming code of the script in question. In this case it should be revised by a professional web developer who will be able to assist you further.
3. If you are using a Perl/CGI script (.pl and .cgi files):
Make sure that the path is correct. Each Perl/CGI script must begin with:
#!/usr/bin/perl