If you do NOT have full editing access to the web server. Such as share hosting you must contact your web hosting provider to open a ticket asking them to investigate. To speed up the investigation provide them with a screen shot or a copy of the error. Plus information about the last things you did just before noticing the error. There's maybe something wrong with the PHP server, CGI server or other servers. If this is the case there's absolutely nothing you can do to resolve this problem because you don't have access to those servers. The web hosting provider would be responsible for investigating and fixing.
If you do have full editing access to the web server. In other words 'root access'. Such as dedicated or VPS hosting the most likely cause of this issue is that one or multiple server files got somehow corrupted or misconfigured.
This often occurs on
- An error in a cgi script that caused it to fail or output an error message before it started producing valid HTML. It happens to me all the time if I have a syntax error in one of my Perl cgi scripts.
- A permissions issue attempting to access a cgi script. Depending on how your web server is configured, quite often it's not enough for the script to have "execute" permission, but it must also be owned by the correct user, and belong to the correct group. Correct settings varies widely from server to server (and even site to site on the same server). One way of fixing this is looking at the attributes of a script that's working, and copy that.
Read more about web server & webhosting issues http://drupal.org/server-permissions
The format of "500 Internal Server Error" is common for Apache web servers. That means you can also look for common error logs. Once again, the location of these logs can vary a great deal based on the specific web server configuration.
access_logis the log of successful accesses. On a shared or virtual hosting server there may be many of these, one per web site, often with site-specific names, or in site-specific locations on the server.
error_logis the log of errors. One some hosts, there is an error log per site. On others, though, even though each site may have its own access_log, there may only be a single error_log for the system.
suexec_logis the log most people forget about. This log deals with the permissions used to execute cgi and other scripts. When a cgi fails to execute because its ownership is wrong, the generic "Internal Server Error" shows in the error log, but a more specific error detailing the permissions involved shows in this log.