How to Fix “Internal Server Error 500”

The most common reasons for 500 errors:

 

1) Bad permissions, Writable by group

Directories and folders should be 755. Executable scripts within the cgi-bin folder must be 755. Images, media, and text files like HTML should be 644.

 

2) Bad .htaccess, Invalid command

In the (dot) htaccess file, you may have added lines that are either worded badly or conflicting. The best way to troubleshoot this is the comment out the lines in the htaccess.

You can comment out a line in the .htaccess by adding # to the beginning. You are wise to save an original copy of any file before you make changes.

For example, if the .htaccess looks like

Directory Index default.html
Add Type application/x-httpd-php5 PHP

Then try something like this

Directory Index default.html
#Add Type application/x-httpd-php5 PHP

Broken lines and lines that start with php_flag are the most common mistakes. If you cannot determine which line is the problem, then comment out every line.

 

3) Exceeding resources, nothing in the Error Log

It is possible your 500 error is 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:

Ps faux

Or type this 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 this to kill the specific process (be sure to replace pidwith the actual process ID):

Kill -9 pid