My CGI/Perl scripts are failing with error 500 (Internal Server Error)


These errors are nearly always related to a coding error within the script, or bad variables being passed into the script. If you encounter an error "500 Internal Server Error" whilst running your CGI and Perl scripts, try the following in order:

- Ensure you have uploaded the script through FTP using ASCII mode (not Binary), or that it has Unix-style carriage returns.

- Check the interpreter path on the first line of the script. For Perl it should always be "#!/usr/bin/perl".

- Make sure the script filename ends in either ".pl" or ".cgi".

- Make sure the script can execute. It should have permissions of "755". Most FTP clients support this.

- Put "use CGI::Carp qw(fatalsToBrowser);" into the second line of your script. This will make Perl print the error instead of the "500 Internal Server Error" page, and will allow you to find out where your script is breaking.

Other potential problems include bad syntax in an .htaccess file (if you've created/edited one). Check your error log for details (there are articles on how to get to your error logs).

Was this answer helpful?

 Print this Article

Also Read

When I try and view my website I get an HTTP Error 403 - Forbidden message.

A '403 Forbidden' message means that the browser has requested a page that it is not permitted to...

My CGI/ASP/PHP script is giving an error when trying to write to a file.

This applies to Linux hosting accounts only. This is almost certainly down to incorrect...

I can't see the images on my website. Why?

There are several possible reasons why your images are not showing up on your pages as expected:...

The images on my website have been corrupted, what went wrong?

This can occur if you are uploading your images using FTP, using the Binary setting rather than...

My links are not working. What is wrong?

First of all, check that the link is correctly spelled, and that the correct case is used -...