500 Internal Server Errors can be caused by many issues. Please be advised if you are using Internet Explorer as your browser, it is known to display an internal server error when there isn’t one. Try using another browser first to eliminate this possibility.
If you are using a different browser, then the error may be due to one of the following: permissions/ownerships of files, memory usage, or coding (.htaccess, premature end of script, software specific).
To troubleshoot the 500 internal error you need to be ready to work on the command line via an SSH connection to your server.
To determine what is causing the 500 internal server error, log in to your server via SSH and run a ‘top’ command, which will let you know if you have maxed-out your memory. If it is near full or you are unable to do this due to a ‘cannot allocate memory’ error, then you have likely found the issue. To resolve a max memory issue the server will usually need to be rebooted, especially if there is not enough memory to log in or run commands.
You can either tail -f /usr/local/apache/logs/* which will tail all the log files in the /usr/local/apache/logs/ directory, or more specifically you could tail -f /usr/local/apache/logs/error_log.
Once you have refreshed the page end your ‘tail’ command via ctrl c.
Take a look at the output of the log and it should give you more information about the error and what is causing it to occur.
photo by Andy Melton