After you've set the correct execute permissions and used the correct filename, as described above, here's one more possibility that could give you the internal server error:
You didn't mention your setup (i.e. are you using a remote web hosting service?), the platforms of your machine and the server, or how you are transfering your script (FTP?), but make sure of the following:
- If you are transferring via FTP, make sure you are transferring the file in ASCII mode, not binary mode. Not all FTP programs automatically set the correct mode for you (based on the file type) or even let you manually select.
- If you are transferring from one platform to another, make sure that your text file is conforming to the correct linebreak pattern of the server's platform, or else the server can't read the file correctly. Mac, windows, and unix all have different linebreak patterns, which are usually normalized with a proper FTP ascii file transfer. But if you are using some kind of direct transfer to a nearby server, make sure you save your file with the correct linebreak type.
Most guys here might not think these tips are important because they either don't do a lot of FTPing to a remote server or they only deal with one platform. But trust me, they are important tips. After checking execute permissions, they are the next things I check....
Addition: If you do have access to your webserver's error log, check it. If it lists a specific error, good. If it lists a non-specific, non-descriptive error, then check my tips above.