[
Table Of Contents
| Keyword Index
]
NaviServer Installation Guide(n) 4.99.2 ""
NaviServer Installation Guide - NaviServer Installation Guide
TABLE OF CONTENTS
DESCRIPTION
Getting Started
Downloading
Building
Installing
Downloading and Installing Modules
Configuring
NaviServer is distributed in source form.
NaviServer is reasonably portable and known to compile and run on the following platforms:
- Linux 2.2 and better (x86 and others)
- FreeBSD 3.4 and better (x86 and others)
- OpenBSD 2.5 and better (x86 and others)
- Solaris 2.x and better (SPARC and x86)
- IRIX 6.x (mips)
- HP/UX 10 and 11 (hppa)
- DEC Tru64 &OSF/1 4.0 and better (alpha)
- UnixWare 7.x and better (x86)
- Apple OS/X "Darwin"
It's likely NaviServer can compile on other systems and/or higher or lower
numbered versions but this has not been extensively tested. The primary
development platforms for NaviServer at AOL are IRIX 6.4 and Solaris 7.
We also use HP/UX 10.20/11.0, Solaris 2.6, and VA Linux 6.2.1 (Linux 2.2).
You will need a C compiler. The best one to use is GNU GCC from
http://www.gnu.org and its mirrors. The versions
we use are 2.95.2. NaviServer (and the included Tcl libraries) are written
entirely in ANSI standard C.
GNU make is also required. It is also available from the GNU web site.
Released versions are available from
SourceForge Download area
Latest development version is available from CVS
| |
cvs -z3 -d:pserver:anonymous@naviserver.cvs.sourceforge.net:/cvsroot/naviserver co -P naviserver
cd naviserver
./autogen.sh
make install
|
We've tried to make building NaviServer as simple as possible. On the supported
platforms, simply type:
Some modules use third-party libraries. If the library is missing, the NaviServer
build will continue without error -- it just will not build the offending
module.
Note: If you have any problems building, the two files include/Makefile.global and
include/Makefile.module have all the information you need to change
settings throughout the NaviServer environment.
Two options to configure.sh script worth noting:
- --enable-symbols to enable debugging information to be compied in for
easy debugging, otherwise it will be compiled with optimization enabled and
that will prevent from effective troubleshooting in case of server crash
- --disable-tclvfs to disable using Tcl VFS subsystem, which is rich and featured
layer that can access different types of files, like zip archives. This option will
speed up the server if the speed is essential and server will serve ordinary files only
Type "make install" to make a production server. This
will create an installation directory at /usr/local/ns/, populate
the directories with various startup files and configuration files, copy
the binaries to the /usr/local/ns/bin directory, and finish. To install
confidence tests, type "make install-tests" and they will appear in the
tests/ directory of your server's pageroot. The default location for installations
can be overridden by typing "gmake install PREFIX=/your/directory/".
To download and install additional modules:
| |
cvs -z3 -d:pserver:anonymous@naviserver.cvs.sourceforge.net:/cvsroot/naviserver co -P modules
cd modules
make install
|
Not all modules will be compiled by default due to external dependencies, so
please look into module's README file for any additional information.
The installation directory contains several config files under /usr/local/ns/conf installation directory.
This configuration will:
- Listen for http connections on your computer's primary interface at port 8080. To use another port and/or
select interfaces, you can set the "post" and "address" parameters.
- Check security settings for nscp (Control Port module) and listen on localhost:2080 if they are set.
Note: Some modules have been disabled in the sample nsd.tcl for security
reasons. They are nscp and nsperm. They aren't required to run a
server unless you want to use the Control Port and/or the Permissions
module, respectively. Before using them, change the passwords and
default permissions by following the instructions in the NaviServer
documentation.
Although you must be root to start NaviServer on port 80, the server itself must
change to a regular user shortly after initialization. You either
need to start the server as a non-root user (in which case you will
not be able to listen for connections on privileged ports such as port
80) or you must include a -u user command line flag to which the
server will setuid(2) after startup.
If Naviserver was installed with default nsd.tcl config file, just type /usr/local/ns/bin/nsd
and it will be started in the background listening on port 8080.
You may either specify a Unix username or numeric uid, e.g.:
bin/nsd -t conf/nsd-config.tcl -u user -g group
For the mode of operation, there are three choices:
Foreground, Background, and Inittab.
-
bin/nsd -ft conf/nsd-config.tcl -u user -g group
In Foreground mode , the server starts and emits diagnostic log messages
directly to the terminal window. This is useful for testing, configuration
or debugging a server. To start the server in foreground mode use:
To stop a server running the foreground simply press interrupt on your keyboard
(e.g., ctrl-c or the DEL key) which will send a SIGINT to the server and
initiate shutdown.
-
bin/nsd -t conf/nsd-config.tcl -u user -g group
In Background mode, the server forks and disassociates from the terminal.
Diagnostic messages are appended to log/server.log. This is a typical
daemon-style mode of operation. To start the server in background mode use:
To stop a server running the background you may either use the kill(2) command
to send a SIGTERM to the background process id(*) or the special -K flag of the
nsd binary. This flag will determine the process id from a special marker
file, send the signal and wait for shutdown, e.g.:
-
bin/nsd -Kt conf/nsd-config.tcl -u user -g group
You may also use the -k flag to kill and restart a background server.
-
w1:23:respawn:/usr/local/ns/bin/nsd -it /usr/local/ns/nsd-config.tcl -u user -g group
In Inittab mode, the server runs in the foreground but opens the
log file as with background mode. This mode is used when the server is
started from an entry in the /etc/inittab file. The benefit of this mode
is that init will restart the server if it happens to crash. Production
servers at AOL normally run in this mode. To run the server from /etc/inittab,
add an entry similar to the following, substituting the proper id, run levels,
and full pathnames:
To restart a server you can simply kill the current server with the -K flag
as with the background mode; init will then restart the server for you.
To stop a server running in inittab mode you must comment out or remove
the entry from the /etc/inittab file and signal the init process to re-read
inittab with the "init q" command.
Note: While running NaviServer on some Unix platforms (e.g., Linux, SGI),
you'll notice multiple nsd processes. This is normal and represents the
individual threads. The main process id can be determined by checking
the log/nsd.pid file or looking at the last few entries of the server
log, each of which will include the process id and thread id in the form
[pid.tid]. You can also telnet to the control port and type "ns_info pid".