There are many different possibilities. And in most cases it is due incorrect .htaccess file configuration.
Although this is generally caused by a problem within the script, many times it is caused by incorrect file permissions either on the script itself, or another file or directory used by the script. You should also verify that the script paths are set correctly.
You should also verify that the scripts were uploaded in the correct mode (ASCII or Binary - check the readme for the scripts to see any special instructions. Normally it is ASCII). Another problem could be permissions of the file or directory. Your script permissions should be 755, or rwxr-xr-x.
How do I fix a '500 Internal Server Error' on my website?
1. Interference with .htaccess file.
If you have implemented .htaccess on your site, it may be interfering with the web page you are trying to load into your browser. Please double check the .htaccess configurations to ensure that it doesn't contain any errors. To confirm if .htaccess misconfiguration is the cause of the 500 Internal Server error, either remove or rename the .htaccess file.
2. PHP Coding Timing Out
If your PHP script makes external network connections, the connections may time out. If too many connections are attempted and time out, this will cause the Internal Server Error. To prevent such timeouts and errors, we suggest that your relevant php scripts be coded with proper timeout rules.
3. Search on Google for your script name + Internal Server Error. For example if you get this error on Wordpress blog - query Google for Wordpress Internal Server Error Fix.