There are many different possibilities for this. 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 the that the script paths are set correctly.
Also, please check if the file was uploaded in the correct mode (ASCII or Binary - check the readme for the scripts to see any special instructions. Normally it is ASCII).
Also it could be related to the 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?
Interference with an .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 whether a misconfiguration .htaccess is the cause of the 500 Internal Server error, either remove or rename the .htaccess file.
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 time outs and errors, we suggest that your relevant php scripts be coded with some timeout rules.
Search on Google for your Script Name + Internal Server Error Fix. For example if you get this error on Wordpress blog - query Google for Wordpress Internal Server Error Fix.