ref: 493395e39608267c5458c9cc20e0617dfd74c388
dir: /sites/werc.cat-v.org/docs/web-server-setup/plan-9-httpd.md/
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. In your /lib/namespace.httpd you probably will want to add something along the following lines to bind the werc directory into the httpd's namespace: bind -b /usr/glenda/src/werc/ /usr/web/ bind /usr/glenda/src/werc/bin/ /usr/web/magic/ **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.