hws-cgi - A Haskell Web Server

Description

This is a web server written in Haskell, based on Simon Marlow's original Haskell Web Server. It has a module system and can run CGI programs.

The original program is described in: Developing a high-performance web server in Concurrent Haskell, Simon Marlow, Journal of Functional Programming, 12(4+5):359--374, July 2002 http://www.haskell.org/~simonmar/papers/web-server-jfp.pdf

The original version available from: http://cvs.haskell.org/cgi-bin/cvsweb.cgi/fptools/hws/

A more conservative update of the original HWS is available from: http://darcs.haskell.org/hws/

Build

You can use either Cabal or make to build HWS.

With Cabal

$ runghc Setup.hs configure
$ runghc Setup.hs build

This produces the binary dist/build/hws/hws.

With make

$ make

This produces the binary ./hws.

Configure

There is a config file example in conf/httpd.conf. The server should run with the example settings, but it would not be very usable. See the example file for more information about the configuration parameters.

Run

usage: hws [option...]
  -f filename   --config=filename        default: "conf/httpd.conf"
  -d directory  --server-root=directory  default: "."

The server root is the directory which hws uses as base for the configuration and log file paths.

Files are served from the DocumentRoot.

CGI

Files which have the filename suffix .cgi are run as CGI programs.

Debug

Look in the error log file (log/error.log by default) for any error messages. If this does not help, try setting LogLevel to debug (in the config file).

Download

Darcs

$ darcs get --partial http://darcs.bringert.net/hws-cgi/

Tarball

Latest release: hws-cgi-2006.11.27.tar.gz

You can also use hws-cgi-latest.tar.gz which should always redirect you to the latest release tarball.

Requirements

Installation

  1. Unpack the sources and enter the source directory:
    $ tar -zxf hws-cgi-2006.11.27.tar.gz
    $ cd hws-cgi-2006.11.27
    
  2. Configure:
    $ runghc Setup.lhs configure
    
  3. Build:
    $ runghc Setup.lhs build
    
  4. Install (as root):
    # runghc Setup.lhs install
    

Maintainer

bjorn@bringert.net

License

See LICENSE.