Why doesn't my CGI work? Print

  • 35

Make sure when you upload the CGI file DO NOT upload in binary mode, instead use ASCII mode. Uploading in binary will cause the server not to recognize the scripts as executables. Most FTP clients will upload .pl or .cgi files in binary mode by default so you will need to change this. You will need to upload the scripts into your cgi-bin directory for security reasons, however they will execute from anywhere within your account.
The last step is to set the file permissions. This is otherwise known as chmoding and can be done from most FTP clients.

Below are solutions to some of the more common CGI script problems.

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

This is generally caused by a problem within the script. Check your script settings again to see that you have entered the correct server information and have set the correct permissions for the script. If this information is correct, you'll need to contact whoever wrote or is distributing the script for further assistance.

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

Upload your Perl or CGI scripts in ASCII mode, not binary mode.

When I test my Perl script in local mode (by Telnet), I have the following error: "Literal @domain now requires a back slash 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 back slash (\) before the "@" symbol to tell Perl to see it as a regular symbol, as in an email address.

I am getting the message "POST not implemented."

You are probably using the wrong reference for cgiemail. Use the reference /cgi-bin/cgiemail/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 really 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.


Was this answer helpful?

« Back

Powered by WHMCompleteSolution