## Troubleshooting

Here is a list of frequently asked questions with answers might be helpful if you have problems installing ICE.

1. "Why does it take so long to get an email reply?"

Unfortunatley, since I have a full time job, I can only work on the occasional day off on ICE (and on giving support). Rest assured though that I have not abandoned development, and that a new version (which is most of all going to be easier to set up) will be released as soon as possible.

Update: I had to drop support, and currently cannot reply to email messages.

2. "Can't find string terminator "END" anywhere before EOF at ice-form.pl line XX"

Depending on how you downloaded the script "ice-form.pl", it may be that an unprintable character is after the single line consisting of the word "END" only (this may be due to carriage return / linefeed conversion between different operating systems).

Solution: use an editor and make sure the line consists of the word "END" only. Also, when using ftp to upload a scipt to your Web server, make sure to upload the script in "text" mode, not in "binary" mode.

3. When I run ice-idx.pl, it requires find.pl. Can you send me the file, or include it on the distribution page.

find.pl is part of your Perl distribution. I cannot include it, because implementations of find.pl are incompatible across platforms, and the UNIX version of find will not work e.g. under MacOS.

Depending on the way Perl is installed on your machine, you may have to specify the complete path in the require statement. If necessary, please replace

require("find.pl");
with
require("/path/to/perl/libs/find.pl");
Be aware of the fact that the path can have path seperators other then "/". Under MacOS, it is a colon ":", under Windows you must use a backslash. Either escape the backslash "\\path\\foo", or use single quotes '\path\foo'.

4. I am having problems running the indexer (ice-idx.pl) under windows NT. I get the error message "the name specified is not recognized as an internal or external command, operable or batch file." That message comes when my paths look like this: @SEARCHDIRS=("\\NS_SERVER\\ns-home\\HomeDir");

It can be that the "find.pl" that is installed on your server does not handle mixed case or lowercase paths. Test this by running a simple script


require "find.pl";
&find('\');
sub wanted {
print $name; }  and see if it runs ok. It should print a list of all files on your machine. If find doesn't work correctly, you must install a Perl version that supports windows NT. 5. I have set up and configured ICE, but the form interface always returns an empty result That probably means that your setup is not correct. This happens often when setting up ICE on a Windowes NT server. Part of the problem stems from the fact that windows NT versions of Perl differ very much, some produce \foo\bar in index.idx, some produce /foo/bar.(by the way, IMHO (and I mean humble), NT is not the ideal platform for running Web servers. You may want to consider alternative operating systems for PC hardware such as Linux and NEXTSTEP) To make things worse, a backslash must be escaped in the Perl language by preceeding it with a second backslash, but only when it occurs inside a string quoted with "(some string)", not with '(some string)'. (I never understood why anybody would want to use a backslash as a seperator.. don't operating systems designer write programs now and then?) Here's what do to: • Open the ice.idx file in an editor and look at the way file names are stored. They have either '\' or '/' as a seperator between directories. • In ice-form.pl, use the exact same seperator string when setting up %aliases. • when defining a filename such as $indexfile or $thesfile, add the drive letter if the file resides on a different disk then the webservers default. Example: $indexfile='c:\usr\web\index.idx'
6. Is there any setting which tells ice to ignore certain sub-directory trees?

Well, you can always set a variable

@EXCLUDEDIRS=("/users/neuss/WWW/ice/","/foo/bar");
and modify ice-idx.pl as follows:
  local($exlude); foreach$dir (@EXCLUDEDIRS){
if($name =~ /^$dir/){
print STDERR "   -> excluded\n";
$exclude="y"; } } &indexfile($name) unless $exclude;  Make sure you get the paths right. It helps a lot to uncomment the diagnostic output to STDERR. See also the next question. 7. Is there an easy way to stop the traverse down certain directories? There is. The Perl routine 'find.pl' provides the current path in the variable$dir, and allows you to set a variable $prune whenever you want to prune a recursive search. Hence, you can modify the routine 'wanted' to set$prune. Here's an example that prunes all folders named "_hidden", assuming that "/" is the path seperator character.

sub wanted {
if($dir =~ m:/_hidden:){$prune = 1;
return;
}
if($name=~/$SUFFIXES/i){ # file name ends
push(@allfiles,\$name);
}
}



8. I have a page on my site with the word FOOBAR in it, all capital letters. In doing a search, searching for "foobar" didn't find it, but searching for "FOOBAR" did!

This has been fixed in version 1.3. Please retrieve an up to date version of ice-idx.pl from this Web site.

9. Can you tell me how I go about setting up %aliases so that it will index these home directories as well as the "document root" ones?

Sure. Here's an example:

%aliases = (
'/',         '/var/httpd/htdocs',
'/~user1',   '/some/where/homes/user1',
'/~user2',   '/some/where/homes/user2',
...
);


10. How can I index numbers or words that start a digit?

Edit ice2-idx.pl and change the tr statement

	  # the following line defines..
tr/a-zA-Z\xc0-\xff/ /cs;

to match the following
          tr/a-zA-Z\xc0-\xff0-9/ /cs;

You can also index words with slashes by writing:
          tr/a-zA-Z\xc0-\xff0-9\-/ /cs;

Be warned that this will somewhat increase the index file size.

11. Why can't I get the thesaurus to work?

The thesaurus functionality was broken during the introduction of full boolean expressions (version 1.5b2, May 1998). Since there is no easy fix for this, you'll have to either go back to a previous version, or wait for a re-implemented thesaurus in the final version of ICE 1.5.

12. Please send me a version which does ...

Yes, I can create a customized version of ICE for you, but you will have to discuss the details with my employer. Our daily rates for an experienced system administrator and senior programmer are around 900 USD, depending on exchange rates.

If all you need is professional help setting up an ICE implementation, you can also contact Donna Jaggard (see the "support" page). This is often the quickest way to get your search engine up and running on your website.

13. I need help setting up the software on IIS/Windows NT

See above. Sorry, I cannot give free support for Microsoft products - I would have way too much to do.

14. When I run the CGI script, all I get is the actual code.

This is a server misconfiguration (typical for Windows NT). The Web server must be configured to execute cgi scripts instead of just serving their contents. Please consult the Server documentation.

15. When I run the ICE indexing script as a CGI program, I get an error message

Do NOT run the indexing tool as a CGI script. Run it from a shell, or via a cron-like mechanism instead. Running a CPU and memory intensive program such as a web indexer from a CGI script will have a very negative impact on server performance, and is a good way to get your ISP upset. If you have to use a web hosting service, create the indexes offline by running them on your local computer.

If you are absolutely certain you need to run it as a CGI script and you know what you are doing, just make sure the program is CGI compliant by adding the appropriate headers. I am discouraging running indexes on an ISP site, so the feature is not there by default.

16. Where do I send bug reports?

Right here - just use the source, Luke..

Update: I had to drop support, and currently cannot reply to email messages.

Some general remarks:
• in order to setup ICE, you should be familiar with the setup of a Web server, and with running CGI scripts. Please make sure you can run a simple "hello world" type CGI script in Perl before asking for support.
• I have found that most of the problems that people have can be traced down to inconsistencies with the way that Windows NT and 95 handle path seperation and drive letters.
Therefore, I recommend using a different platform. Linux, Darwin, FreeBSD, Solaris etc. work fine, and in my experience, will also give a better server performance.

If you prefer a nice graphical user interface, I strongly recommend Apple's MacOS X Server and the upcoming MacOS X.