I've got an old website that I need to keep running on a new server - Windows Server 2008 R2 with IIS 7.5. The website uses Perlfect search (http://www.perlfect.com/freescripts/search/), which requires both Perl and the DB_File Perl module. The latest versions of ActiveState Perl (5.10 and above) come with a script to correctly work with IIS 7.5, but for some reason are unable to run DB_File (details are available on the ActiveState site). The latest version of ActiveState Perl that will run DB_File on windows is 5.8, but that version does NOT come with the script that configures IIS 7.5.
I couldn't make any headway on the "No DB_File for Perl 5.10 + on windows", so I decided to tackle integrating Perl 5.8 with IIS 7.5.
I installed ActiveState Perl 5.8.7 (32 Bit). I installed DB_File using ppm (install DB_File). I verified that Perlfect worked at the command line by running the indexer.pl script first, then running searches using the search.pl script.
To get Perl scripts working in IIS I adapted the instructions for PHP in IIS 7.5 at http://www.go2inbox.com/infob/readinfo.php?readinfo=1688
- Open IIS
- Click on the webserver name in the left hand panel
- Double click on the Handler Mapping icon in the IIS section of the middle pane
- Click on "Add Script Map" located at the right hand side under Actions.
- In the pop up window set "Request path:" to "*.pl", "Executable:" to "c:\perl\bin\perlis.dll" and the "Name" to "Perl" and click OK.
- Say "yes" to the dialog box that asks if you want to enable this ISAPI script
- Click on "Application Pools" on the left hand pane in IIS. In the middle pane, right click on the application pool you are using (in my case "DefaultAppPool").
- Choose Advanced Settings
- Set "Enable 32 Bit Applications" to True (I did not test the 64 bit version of Perl).
- Click on the webserver in the left hand pane, then click on the "Restart" link that appears in the right hand pane.
That worked for me. I should be able to limp along until we upgrade the search function to the 21st century.