1. bluehost knowledge base

CGI Basics


CGI (Common Gateway Interface) is a standard method of extending web server functionality by executing programs or scripts on a Web server.


What Is CGI?

CGI (COMMON GATEWAY INTERFACE) is a standard method of extending Web server functionality by executing programs or scripts on a Web server in response to Web browser requests. A common use of CGI is in form processing, where the Web browser sends form data to a CGI script on the server, the script integrates the data with a database, and sends back the results as a Web page. Use of CGI can make a Web page much more dynamic and add interactivity for the user.

How is CGI going to help me?

CGI is used to provide interactivity and turn static pages into dynamic ones. What do I mean? Let's take a guestbook for example. Most of them are powered by CGI. They allow your visitors to leave their comments on your site. This makes it interactive. But guestbook is only one example. You also have bulletin boards, form processing, counters, and much more.

How am I supposed to install a script?

Usually, most scripts have complete instructions and a special ReadMe file with everything you need to know about installing that script. It is highly recommended that you read the instructions a few times before starting to install the script. This will help you to make fewer mistakes.

What does "chmod" mean?

To chmod a file means to set a certain permission. A couple of the most common chmod commands are 755 and 777. To see more about modifying file permissions please see our articles on changing file permissions and setting file and user permissions

What are the most common errors and how do I deal with them?

One of the most common errors is "500 Internal Error". The chances are that you will experience it many times. The worst thing about it, is that it doesn't actually tells you what's wrong with the script. It only tells you that something is not right. There are several possibilities that cause of this error. Here they are:

  • Incorrect path to PERL. See the next question for more information.
  • Syntax error. Check and see if you didn't accidentally delete a command or a word that the instructions didn't tell you to.
  • Incorrect CHMOD command. Make sure that you chmod the file exactly as the instructions say.
Note: Most of the times it will be either 755 or 777 (not always!). You can also get an "Access Denied" error, if you didn't chmod the file or a directory correctly. Basically, 500 Internal Error and Access Denied are 99% of errors you'll experience. In most cases, the cause of the error will be one of the above.

What is the path to PERL (interpretator)?

The perl path is the very first line in every .cgi or .pl file. Usually, it looks something like this #!/usr/bin/perl. Make sure that the path is correct, otherwise, you'll get an error. If you don't have the telnet access, simply email your tech support and ask them.

Can I add my own CGI Scripts?

Our Legacy Linux web servers have the capability to run CGI scripts in your own "cgi-bin" directory. Scripts may be written in Perl, Python and CGI languages. Here are some helpful tips to follow when installing scripts:

  • Upload to your cgi-bin directory to ensure proper file permission settings.
  • All scripts on our server must have permissions set to 755 (rwx-rx-rx).
  • Upload in ASCII transfer mode (and NOT BINARY mode)
  • The first line of each script must read: a) #!/usr/bin/perl (for Perl) b) #!/usr/bin/python (for Python)
  • Ensure the permissions are set to 755
Custom CGI scripts are not supported in Rock accounts.

Limitation of CGI Scripts

Bluehost does not have limits regarding the use of CGI scripts, outside the use of malicious or harmful/damaging scripts.