NAME¶
weborf - Minimal webserver
SYNOPSIS¶
weborf [options]
DESCRIPTION¶
Weborf is a minimal webserver. Also has a limited support for webdav. This
manual page documents
Weborf's command-line parameters.
Weborf
is released under the GNU General Public License version 3.
OPTIONS¶
Options:¶
- -b, --basedir
- Must be followed by a valid directory. Weborf will use this directory as
root directory, and won't send files located in parent dirs. But it is
still possible for server-side scripts to read contents located anywhere
on the filesystem. Links are also a workaround to exit from the base
directory.
- -a, --auth
- Must be followed by a unix socket listened by a program who will handle
authentication. See the website for more details.
- -c, --cgi
- Must be followed by a list (separated with commas and without spaces) of
cgi formats and the binary to execute that format. For example:
.php,/usr/bin/php-cgi,.sh,/usr/bin/sh-cgi In /etc/weborf.conf there is a
'cgi' directive, corresponding to this option. It is used when launching
weborf as SystemV daemon.
- -C, --cache
- Must be followed by a directory that will be used to store cached files.
To flush the cache (empty that directory) you must send USR2 signal to the
process. It is advised to flush the cache on reboot (manually or with
kill) because some items might be invalid after a reboot but weborf would
not know that.
- -T, --inetd
- Must be specified when using weborf with inetd or xinetd. It will be still
necessary to specify the used port, to pass the correct value to the CGI
scripts. The -u directive will be ignored. Daemon -d mode should not be
used.
- -t, --tar
- If used, instead of sending directory listing when requesting a directory,
weborf will send a tar.gz file with the content of that directory. It is
used mainly to share files and preserving their permissions.
- -x, --noexec
- When used, weborf will send scripts as if they were normal files instead
of executing them and sending their output.
- -m, --mime
- When used, weborf will send the Content-Type header. It is strongli
advised to use it when using weborf as production server because some
browsers rely on this field. This value will not affect the CGI pages.
- -i, --ip
- Must be followed by a valid IP address (v6 or v4, depending on how weborf
was compiled. Run weborf -h to know it), and weborf will accept only
connections directed to that specific IP. If the IP address provided isn't
used by a network device on the host, weborf will terminate. By default
weborf listens to all IP addresses on the local host.
- -p, --port
- Must be followed by a valid port number (between 1 and 65535), and weborf
will listen to incoming connection on the specified port. If the port is
already used weborf will terminate. To use low port numbers (less than
1024) it is necessary to execute the process as root. Thus it isn't a good
idea to run a webserver with root privileges, so it is possible to specify
another user.
- -V, --virtual
- Enables weborf to use virtualhosts. The basedir supplied with -b will be
the default one (will be used if the requested host is unknown). Every
virtualhost must be in the form host[:port]=basedir. The port must be
specified if the port used is different than 80. And the basedir must end
with a /. To separate many virtualhosts, use a comma, and avoid spaces. To
make weborf use different virtualhosts on different ports, it will be
necessary to launch many weborf's processes.
- -I, --index
- Must be followed by a list (separated with commas and without spaces) of
index files. Weborf will try to load an index file following the order
they're listed, and if none is found it will list the content of the
directory. In /etc/weborf.conf there is an 'indexes' directive,
corresponding to this option. It is used when launching weborf as SystemV
daemon.
- -u
- Must be followed by a valid uid, different from 0. Weborf will use this
user to do his work, but will bind to the network port with the previous
user. This mechanism is meant to let users execute it as root and use port
80, and then let it run without root privileges.
- -d
- Runs weborf as a daemon. It will not terminate when it's father process
terminates, and it will leave the shell free to receive commands.
SCRIPTING¶
Weborf is able to send dynamically generated pages using php-cgi (if installed).
When a filename ends with ".php", weborf will use php to execute
this file before sending it to the client. The -c switch will override the
default behavior. It is also possible to create scritps or binaries in other
languages, just read rfc3875 to know how to handle parameters.
RETURN VALUE¶
- 0
- Normal termination occured after a signal, a daemonization or a print
version and exit or so on...
- 1
- Basedir is not a directory
- 2
- Invalid IP address
- 3
- Port already in use
- 4
- Invalid port number
- 5
- Authentication socket doesn't exist or is not a unix socket
- 6
- Too much indexes provided as parameter to -I or to -c. Increasing
MAXINDEXCOUNT in the file options.h and recompiling can solve the problem.
But providing a reasanable amount of index file names would be a better
solution.
- 7
- Unable to allocate memory
- 9
- Unable to change UID
- 10
- Error with cache directory
- 19
- Invalid parameters on command line
SIGNALS¶
- SIGUSR1
- Prints the internal status of the socket's queue and threads on the
standard output
SEE ALSO¶
weborf.conf(5),php
(1)
VERSION¶
Weborf0.13
WEB¶
http://galileo.dmi.unict.it/wiki/weborf/
AUTHORS¶
Salvo "LtWorf" Tomaselli <tiposchi@tiscali.it>
Salvo Rinaldi <salvin@anche.no>