53 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 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.
 | 
