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>