Provided by: weborf_0.15-1_amd64 bug


       weborf - Minimal webserver


       weborf [options]


       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.


       -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 SIGUSR2 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.  It cannot be used together with

       -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 strongly 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.

       -k, --caps
              Shows some compile-time options in a machine-readable format.

       -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.

       -S, --cert
              Path to the SSL certificate. Enables https. Requires a key to be passed as well.

       -K, --key
              Path to the SSL key. Enables https. Requires a certificate to be passed as well.

       -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

       -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, --uid
              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.

       -g, --gid
              Must be followed by a valid gid, different from 0. Weborf will use this user to  do
              his work, but will bind to the network port before changing.

       -d     Runs  weborf as a daemon. It will not terminate when its father process terminates,
              and it will leave the shell free to receive commands.


       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


       0      Normal termination occurred 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  many 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
              reasonable 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


              Prints the internal status of the socket's queue and threads on the standard output







       Salvo "LtWorf" Tomaselli <>
       Salvo Rinaldi <>