Install CGI & Perl run on Apache in Windows XP

1. Download
Download the lastest version of ActivePerl from:
(if it asks you to register, you can just leave the form blank and hit “Continue”).

Get the Windows (x86) MSI version. My file was named:


2. Install
I highly recommend that you install perl to a directory like:

In someone else’s words (very good advice)
If you will be using Perl CGI programs and want to maintain some level of portability between both Linux machines and Windows machines, you will want to install Perl to the same location on your Windows machine that it is on most Linux machines.

For example, on a standard Linux machine, Perl is located at /usr/bin/perl and so every Perl program that I write begins with #!/usr/bin/perl. So, when I install Perl on a Windows machine, instead of installing it in the default location (which is E:\perl for ActivePerl) I install it in E:\usr so that the Perl executable is located at /usr/bin/perl. This allows me to write code on my Windows machine, then move it (without making any changes) to a Linux machine and have it run there. And vice versa.

[Check] Add Perl to the PATH environment variable
[Check] Create Perl file extension association
The rest should be grayed out and read-only, but if not, leave them unchecked

3. Activating CGI
Using any text editor open httpd.conf (should be start-menu shortcut “Apache HTTP Server 2.2 > Configure Apache Server > Edit the Apache httpd.conf Configuration File“).
Add ExecCGI to the end Options Indexes FollowSymLinks (about line 190).

Options Indexes FollowSymLinks ExecCGI

4. Enabling CGI in any directory
You will need to uncomment the following line and I also added .pl behind .cgi so ‘perl’ extension is also treated as cgi files.

AddHandler cgi-script .cgi .pl

If you will be creating your own cgi-bin, you will want to comment out as following lilne:

#ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/"

5. Finding your location to perl
If you do not know where your perl.exe installed to, go to Start ->Search and type in a search for perl.exe This location is the path to perl you put on the top of all your cgi scripts. If you listened to my advice in the “Install” step, the path should be close to:

Some notes
For the perl path C:/usr/bin/perl.exe all of these are/were valid. I prefer the last one because of the Linux <> Windows portability.

6. Testing CGI
Create a file in your DocumentRoot called hello.cgi and put three lines in it:

print "content-type:text/html\n\n";
print "hello world";

Restart Apache if it is already running. Now go to http://localhost/cgi-bin/hello.cgi (or wherever you put the file) and run the script.

7. If you get a hello world in your browser, CGI is running.
If you get a 500 error, go to the last entry in Apache error log (Apache HTTP Server 2.2 > Review Server Log Files > Review Error Log shortcut in the Start Menu) to see exactly what caused this error.


Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s