shithub: werc

ref: cfabe41f3a40bbfe302bf2d1a0965d6e1fc7bba7
dir: /sites/werc.cat-v.org/docs/web_server_setup/plan_9_httpd.md/

View raw version
Setup werc with Plan 9's httpd
==============================


There are two main options, you can use Russ Cox's magic to cgi translator
(found in his contrib dir as cgi.c), or you can use the following script which
while simpler, it also lacks some features at the moment.

Thanks to soul9 for the original idea of wrapping werc in a shell script that
would setup a cgi-like environment!


    #!/bin/rc

    SERVER_NAME=$2
    REQUEST_URI=`{echo $*(15)}
    REQUEST_URI=$REQUEST_URI(2)
    REQUEST_URI=/
    REQUEST_METHOD=$*(16)
    PLAN9=/


    echo 'HTTP/1.0 200 Ok
    Connection: close
    Server: werc/9.9.9' # This is whatever you like


    cd /usr/web/bin/
    rfork
    /bin/rc < ./werc.rc >[2]/usr/glenda/tmp/w/log # Use whatever location you like to log stderr, but make sure it is writable by none.

Call this script werc-wrap, and put it in /rc/bin/ip/httpd/

Then in your /sys/lib/httpd.rewrite  add a line like:

    /w @/magic/werc-wrap

And this will run werc for all stuff under /w. Note that apparently httpd is
incapable of internally remapping the root directory, so until a solution is
found for this, you will have to keep your site in a sub-directory of the web
server root.

**Notes**: This is experimental and work in progress, there are a couple of issues
with the werc code itself that might need fixing, in particular you will need
to replace the '%($"extraHeaders%)' in lib/headers.tpl with '% echo
$"extraHeaders' no clue why.