Thursday, November 18, 2010

Part 1/3- Running Apache Webserver, PHP, MySQL, Perl, CGI and ASP script without IIS on your Windows Box !!!

What you’ll need for this install:
1. WampServer ( Windows Apache Mysql and PHP)
2. ActivePerl

Installing the WAMPServer setup is a quick and easy Apache webserver with PHP support and MySQL on windows.
Installing the Active perl setup in the c:wamp/bin/perl. This will set up a similar structure keeping the files separate, just like it is for php,mySql and Apache folders.

Now you’ll need to install a few extras …
From a command shell
Program Files -> Run -> cmd

cd\perl\bin
ppm

From the Packages select DBI as well as DBD-mysql if not installed and install these.

Now you’ve set up Perl with the extra packages you need its time to tell Apache what to do with .cgi files..
Click the little WampServer icon in your taskbar go up to config files and click on httpd.conf
You’ll want to add in section #cgi Options +ExecCGI

<Directory "cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>



somewhere around “Options Indexes FollowSymLinks”
you’ll also want to add in further down …
AddHandler cgi-script .cgi .pl

Restart Apache (click the icon .. and restart all or just … apache -> restart) … and you should be up and running

you need to create 2 files inside a new folder under www directory of wamp :acgi_form.html
backaction.cgi

Then run the acgi_form.html under wamp server.
Example file :
Create a file named acgi_form.html


<html>
<head>
<title></title>
</head>
<body>
<form action="backaction.cgi" method="GET">
<p>What is your favorite color?
<input name="favcolor" /></p>
<input type=submit value="Send form" />
</form>
</body>
</html>






Create a file named backaction.cgi
#!C:\wamp\bin\Perl\bin\perl.exe

use 5.010;
use CGI;

use strict;
use warnings;

my $q = CGI->new();
say $q->header(), $q->start_html();

say "<h1>Parameters</h1>";

for my $param ($q->param()) {
my $safe_param = $q->escapeHTML($param);

say "<p><strong>$safe_param</strong>: ";

for my $value ($q->param($param)) {
say $q->escapeHTML($value);
}
say '</p>';
}

say $q->end_html();

then , run the wamp server ,
and open the cgi_form.html
( for example : http://localhost/acgi_form.html )

oops, now you may see a 403 Forbidden message like this

Forbidden

You don't have permission to access /backaction.cgi on this server.

Whoops ... thats right. You have to put the script into the cgi-bin.
The ScriptAlias directs all scripts to be found in the /cgi-bin/

also change <form action="backaction.cgi" to <form action="/cgi-bin/backaction.cgi"

Now when you submit your personal favorite color the cgi or perl script will spit back the parameters at you.

Ok, this wraps up part 1 of the installation. In the next round we will learn how to get ASP.NET up and running without IIS.
Take a break and come again soon :)

No comments: