1. Starting and stopping Spinner

How do I start up Spinner?

You cd to /mydir/spinner/server and run ./start.

How do I shutdown Spinner?

Connect to the WWW-configuration interface and press the [SHUTDOWN] button.

Do you have to start up Spinner as root?

No, you can start Spinner as any user. However you must start as root to be able to open ports under 1024 (where the default HTTP port is 80). You won't be able to change UID/GID if you don't start as root.

How do I change the UID/GID?

You set the global variable 'Change UID and GID to:' to the numeric UID/GID you want Spinner to run as. Then before configuring anything more, you should [SHUTDOWN] the server and start it again. (su; cd /mydir/spinner/server/; ./start; exit)

How do I make Spinner start up automatically after reboot?

Let's say that Spinner is installed in the directory /usr/www/. Then do the following (in future releases we will probably include scripts to do this in the distribution):

Linux:
Append to /etc/rc.d/rc.local;
pushd /usr/www/spinner/server/
./start
popd

Solaris:
Save the following as /etc/rc3.d/S99Spinner.
#!/bin/sh
backlog=32
if [ -z "$1" ]; then
  echo Syntax: $0 {start}
  exit 1
fi
if [ $1 = "start" ]; then
  val=`ndd -get /dev/tcp tcp_conn_req_max`
  expr $val '$lt;' $backlog >/dev/null && ndd -set /dev/tcp tcp_conn_req_max $backlog
  if [ -x /usr/www/spinner/server/start ]; then
    cd /usr/www/spinner/server
    ./start 2>&1 >/dev/null
    echo Spinner WWW services starting.
  fi
fi

Other OS's:
If the OS use the Solaris rc-style, use this:
if [ -z "$1" ]; then
  echo Syntax: $0 {start}
  exit 1
fi
if [ $1 = "start" ]; then
  if [ -x /usr/www/spinner/server/start ]; then
    cd /usr/www/spinner/server
    ./start 2>&1 >/dev/null
    echo Spinner WWW services starting.
  fi
fi
Otherwise you can use this (most probably):
OLDPWD=`pwd`
cd /usr/www/spinner/server/
./start
cd $OLDPWD


2. Spinner does not work, why?

a) First do a ps -ax or ps -ef. do you see processes called:
bin/ulpc -m etc/master.lpc spider
/usr/local/spinner/server/bin/spider_hostname
then the server is running.

b) You have to connect to a default port on your machine, given to by the install-script (usually 18830) by entering the URL: http://your.machine.name:18830. Notice that you can change the global variable Configuration port. It's recommended that you read (and perhaps also follows) the configuration tutorial.

c) Make sure you have installed at least one virtual server, as a main server to your system.

d) Make sure you have a filesystem installed. The default settings of a virtual server do not include a filesystem.

e) Check the Spinner logfiles (spinner/server/logs/Debug.1-9). If there says anything about errors there check the mailinglist archive (you can also search the archive) to see if someone else has that problem. If not, send a bug rapport or ask on the Spinner mailinglist.


3 How do I change the 'resource unavailable' message?

Change the server specific variable Message: No such file. If you have a SPML parser enabled, you can use all SPML tags. This means that you for example can include a file in the servers virtual filesystem (<insert file=/errormessage>). ---------------------------------------------------------------- 4-Include some cgi/ulpc scripts, preferably a serverpush script, (audio and graphics) a client pull example, a mailto.cgi, and a response.cgi, guestbook and news,a graphical counter, with pointers to the developers. ---------------------------------------------------------------- 5-Does extension multi multipart/x-mixed-replace;boundary=SomeBoundary work, so one can make a multipart file work for Netscape? ??????????????????????? ----------------------------------------------------------------


4 Why doesn't the user filesystem work?

a) First of all, do you have a user database module enabled? If not, enable it and configure it to use the correct method to retrieve users.

b) Do you use the correct method?

c) Do you use YP or NIS+? Is the program (ypcat/niscat) in the path of the user Spinner runs as (su to the correct user and try invoking ypcat/niscat) and also as the user it starts as. If it isn't, fix the path.

d) Do you use the correct passwd file? (If method = file).

e) Do you use shadowed passwd? If that's the case, turn off the flag Password users only in the User Filesystem.


5 How can I make multiple virtual IP-numbers?

On a Linux machine

For multiple IP numbers the Linux aproach which works best is with the dummy interface. First you recompile a recent kernel, including the possibiliy of modules. In the kernel, do not include the dummy interface. Next you do a "make modules", and a "make install-modules". After you have rebooted you can add extra ip numbers by doing (you can also add this to your /etc/rc.d/rc.local):
# Add dummy modules
######################################
/sbin/insmod -o dummy0 ./dummy.o
/sbin/insmod -o dummy1 ./dummy.o

# Add interface params, route arp addr
######################################
/sbin/ifconfig dummy0 www.click.es up
/sbin/route add www.click.es dummy0
/sbin/arp -s www.click.es 00:20:A9:0B:49:D5 pub

/sbin/ifconfig dummy1 www.ibercaja.es up
/sbin/route add www.ibercaja.es dummy1
/sbin/arp -s www.ibercaja.es 00:20:A9:0B:49:D5 pub
Note that the hardware address is YOUR ethernet hardware address. You can get it from the ifconfig eth0 output.

On a Solaris machine

ifconfig leY:X IP-ADDRESS broadcast BCAST netmask NETMASK up
Y is the number of the ethernet interface, X is a number between 1 and 255 (the virtual interface number).

On a FreeBSD machine

ifconfig le0 IP-ADDRESS alias netmask 0xffffffff

With an ifconfig that supports the alias option

 ifconfig le0 IP-ADDRESS alias 
Don't forget to add the names in you DNS configuration! See also Two Servers, One Interface.


6 Can I use compiled, .pl, .sh and other CGI programs intermixed, without having to add the cgi extension?

There are two ways to execute CGI-scripts - extension based and /cgi-bin/. Spinner has support for both. By setting the variable CGI-script extensions in the CGI-module, you can choose the extensions of files to be treated like CGI-scrips. The default setting is 'cgi'. To enable .pl and .sh, simply change this to 'cgi, pl, sh'. If you want to execute programs which doesn't have any special endings, you need to use cgi-bin. Set the Search path to the directory of your cgi-scripts. They are then called like this: /cgi-bin/the_name_of_the_script.


7 How does Spinner imagemaps work?

By adding the imagemap module you will enable imagemap parsing. The default is that all files ending with .map are parsed, but this is definable (the variable Mapfile extension).

Spinner has built-in support for NCSA, CERN and it's own imagemap formats. You therefore don't have to remake any of your old imagemap files when upgrading to Spinner!

NCSA imagemap script tip

By adding a redirect from //imagemap/ to /, Spinner will handle all files using the NSCA imagemap script internally (which means that you won't even have to change any links to get your old imagemaps to work with Spinner). I suggest that you turn on Internal redirects. This way Spinner handles the redirects internally and doesn't send a new address to the client.


8 How can I add my own subset of HTML additions?

As you might know, Spinner has a number of extra tags. If you want to learn how to add own tags, I suggest that you take a look at the Deep Thought module and the SPML parser module. Later on there will be more documentation about how to make your own tags/modules.


9 Is there a database which can work with Spinner?

Yes, use postgres 1.0p3, with perl5.0001m, pgperl1.1.1 and wdb95.03. See http://s2k-ftp.cs.berkeley.edu:8000/postgres95/


10 Is there a PD Search engine?

Swish and Wais come to mind: http://www.eit.com/software/swish/swish.html Alternative: Dream: http://www.iti.gov.sg/iti_service/dream/dream_announce.html

The search engine used for the Spinner server is Swish in combination with a ulpc-script.


11 What is uLPC?

Why can it not be compiled properly, as a C program? I am afraid someone will edit the source code, leaving the whole thing unprotected.

uLPC (micro-LPC) is an interpreting C-like language. The excellent string and socket support makes uLPC (which is evolved from a language used for writing MUDs) more or less perfect for writing WWW-servers in.

If you are worried about people changing the code to break your server, you should look over the protection of the uLPC files (ie if someone has write permissions on the .lpc-files who shouldn't, you should change that).


12 Will Spinner support SSL or other secure transaction protocols?

Yes, this feature will be added in the next release. Have patience!


13 Why doesn't my sitewide include files with defines work?

The files inserted by <insert file=XXX> is fetched and parsed as any other file in the virtual filesystem. Because of this, include files with the extension .html is parsed before inserted. It's highly recommended that inserted files are 'extension-less', thus disabling all before-inserting parsing.


14 How do I do to reset the logfile without restarting Spinner?

The following shellscript does the job:
#!/bin/sh

#If you want to keep the old log, copy it first. 
cp logfile log.bak 

#Reset the log. 
cat << EOF > logfile
EOF


15 Will Spinner always be free?

Yes, no worries! However there will also be a commercial version (same functionality) which includes a CDROM with Spinner, a printed manual, support etc.