Perl is a very popular scripting language which is used to develop a wide variety of tools. One of it’s well know uses is web based CGI (Common Gateway Interface) applications which allow Perl scripts to be executed from a web server. With a little configuration, you can configure IIS 7 on your Windows Server 2008 system to serve Perl scripts via CGI.
Copying the Perl Binaries
Before any IIS setup can be done, the Perl binary files must be extracted to your system. Download the ActiveState Perl distribution package (get the AS zip file and not the installer) and extract them to a folder on your server (i.e. ‘C:perl’). We will map IIS to use the files located in this directory.
Configuring IIS 7 to Run Perl Scripts
Open Internet Information Services Manager and open the Handler Mappings interface.
Click on the action, “Add Script Map”.
To allow IIS to execute Perl script files (.pl), configure the new script mapping with the following settings:
- Request path: *.pl
- Executable: C:perlbinperl.exe “%s” %s (where ‘C:perl’ is the location where you extracted the Perl binaries)
- Name: Perl-pl
In the Request Restrictions dialog, set the Verbs tab to allow the following: GET,HEAD,POST.
Apply all changes.
When creating the new script mapping, IIS will ask you if you want to allow this script mapping to run as a CGI application. Answer ‘Yes’ to the dialog.
Additionally, if Perl scripts will be deployed as CGI files (.cgi), a script mapping will need to be configured for this file type as well:
- Request path: *.cgi
- Executable: C:perlbinperl.exe “%s” %s
- Name: Perl-cgi
- Verbs: GET,HEAD,POST
Once finished apply your changes and select ‘Yes’ when IIS prompts you to confirm running the script mapping as an application.
Once you have configured IIS to run both file types, they will be listed in your Handler Mappings.
After making the required configuration changes to IIS, run the “iisreset” command from the command prompt to ensure the changes are pushed through and active.
At this point, IIS 7 should be able to successfully serve Perl scripts.
At this point, your server is ready to go, but just to be sure we can confirm your Perl setup through IIS pretty easily. Create a couple of text files in the directory ‘C:Inetpubwwwroot’ named ‘test.pl’ and ‘test.cgi’ both containing the following:
my $test = new CGI;
print $test->header(“text/html”),$test->start_html(“Perl Test”);
print $test->h1(“Perl is working!”);
Finally, browse to the addresses: ‘http://localhost/test.pl’ and ‘http://localhost/test.cgi’ on your server and you should see a message stating that Perl is working. If the page loads successfully, Perl is now up and running on your machine.
Once you have Perl up and running on your Windows system, you can deploy or develop your own Perl CGI applications.
Download ActivePerl from ActiveState (AS Zip Package)