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/
You can use either Cabal or make to build HWS.
$ runghc Setup.hs configure $ runghc Setup.hs build
This produces the binary dist/build/hws/hws.
$ make
This produces the binary ./hws.
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.
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.
Files which have the filename suffix .cgi are run as CGI programs.
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).
$ darcs get --partial http://darcs.bringert.net/hws-cgi/
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.
$ tar -zxf hws-cgi-2006.11.27.tar.gz $ cd hws-cgi-2006.11.27
$ runghc Setup.lhs configure
$ runghc Setup.lhs build
# runghc Setup.lhs install
bjorn@bringert.net
See LICENSE.