Internal server errors can be caused by a few different things. We're going to go over the most common reasons you'll see a 500 error and what to do about it.
To find out what's causing the 500 error:
Click Error Log, from within the Logs section
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 click File Manager from the Files section
Select the button for Web Root (public_html/www)
Tick the box titled Show Hidden Files (dotfiles)
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 .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.
Note: 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. For additional information regarding php_flags, check out our Use a Custom php.ini article.
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 replace username 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
Still need help? Get in touch.