Skip to main content.
home | support | download

Back to List Archive

Re: Got it working on Windows IIS

From: Bill Moseley <moseley(at)>
Date: Thu Jan 15 2004 - 14:56:03 GMT
On Thu, Jan 15, 2004 at 03:25:09AM -0800, Marko Faldix wrote:

> I installed windows binary version of swish-e 2.4.1 in C:\Programme\SWISH-E
> on W2k with IIS 5.0 in order to index intranet web sites served by IIS and
> make them searchable.

> I followed

Even better!  By the way, if there was anything not clear please report
back so the docs can be updated.

> It works without problems accept that some pathes have to be absolute in cgi
> script.

Ok, let's discuss those, as the Windows installation is suppose to set 
those up upon installation.

> My intranet web site http://localhost resides at C:\home\mydir
> There I put subdirectory swish containing:
> 15.01.2004  11:32                  190 .swishcgi.conf
> 15.01.2004  11:25              402.630 index.swish-e
> 15.01.2004  11:25                   74 index.swish-e.prop
> 15.01.2004  12:01              111.740 swish.cgi
> 15.01.2004  10:09                  185 swish.conf

Ok, so for the default usage of swish.cgi c:\home\mydir should be the 
current-working-directory when swish.cgi is running.

> First error message had been:
> Can't locate SWISH/ in @INC (@INC contains:
> C:\Programme\SWISH-E\lib\swish-e\perl C:/Perl/lib C:/Perl/site/lib .) at
> C:\home\mydir\swish\swish.cgi line 964.
> BEGIN failed--compilation aborted at C:\home\mydir\swish\swish.cgi line 964.
> Although beeing no perl professional I just added this line:
> use lib qw( C:\Programme\SWISH-E\share\doc\swish-e\example\modules );

What was the "use lib" line before you changed it?

Did the swish-e installer place those modules there?  Last I checked
the modules were installed in <installdir>\lib\swish-e\perl just like on 

> After doing a search with web form provided by search.cgi second error
> message had been:
> Index file error: Could not open the index file 'index.swish-e'
> I just replaced this line
> my $DEFAULT_CONFIG_FILE = '.swishcgi.conf';
> with this one:
> my $DEFAULT_CONFIG_FILE = 'C:\home\mydir\swish\.swishcgi.conf';

That wouldn't alone fix the error with the index file.  So I assume 
in your .swishcgi.conf file you have the full path to the index files, 
too.  Is that correct?  Otherwise, (if you are not using .swishcgi.conf 
for configuration, you would have to also update the paths to the index 

Or is there just some problem with opening dot files (.swishcgi.conf) 
relative to the current directory on Windows?

I have never run IIS, but I have run Apache on Windows and it does cd
into the directory of the cgi script before running the script -- so all
the paths (relative to the current directory) work fine.  When IIS runs
a cgi script what working directory is it using?

BTW -- although the swish.cgi script is setup to have the .swishcgi.conf
config file and the index files in the same directory as the cgi script
swish.cgi, most people would likely make those files protected by
permissions or by locating them elsewhere so they are not readable by
the web server.

Bill Moseley
Received on Thu Jan 15 14:56:26 2004