|
Our support does not cover CGI script debugging. We consider this a function of web design and we do not offer
any in-house web development or consulting services. If you open a ticket to request help support will upload a
sample script to show that cgi will operate.
Here are a few things to try when you are troubleshooting a CGI script:
First of all, thoroughly read through the instructions that came with the script and also check the website
where the script was downloaded for troubleshooting info and user forums.
Make sure that you have uploaded your script to your cgi-bin which is one level up from your public httpdocs directory.
Check to see if the script was uploaded to the server in the proper format (ASCII not binary).
Make sure that there are not any DOS/Windows carriage returns (ie. ^M) at the end of each line in the script. This
is usually caused by a text editor or FTP program that is not properly uploading your script in a Unix/Linux format.
If this is happening, try changing your code line break settings or upload settings to Unix/Linux.
Here's how this is done in Dreamweaver: From the menu, goto Edit > Preferences > Code Format, then change
Line Breaks to "LF (Unix)".
The ^M is actually the ASCII LF character. Windows uses CR/LF, Mac uses CR and UNIX uses LF as line terminators.
Most FTP programs translate the line terminators when doing an "ASCII" or "text" transfer,
but they do not do the translation if it is a binary transfer. The problem with CGI files is that the FTP program
may not recognize the extension, so it assumes that it is a binary file. Turning off the auto detect feature and
manually transferring the CGI files as ASCII should solve your problem. Another option would be to add .cgi/.pl
to the list of ASCII file extensions.
Check the script to make sure that magic comment specifies where perl is located: #!/usr/bin/ perl
Verify that all the paths are correct, including your public directory path. Do not use the "www" part
of your domain in your public directory path.
Check to see if all the file permissions are set correctly. Permissions can be set using an FTP program that allows
permissions to be set on transfer. Typically scripts are set to be 755, user: read, write, execute; group: read,
execute; other: read, execute (-rwxr-xr-x), but you should always check your script instructions or README to be
sure.
PLEASE NOTE: For security purposes, within the cgi-bin, script permissions cannot be set higher than 755, or
user: read, write, execute; group: read, execute; other: read, execute (-rwxr-xr-x).
If you have checked all the above and are still receiving an "Internal Server Error" when trying to
execute the script, check the domain's error_log file. Most likely you will see a "Premature end of script
headers" error which usually means that the file has been corrupted in some way. This can occur when the script
is uploaded or when the script is edited and saved in certain text editors. Usually the file is corrupted with
the (line feed) hidden character which is commonly mistaken with the (carriage return).
Since installing a CGI script is extremely difficult for new webmasters, you may want to consider asking a friend
with CGI experience to walk you through the process or hire a webmaster for this part of your site.
|