|blosxom :: the zen of blogging|
How do I get Blosxom to work with IIS despite PATH_INFO issues?
There are a couple of ways of getting IIS to understand PATH_INFO, allowing Blosxom (and any other scripts using PATH_INFO) to work properly.
PerlMonks offers "Fix ActiveState Script Maps (IIS)" (http://perlmonks.thepen.com/102907.html), which makes use of the IIS "ScriptMaps" property (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iisref/html/psdk/asp/apro9tkj.asp).
Blosxom user, Allie Rogers (http://radio.weblogs.com/0106608/), suggests the following method for configuring IIS. This results in a configuration that is similar to that of the PerlMonks script, above. However, the PerlMonks script is a superior solution in that it allows one to disable "execute" permissions for the folder that contains the Blosxom CGI script. Disabling execute permissions provides for a slightly more secure web server, helping to defeat exploits like "Code Red".
Regardless of which method you use to configure IIS, the ActiveState Perl ISAPI runtime ("PerlIS.dll") will NOT properly support PATH_INFO, so you must always use the regular Perl interpreter ("Perl.exe").
Assuming you're using ActiveState's standard Perl installation and IIS 5 on Windows 2000, you need to modify the "Application Mappings" on the "App Mappings" tab on the "Application Configuration" property dialog. To access this dialog, open the IIS management console (precisely how to do this varies between Windows 2000 Pro and Server versions, so check your IIS documentation).
From the management console, drill down the tree view on the left until you find the virtual directory that holds the "blosxom.cgi" Perl script. Right-click this virtual directory and select "Properties". Select the "Configuration..." button to open the "Application Configuration" property dialog. A list box on the "App Mappings" tab will display all of the "Application Mappings". By default, ActiveState installs a mapping for the ".pl" extension. You may modify this and/or add an extension for ".cgi". The trick is to make sure that "Check that file exists" is NOT checked. The complete settings for such an application mapping for ".cgi" files might look like this:
Executable: C:\perl\bin\Perl.exe "%s" %s
All of this will likely also work for IIS 4 on NT4 as well IIS 6 on Windows XP.
More information can be found at Microsoft's knowledge base under articles Q184320 and Q252352 as well as at http://www.jmarshall.com/tools/cgiproxy/faq.html#q6 .Author: Rael Dornfest