Running Perl Scripts

Posted: 2013-10-31 20:43:31

WampDeveloper Pro is primarily a PHP web-server, but it does come with Perl (StrawberryPerl distribution), and is able to run Perl scripts out-of-the-box.

Simple Perl Scripts

For simple single-file Perl scripts (and not entire Perl based applications), just place the Perl scripts into the website’s already existing \cgi-bin folder (it is outside of \webroot) –

Then you can access those scripts via URL –

The provided \cgi-bin folder is configured to treat all files in it as executable CGI scripts (regardless of their file-name extension), and also does not allow for .htaccess files.

Entire Perl Applications

For more complicated Perl applications –

Because of the size and complexity of some Perl applications, it is not going to be good enough to place these perl applications into the website’s default \cgi-bin folder… We will rather have to place the application into the website’s \webroot folder, and enable CGI execution in the application’s folder…

Edit the website’s VirtualHost file (select website in Websites Tab, click VirtualHost buttons), inside the <VirtualHost> block add in…

<Directory "C:/WampDeveloper/Websites/">    
    Options -Indexes +ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
    # Execute file-names with .cgi and .pl extensions
    AddHandler cgi-script .cgi .pl

    <IfVersion <= 2.2>
    # Clients should be allowed to figure out the content-type themselves (for unknown/not-set mime types)
    #DefaultType text/html

Also, inside the above Directory block in the HTTPS VirtualHost, add line:
SSLOptions +StdEnvVars

Save files. Restart Apache.

If Apache won’t start, from the command-line (button in System Tab), run –

httpd -t -n "WampDev.Apache"
httpd -k start -n "WampDev.Apache"

This will tell you which lines in the VirtualHost file have errors in them.

Extra Perl Modules

Some Perl applications might also require extra Perl modules to be installed. To do so, open the command-line (button in System Tab) –

Then run something similar to this (substitute in package-names) –

perl -MCPAN -e shell;
install package::name1
install package::name2

This might, or might not, work out well – depending on the extra modules and what they require.