This section summarizes some of the important UNIX cpp(1)
utility macros defined in the file config.h.dist that controls the configuration of
WN.
#define ACCESS_DENIED_URL
Any request for a document in a directory which is denied because of an
"Accessfile=
"
restriction should be redirected to the given URL. This can be
overridden by with the "Access-denied-URL=
".
The default is to give this the value "" which disables the feature.
#define AUTH_DENIED_FILE
This is the document returned when password authentication fails because of an incorrect password or username
The default is to give this the value "" which disables the feature.
#define CGI_BIN
Directory name to identify CGI programs.
The default is "cgi-bin"
.
#define CGI_EXT
File extension to identify CGI programs.
The default is ".cgi"
.
#define DEFAULT_PORT
Default port to run the stand-alone servers wnsd
on. This
can be overridden at runtime by using the -p
command line option.
The default is (80)
.
#define DEFAULT_CHARSET
Default character set to use in the Content-type header for
text/*
MIME types.
The default is iso-8859-1
.
#define BUILTIN_CONTENT_TYPE
This is the MIME Content-type header value used for documents generated by the server, such as error messages or search results.
The default is "text/html; charset=iso-8859-1"
.
#define DEFAULT_URI
This is the document returned in response to a request with only the
hostname, (something like "http://hostname.edu/
" with no
file name at the end). You would need to change it, for example, if you
wanted to have the default server response be to run a CGI program.
The default is "/index.hmtl"
.
#define FORBID_CGI
Define this if you wish to forbid the use of the use of CGI/1.1 programs on your host. This will enhance security but will, of course, decrease functionality. See the chapter "Using CGI Programs on the WN Server" in this guide.
The default is to comment out this macro.
#define GROUPID
Same as for "#define USERID
" but
for the group id.
#define INDEXFILE_NAME
Default file name if the requested URL does not include a file name.
The default is "index.hmtl"
.
#define LEAST_UID
Minimum allowable uid for users with personal home directories.
The default is (100)
.
#define MIME_TYPE_FILE
The full path name of the file containing information permitting wndex
to translate the MIME
"Content-type
" from the suffix of a file name. If this file
is not present, running wndex
with the -v
option will issue a
warning but use internal default values. The file exists so that you can
add to it if you wish to add new kinds of documents to your server. The
format of the file is explained in the file. The default version of the
file is in /lib/mime.types
. The internal defaults are the
same as what is currently in this file.
The default is "/usr/local/lib/wn/mime.types"
.
#define NO_DNS_HOSTNAMES
If this is set to TRUE the server will not use hostnames in your log file, just IP addresses. This will reduce the load on your server (but probably not speed up responses since the lookups usually take place after the transaction is complete). Keep in mind that setting this TRUE will mean that none of your CGI programs will get the hostname and also that your access files cannot have hostnames in them, just IP addresses.
The default value is FALSE
#define NO_SERVEALL
Set to TRUE disable the server's ability to serve documents not listed in
an index.cache
file. See the chapter "Creating Your WN Data Directory" in
this guide for more details.
The default value is FALSE
#define NO_SUCH_FILE_URL
Specifies that any request in this directory for a non-existent file or a
file not listed in the index.wn
file of this
directory should be redirected to the given URL. Can be overridden with
the "No-Such-File-URL=
"
directory directive in the index.wn
file.
The default is to give this the value "" which disables the feature.
#define PUB_HTML
Name of public directory for home directories. See the section "Alternate Hierarchies From a Table Lookup" in this guide for more details.
The default is "/public_html"
.
#define RFC931_TIMEOUT
Timeout in seconds for the server when attempting to do RFC 931
lookups on clients using the UNIX identd(8)
system utility. This may be good for additional logging information, but
should not be trusted for authentication. Comment out if no lookup is
desired.
Because of bugs in many PC TCP/IP stacks that may cause identification connections to time out instead of being refused (certain firewall configurations may cause the same problem) this defaults to off, and the timeout should be kept low. Ten seconds is about as high as I recommend. Remember, this timeout will need to be fulfilled on every request from that client, so pages with lots of in-line images will become painful.
The default is to comment out this macro.
#define ROOT_DIR
Complete path of your root data directory.
The default is "/usr/local/wn"
.
#define SWN_PID_FILE
Full path of the file in which you wish the stand-alone server
wnsd
to deposit its process id on startup. Comment this out
or set it to the empty string ""
if you want the pid printed
to the UNIX stdout(3)
stream on startup instead of being placed in a file. This can be
overridden at runtime by using the -q
command line option.
The default is "/usr/local/wnlogs/wn.pid"
.
#define TILDE_TABLE
If defined to the path of a file containing name:directory
pairs then URLs starting with "TILDE_USER_STRINGname/foo
" will be
changed to /foo
and the root directory will be the directory
after the ':
' in the table. See the section "Alternate Hierarchies From a
Table Lookup" in this guide for more details
The default is to comment out this macro.
#define TILDE_USER_PWFILE
If defined then the user's name will be looked up in the password file
and the corresponding home directory with the string "#define PUB_HTML
" appended will be the
root directory. This will fail if the user's uid is less than "#define LEAST_UID
". See the section
"Hierarchies in User Home
Directories" in this guide for more details.
The default is to comment out this macro.
#define TILDE_USER_STRING
URL indicating a user's home page. You can also use something like
"/homepages/
" or "/people/
" for this but use
"/~
" to make "http://hostname/~user/
" work.
This appears to be a de facto standard. See the section "Hierarchies in User Home
Directories" in this guide for more details.
The default is "/~"
.
#define USE_VIRTUAL_HOSTS
If defined to the full path to the file of virtual hosts,
wnsd
will support multi-homed or virtual hosts as described
in the chapter "Multi-homed or Virtual Servers on
the WN Server" in this guide.
The default is to comment out this macro.
#define USERID
The user id you want wnd
to switch to when running under the
UNIX inetd(8)
system utility or when wnsd
is run by root
.
When running under inetd(8)
it should agree with the uid you
set in the UNIX inetd.conf(5)
configuration file.
The default depends on your system type but is generally something like
nobody
.
#define VERBOSELOG
By default WN uses the "Common Log Format" used by CERN httpd and NCSA httpd. Uncommenting this
will cause additional information to be added to the end of each log
line. In particular the User-Agent
and
Referrer
are logged.
Note: I have chosen to use the correct spelling ofReferrer
in the log file. To enable interoperability and to comply with the CGI/1.1 specification it is necessary elsewhere to use the incorrect spellingReferer
and the CGI environment variableHTTP_REFERER
.
This can be overridden at runtime by using the -v
command line option.
The default is to comment out this macro.
#define VIRTUAL_HOSTS_FILE
Full path to virtual hosts file. See the section "Using a Virtual Hosts List File" in this guide.
The default is to comment out this macro.
#define WN_ERRLOGFILE
Same as for "#define WN_LOGFILE
"
except for error messages. To override use the -l
option.
The default is "/usr/local/wnlogs/wn.log.err"
.
#define WN_HOSTNAME
If the default value of ""
is used WN will get the
default hostname from your system. If you supply a name it should be a
fully qualified domain name. WN will attempt to use the UNIX gethostbyname(3)
system call to find the IP address of your server.
The default value is ""
.
#define WN_LOGFILE
Full path of the file you want to use for a log file. The values set
here are overridden by the -L
option. To use the UNIX
syslogd(8)
system utility run wnsd
or wnd
with the -S
command line option. To
do no logging set above to ""
, the empty string.
The default is "/usr/local/wnlogs/wn.log"
.
#define WN_PAM_ENABLED
Uncomment this to enable PAM based authentication if your system supports PAM (Plugable Authentication Modules). This support exists on Linux and Solaris at least.