Using the Common Gateway Interface (CGI)
The NCSA defines the Common Gateway Interface (CGI) as: "...a standard for interfacing external applications with information servers, such as HTTP or Web servers."
Basically, the CGI allows you to call server-side scripts from HTML documents in order to provide dynamic content.
Some examples of scripts that use the CGI include:
- Site Searches - allow visitors to your site to search for words or strings of text. We offer a pre-packaged script for this in the netConsole.
- Form to Email - if you need to gather visitor feedback or any other information from your site, a form to email script is the way to go. We offer a pre-packaged script for this in the netConsole.
- Browser Detection/Redirection - enables you to detect which web browser your visitor is using and direct them to an appropriate page. View an example of Browser Detection/Redirection.
- Shopping Carts - allow visitors to use a virtual shopping cart while they browse your online store. We offer a pre-packaged script for this in the netConsole.
CGI scripts can be written in a number of languages, including, but not limited to: C, C++, and Perl.
By default, scripts should be placed in your cgi-bin directory but they can exist and function anywhere in your webshare (public_html) or sub-directories.
Locations of System Binaries
Scripts utilizing the CGI will often need to make use of certain system binaries. The two most commonly needed of these are Perl which is located at /usr/bin/perl and Sendmail which resides at /usr/lib/sendmail. If you need to know the location of any other items on your server you can easily find them using whereis. For example, typing whereis -b perl (the "-b" switch tells whereis to ignore all but binary files)at the shell prompt would get you the following results:
perl: /bin/perl /usr/bin/perl5.00503 /usr/bin/perl5.005 /usr/bin/perl /usr/bin/perl5.005_03 /usr/local/bin/perl
The CGI TroubleshooterIf you write your own CGI scripts or make use of third-party scripts, this tool will come in extremely handy. The CGI Troubleshooter is designed to detect, and in most instances, correct errors in a CGI script's programming, installation, and configuration settings.
Troublesome CGI scripts often suffer from one of these common errors:
- The script was not uploaded in ASCII format. Most FTP clients allow you to choose which transfer method you'd like to use, CGI scripts written in Perl should always be uploaded in ASCII (text) format.
- The script has not been given the correct permissions. Most scripts will need certain permissions in order to function correctly. Some FTP clients allow you to modify a file's attributes directly. If yours does not, you must ssh to your account and use the chmod command to alter your file's permissions. Typing chmod filename 0755 will fix most permissions-related CGI issues.