How to add CGI and Perl in apache
Configuring Apache to run CGI programs isn't that hard. First, you need to assign an alias for your script directory.
So you create a special location, called an alias, to the actual CGI directory. Edit your httpd.conf file and add the line below:
ScriptAlias /cgi-bin/ /usr/local/apache/share/cgi-bin/
However, this does not configure Apache to run the programs it finds in the cgi-bin directory. To actually execute programs, you need to edit the access.conf file by adding a section like this:
<Directory /usr/local/apache/share/cgi-bin>
Options ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>
Here is how CGI works

You need a web page that uses forms to call the cgi script. Create a plain text file
called testcgi.html
Here it is:
The script will fail if it has the wrong permissions, and it needs to be in a directory called
cgi-bin
which also has the correct permissions.
Using an ftp client such as filezilla,
Browse to your home page
You will see a form. Type xxxx into it and click the OK button.
The URL line will change to
The page will display
So you create a special location, called an alias, to the actual CGI directory. Edit your httpd.conf file and add the line below:
ScriptAlias /cgi-bin/ /usr/local/apache/share/cgi-bin/
However, this does not configure Apache to run the programs it finds in the cgi-bin directory. To actually execute programs, you need to edit the access.conf file by adding a section like this:
<Directory /usr/local/apache/share/cgi-bin>
Options ExecCGI
AddHandler cgi-script .cgi .pl
</Directory>
Here is how CGI works

You need a web page that uses forms to call the cgi script. Create a plain text file
called testcgi.html
Here it is:
"http://www.w3.org/TR/html4/strict.dtd">
<html><head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>testcgi</title>
</head><body>
<form action="cgi-bin/mycgi.cgi">
<input name="Firstname" type="text">
<input value="OK" type="submit">
</form>
<br>
</body></html>
Create a plain text file called mycgi.cgi#!/usr/bin/perl
print "Content-type: text/plain\n\n";
print "That worked\n";
exit(0);
The script will fail if it has the wrong permissions, and it needs to be in a directory called
cgi-bin
which also has the correct permissions.
Using an ftp client such as filezilla,
- upload testcgi.html to the top-level of your account.
- create a directory called cgi-bin
- upload mycgi.cgi to cgi-bin
- change the permissions of cgi-bin to 75
Browse to your home page
http://www.WhereEver-It-Is/~YourUserName/testcgi.html
You will see a form. Type xxxx into it and click the OK button.
The URL line will change to
http://www.WhereEver-It-Is/~YourUserName/cgi-bin/
mycgi.cgi?Firstname=xxxx
The page will display
That worked