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.
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 –
\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.
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/www.example.com/webroot/perl-application-folder-to-enable-cgi-for"> 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 </IfVersion> </Directory>
Also, inside the above Directory block in the HTTPS VirtualHost, add line:
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.
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 ... exit
This might, or might not, work out well – depending on the extra modules and what they require.