Setting Up Perl and CGI For Wamp Server WAMP(P)

I work on Perl and CGI recently for my college project and so I decided to write a few steps on setting up Perl and CGI with Wamp Server. I hope this might be useful.

Step1:
First you need to download Wamp Server from www.wampserver.com and install Wamp Server on your machine. The default installation directory is ‘C:\wamp” and here I am using the default options for installation. To complete the installation you have to set the host name for your mail server and your email address, here you can leave the default option again. That will do no harm.

The current Wamp Server will install Apache 2.2.11, PHP 5.2.9-2 + PECL, MySQL 5.1.33, SQLitemanager and PhpMyadmin.

Step2:
Now you have to download ActivePerl (currently 5.10.0) from www.activestate.com and install it. The default installation directory is “C:\Perl“, but for simplicity and ease of use I use different directory. I create a new folder name “perl” inside “C:\wamp\bin“. So I install Active Perl in “C:\wamp\bin\perl” directory. The next thing you need to do is configure the Apache web server to execute Perl and CGI script.

Step3:
This is the most important part here. You need to edit the Apache configuration file. Now go to “C:\wamp\bin\apache\Apache2.2.11\conf” directory and open “httpd.conf” file. Edit the httpd.conf file as below.

1. Inside httpd.conf, look for the line that says “<Directory “c:/wamp/www/”>“, just a few lines below this you’ll find the line that says “Options Indexes FollowSymLinks“. Add “Includes ExecCGI” in the line just next to FollowSymLinks, thus it look like this

Options Indexes FollowSymLinks Includes ExecCGI

This will enable CGI script inside your www folder.

2. Now look for the line “AddHandler cgi-script .cgi“, this line is commented out. You need to enable this by un-comment this line, to do that remove the # character at the beginning of this line. This will add handler for files with .cgi extension. If you want to use .pl file extension in your server add “AddHandler cgi-script .pl” just below the above line. Now you will be able to execute CGI and Perl script with .cgi and .pl, extension.

Lines to add

AddHandler cgi-script .cgi
AddHandler cgi-script .pl

3. To add directory index file, look for the line “DirectoryIndex index.php index.php3 index.html index.htm“. Add index.cgi and index.pl in this line.

Lines to add

DirectoryIndex index.php index.php3 index.html index.htm index.cgi index.pl

Alternative: If you do not want to waste your time doing the above 3 steps, you can download the edited configuration file httpd.conf here. Replace the one inside your apache directory with this one.

Step4:
Your server is now configured and ready to run perl and cgi script. Next thing you might need to do is to configure perl to use mysql database. You need to download and install mysql driver to enable database connection through your perl script. You have to grab the driver from the ActivePerl package repository. However, mysql driver module is not available in the default ActivePerl Package Repository. So, you need to add additional repository and install from that repository. Follow the steps below:

1. Open command prompt [type cmd in run], then type “ppm repo add uwinnipeg” and press enter.

perl-ppm-command-line1

2. After the “uwinnipeg” repository is added successfully, you can install DBD-mysql by typing this command “ppm install DBD-mysql” and hit enter.

perl-ppm-command-line2

Note: The ActivePerl default package repository contains DBD-mysqlPP module. If you install that one, you will get an error in your SQL SELECT query and especially when you use the WHERE clause. Your localhost will hang if you run this kind of query with the WHERE clause, so to get it work you need to install the package that I mentioned above only.

16 Responses to “Setting Up Perl and CGI For Wamp Server WAMP(P)”

  1. Setting Perl and CGI in Wamp Server 2.0 « Zahid Bin Abdur Rouf Says:

    [...] Setting Perl and CGI in Wamp Server 2.0 Posted May 12, 2009 Filed under: Perl and CGI | I found a useful link that will help you in running a perl and cgi script ( files with extension .pl or .cgi ). It has got step by step explaination of the installation . I was succesful in running the cgi in my PC. I hope you  might get lucky too. http://www.chromicdesign.com/2009/05/setting-up-perl-for-wampp.html [...]

  2. rinfelc Says:

    Thumps up !!! :-)

  3. Exercise 9: Web form design and processing: A basis for e-commerce interaction « Alex Ramsey :: ITC565 Business Applications Development Says:

    [...] Chromic Design, Setting Up Perl and CGI For Wamp Server. [...]

  4. Swapnil Says:

    Very Very good to know and helpful for me
    Thank you

  5. slacker Says:

    thank you mean . very good article

  6. venkat Says:

    Thank you very much.very good article

  7. Jeroen Says:

    Thanx for the info :) it worked!

  8. Mahboob Says:

    very nice and to the point, thanks a lot.

  9. perl execution - Hot Scripts Forums Says:

    [...] Setting Up Perl and CGI For Wamp Server WAMP(P) | Chromic Design [...]

  10. hemi Says:

    thank u, that really helped me a lot

  11. matrix Says:

    Hi Everyone,
    I followed above all steps to configure perl but i am unable to execute .pl & .cgi file extension in the wamp2.0 server.
    i am getting error: Internal server error…

    Components:
    wamp2.0
    ActivePerl-5.10.1.1006-MSWin32-x86-291086.msi

    So please help me to solve this problem.

  12. Asakura Says:

    thanks for the explicit walkthrough helped me quite a bit.

  13. Shamit Kumar Tomar Says:

    @matrix,

    I solved the same problem as yours. Here’s how to do it:
    Let’s write Hello World script for Perl. I copied it from Wikipedia that has this script:

    #!/usr/bin/perl
    print “Hello, world!\n”;

    But it gives 500:Internal Server Error. This is because, this script tells WampServer to look into /usr/bin/perl for perl.exe but out perl.exe is in c:/wamp/bin/perl/bin/. So, we have to use a script like this:

    #!c:/wamp/bin/perl/bin/perl
    print “Hello, world!\n”;

    So, insert this #! commented line at top of your every script and it will work fine without giving HTTP 500 error.

    Enjoy@Perl. This is my first day on Perl.

  14. madhav Says:

    i got 500 internal server error

  15. Zach Browne Says:

    Great explanation, worked flawlessly. I was trying to get Warrick – http://warrick.cs.odu.edu, a website archive re-builder working with WAMP Server and this was the ticket. Thanks, great job. Very thorough and easy to follow.
    Zach Browne

  16. Brett The Tech Guy Says:

    Thank you very much for posting this tutorial, it seemed to point me in the right direction!

    I did find you can combine these lines into one:
    1. AddHandler cgi-script .cgi
    2. AddHandler cgi-script .pl
    AddHandler cgi-script .pl .cgi

    I also found you can type:
    Options Indexes FollowSymLinks +ExecCGI

    Lastly you definitely need to declare the path as
    #!c:/wamp/bin/perl/bin/perl
    If you don’t have the right path you’ll receive 403 Permissions Denied

Leave your Comment

Getafreelancer

Feed Subscription

Enter your email address:

Delivered by FeedBurner

Website Stats


website counter

Back to Top

Chromic Design is proudly powered by WordPress »  Entries (RSS) and Comments (RSS).
Chromic Design © 2009-2009 : Designed by Alan Pachuau