Back to Technical Support

How To Troubleshott CGI


Below are solutions to some of the more common CGI script problems in question-and-answer format.

When I activate my CGI program, I get back a page that says "Internal Server Error. The server encountered an internal error or misconfiguration and was unable to complete your request."

This is generally caused by a problem within the script. Log in via SSH and test your script in local mode to get a better idea of what the problem is. To do this, go into the directory in which your script is located, then execute the script. To execute the script, you can do it in two ways:

  1. Type "perl myscript.pl" (Perl being the language interpreter in this case).
  2. Or simply type "myscript.pl" alone. That will work if the first line is well-written to indicate the location of Perl.

The first one is useful to see if there's any error IN your script. The second one is useful to test if your "calling line" (the first line of the script) is okay, for example, if you entered the right location of Perl.

Make sure you have set the permissions correctly. Your CGI script(s) need to be set to chmod 755. If you are using one of our pre-installed scripts there is a table below that will tell you what each file should be set to. If you create new directories inside the cgi-bin they also need to be set to chmod 755.

I am being told "File Not Found," or "No Such File or Directory."

Make sure you are referencing the correct path and file name of the script. Unix-type systems are case-sensitive so Formmail.cgi is different from formmail.cgi. Also make sure to upload the file in ASCII mode, not Binary.

When I test my Perl script in local mode (by SSH), I have the following error: "Literal @domain now requires backslash at myscript.pl line 3, within string. Execution of myscript.pl aborted due to compilation errors."

This is caused by a misinterpretation by Perl. You see, the "@" sign has a special meaning in Perl; it identifies an array (a table of elements). Since it cannot find the array named domain, it generates an error. You should place a backslash (\) before the "@" symbol to tell Perl to see it as a regular symbol, as in an e-mail address.

I am getting the message "POST not implemented."

You are probably using the wrong reference for cgie-mail. Use the reference /cgi-bin/cgie-mail/mail.txt. Another possibility is that you are pointing to a cgi-bin script that you have not put in your cgi-bin directory. In general, this message means that the web server is not recognizing the cgi-bin script you are calling as a program. It thinks it is a regular text file.

It's saying I don't have permission to access /

This error message means that you are missing your index.htm file. Note that files that start with a "." are hidden files. To see them, type ls -al. If you wish to FTP this file, go to the home/yourdomain directory.



Related Articles

How To Backup Your Website In WordPress
How To Clean Your Site In WordPress
How To Configure Miva Store Utility
How To Find Your Site Manager Account's IP Address
How To Install CGI Software

Can’t Find what you need?

No worries, Our experts are here to help.