Internal server errors can be caused by a few different things. The most common reasons are noted below:
- Bad Permissions, Writeable by Group
- Bad .htaccess, Invalid Command
- Exceeding Resources, Nothing in the Error Log
There are steps to take to find out what is causing the errors. To begin troubleshooting:
- Log into cPanel.
- In the Logs section, click the Error Log icon.
This log will display the last 300 Error Log messages in reverse order. If the Error Log doesn't provide any indication of the issue, try troubleshooting by following the suggestions listed below.
Bad Permissions, Writeable by Group
To troubleshoot this error, check your file permissions.
- In cPanel, in the Files section, click File Manager.
- Select the button for Web Root (public_html/www).
- Place a check mark in the box titled Show Hidden Files (dotfiles).
- Click Go.
- Review the numbers listed under the Perms column in File Manager.
- Directories and folders should be set to 755.
- Executable scripts within the cgi-bin folder must be set to 755.
- Images, media, and text files like HTML should be set to 644.
Bad .htaccess, Invalid Command
In the (dot) htaccess file, you may have added lines that are either worded incorrectly or conflicting with other coding in the file. The best way to troubleshoot this is to comment out the lines in the .htaccess file.
Always make a copy of the .htacess file before making any changes to it.
You can comment out a line in the .htaccess file by adding # to the beginning of that particular line. For example, if the code in the .htaccess file looks like:
AddType application/x-httpd-php5 php
Then, try commenting it out like so:
#AddType application/x-httpd-php5 php
Broken lines and lines that start with php_flags are the most common mistakes. If you cannot determine which line is the problem, then comment out every line.
After commenting out a line, refresh the site to see if the issue has been resolved. If it has, that confirms that the issue was in that particular line of code in the .htacess file. If the issue has not been resolved, continue troubleshooting by commenting out additional lines and checking the site.
Exceeding Resources, Nothing in the Error Log
It is possible that the 500 error is being caused by too many processes in the server queue.
With SSH (shell) access, you can view the processes running on your account. Simply type this command:
Or type the following command to view a specific user's account. (Be sure to replaceusername with the actual username.):
ps faux | grep username
Once you have the process ID (pid), type the following command to kill the specific process. (Be sure to replace pid with the actual process ID.):
kill -9 pid