DWiki's configuration file has a simple format. Blank lines and
comments (any line that has a '#' as the first non-whitespace
character) are just skipped, and everything else is interpreted as a
configuration directive to set.
Configuration directives have optional values, which are separated from the configuration item by whitespace. (Whitespace within the value is not interpreted, although trailing whitespace is removed from lines.)
So an example set of configuration file lines might be:
root /web/data/dwiki pagedir pages tmpldir templates wikiname TestWiki wikititle Testing Wiki
DWiki requires and uses some configuration directives. Unused
configuration directives are not errors; all configuration directives
(and their values) become part of the context variables available for
template ${...} expansion.
To simplify life, configuration directives are put through a canonicalization process. This operates like so:
pages, templates, or
rcsroot exist under root and if so sets up the configuration
directives appropriately.Required configuration directives are: pagedir, tmpldir,
wikiname, and rooturl. This means that with defaulting, the
minimal DWiki configuration file is:
root /some/where rooturl /some/thing wikiname SomeThing
rootpagedirtmpldirpagedir.)usercsusercs is set, DWiki
refuses to serve files ending with ,v or in RCS directories; see
InvalidPageNames.)rcsrootusercs is on. RCS directories under
pagedir, where basic RCS commands put them (if you make those
directories; DWiki requires you to work this way). With this
directive on, the RCS ,v files for files
under pagedir are instead found under here, in a mirror of the
directory structure in pagedir, so you have pagedir/foo/bar
and rcsdir/foo/bar,v. This keeps pagedir neater at the expense
of requiring some scripting support.wikinamewikititlewikirootwikiname's value as a page name; if that
doesn't work, people see the DWiki's root directory in a directory
view.rooturlpublicurlrooturl.staticdirstaticurlstaticurl doesn't start with a slash, it's taken as a
subdirectory of rooturl. (Requires staticdir to be set.)charsetWhen DWiki gets a request for a URL, it tries to turn it into a
request for something under either staticurl (if defined) or
rooturl; whatever is left after subtracting the appropriate thing is
the path being served relative to staticdir or pagedir.
staticurl is checked first, so it can be a subset of the URL space
available under rooturl.
For safety reasons, DWiki only tries to process a request if the
request's URL falls under either staticurl or rooturl. If DWiki
receives a request for anything outside those two, something is
clearly wrong and it generates a terse error page.
When it generates URLs for DWiki pages DWiki normally puts rooturl
on front (as a directory). However, if you set publicurl DWiki puts
that on the front instead.
This is useful if for internal reasons you receive requests with their URLs rewritten to something users shouldn't (or can't) use. The case ChrisSiebenmann knows is Apache with URL aliases and the DWiki CGI-BIN being run via suexec.
authfiledefaultuserauthfile. This should be
used carefully, as it makes all requests to the DWiki be
authenticated (since they all have a user, if even only the default
user).global-authseedglobal-authseed-fileglobal-authseed
from, if it is set. The file has no special format, but should
contain some randomness and its contents should be kept secret.authcookie-pathcommentsdircomments-oncommentsdir be defined and that authentication be enabled.comments-in-normalremap-normal-to-showcommentscomments-in-normal without you needing to change the standard
templates.DWiki can optionally cache the results of page generation to speed up response time. See Caching for a longer discussion.
cachedircache-warn-errorsrender-cachecachedir to be set.)render-heuristic-ttlrender-anonymous-onlybfc-cache-ttlcachedir to be set.)bfc-time-minbfc-load-minbfc-time-trivbfc-load-min, don't
bother looking at the load average if the page took at most this
long to generate. Defaults to 0.09 of a second.bfc-atom-ttlbfc-atom-nocond-ttlslow-requests-byalias-pathAliases.search-onblog-display-howmanyblog::blog renderer
should try to restrict most pages it displays to. If set, it must be
a positive integer; if not set, blog::blog uses a default.atomfeed-display-howmanyatom::pages and atom::comments use a default.feed-max-sizeatom::pages or
atom::comments should try to limit their output to. If set, either
stops adding new entries (regardless of how many entries have been
processed already) once they have generated that many kilobytes or
more of output. Because of the 'or more' clause, you should allow
for a safety margin. If unset, syndication feeds are not
size-limited.feed-max-size-ips66.150.15.') that feed-max-size applies to. Syndication
requests from any other addresses are not size-limited. If unset,
feed-max-size applies to all syndication requests, regardless of
what IP address makes the request.canon-hostsHost: header that is
not in this list, DWiki immediately serves up a redirection to the
first hostname in the list, which is assumed to be the preferred
hostname.bad-robots | ' (space, |, space), for robots that should get
permission denied responses when they try to fetch pages in various
views that no robot should be fetching. Currently the list of bad
views is atom, atomcomments, source, and writecomment, all of which
are typically fetched by robots that don't respect rel="nofollow"
on links.