Configuring Apache Server and Perl for CGI T.A. Maisa Khudair

advertisement
Configuring Apache
Server and Perl for CGI
T.A. Maisa Khudair
Dr. Qusai Abu Ein
Setting up Apache for Windows
Install Apache Server from following web
site:
http://httpd.apache.org/download.cgi
 Choose the Win32 Binary (MSI Installer):
apache_2.2.4-win32-x86-no_ssl.msi
 To start using CGI, you have to download
ActivePerl from following web site:
http://www.ricocheting.com/server/cgi.html

Cont’d
Get the Windows (x86) MSI version
 To activate CGI in Perl, use your Notepad
Editor
 open E:\Apache2_2\conf\httpd.conf
(note: Path in PINK is the path you had
installed your ActivePerl to in your
computer)
 search for Options Indexes
FollowSymLinks

Cont’d
when you find it add ExecCGI to the end
so it looks like Options Indexes
FollowSymLinks ExecCGI
 Always keep writing this line at the
beginning of your CGI file:
#!E:/Perl/bin/perl.exe
 To start using Apache Server, go to Start
Menu, search for Apache Http Server, then
Control Apache Server > Start

Testing Apache Server
To test your Apache Server working, go to
your browser web page, type in the
address bar the following:
http://localhost
 If you got a message telling you:
It works! Your server is working well.

Writing CGI Scripts


In order to execute your CGI scripts, you
have to put them in cgi-bin folder
located in your Apache Directory in your
PC
Your files should be saved like this:
fileName.cgi

To run your CGI, type:
http://localhost/cgi-bin/fileName.cgi.
First CGI Example
#!d:/Perl/bin/perl.exe
print "Content-type: text/html\n\n";
print "Hello, World.";
print "This is ME!!";
Output
Hello, World
This is ME!!
Cont’d :Environment variables
example
#!d:/Perl/bin/perl.exe
##
## printenv -- demo CGI program which just prints its environment
##
print "Content-type: text/plain; charset=iso-8859-1\n\n";
foreach $var (sort(keys(%ENV))) {
}
$val = $ENV{$var};
$val =~ s|\n|\\n|g;
$val =~ s|"|\\"|g;
print "${var}=\"${val}\"\n";
Output
DOCUMENT_ROOT = /usr/local/etc/apache/htdocs
GATEWAY_INTERFACE = CGI/1.1
HTTP_ACCEPT = image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, */*
HTTP_ACCEPT_CHARSET = iso-8859-1,*,utf-8
HTTP_ACCEPT_LANGUAGE = en
HTTP_CONNECTION = Keep-Alive
HTTP_HOST = 200.210.220.1:8080
HTTP_USER_AGENT = Mozilla/4.01 [en] (Win95; I)
PATH = /usr/local/bin:/bin:/etc:/usr/bin
QUERY_STRING =
REMOTE_ADDR = 200.210.220.3
REMOTE_HOST = 200.210.220.3
REMOTE_PORT = 1029
REQUEST_METHOD = GET
REQUEST_URI = /cgi-bin/utils/printenv.cgi
SCRIPT_FILENAME = /usr/local/lib/apache/cgi-bin/utils/printenv.cgi
SCRIPT_NAME = /cgi-bin/utils/printenv.cgi
SERVER_ADMIN = adminguy@acme.com
SERVER_NAME = coyote.acme.com
SERVER_PORT = 8080
SERVER_PROTOCOL = HTTP/1.0
SERVER_SOFTWARE = Apache/1.2.5
TZ = :US/Eastern
Any Questions??
Download