The following file is also available here:

http://plan9.stanleylieber.com/werc


Install werc on Plan 9
======================

werc can be installed on Plan 9 under rc-httpd with minimal alterations.

Patches are linked at the end of this file.

rc-httpd
--------

Install rc-httpd.

The rc path must be changed to #!/bin/rc in the following files:

    rc-httpd/handlers/cgi
    rc-httpd/handlers/dir-index
    rc-httpd/handlers/error
    rc-httpd/handlers/form-test
    rc-httpd/handlers/redirect
    rc-httpd/handlers/serve-static
    rc-httpd/handlers/static-or-cgi
    rc-httpd/handlers/static-or-index
    rc-httpd/handlers/web-test
    rc-httpd/rc-httpd

rc-httpd/rc-httpd
-----------------

Modify the following lines:

    rc_httpd_dir = /path/to/rc-httpd
    path = ( /bin $rc_httpd_dir/handlers )
    cgi_path = ( /bin )

Optionally, remove the following line:

    echo `{date} :: $SERVER_NAME :: $request >[1=2]

and add a function to enable slightly more verbose logging:

    fn do_log {
        echo `{date} :: $SERVER_NAME :: $request :: $HTTP_USER_AGENT :: $1 :: 
$HTTP_REFERER >>$rc_httpd_dir/log >[2=1]
    }

do_log takes as its argument the result of the current page request (e.g., 200, 
404, 500, 503, etc.).

See the included patch below for suggestions on where to insert calls to do_log.

rc-httpd/handlers/dir-index
---------------------------

Modify the following line:

    - if(! test -r $full_path -a -x $full_path) {
    + if(! test -r $full_path -x $full_path) {

listen
------

To launch rc-httpd with listen(8), create the file /bin/service/tcp80:

    #!/bin/rc

    /path/to/rc-httpd/rc-httpd >>[2]/path/to/rc-httpd/log

The log file must be writeable by the web server process.

werc
----

Unpack werc into your chosen directory: /usr/username/public_html/werc

Create a directory for your domain: 
/usr/username/public_html/werc/sites/domain.com

The rc path must be changed to #!/bin/rc in the following files:

    werc/bin/aux/addwuser.rc
    werc/bin/aux/bpst.rc
    werc/bin/aux/gensitemaptxt.rc
    werc/bin/aux/runtsts.rc
    werc/bin/contrib/webserver.rc
    werc/bin/fltr_cache.rc
    werc/bin/werc.rc
    werc/bin/werc_errlog_wrap.rc

The awk path must be changed to #!/bin/awk -f in the following files:

    werc/bin/contrib/urldecode.awk
    werc/bin/template.awk

Optionally, if perl has been installed on your system, correct the path in the 
following file:

    werc/bin/contrib/markdown.pl

werc/etc/initrc
---------------

Modify the following lines:

    #plan9port=$PLAN9
    path=(/bin . ./bin ./bin/contrib)
    formatter=(md2html.awk)
    #formatter=(fltr_cache markdown.pl)

fltr_cache may be used if /tmp is writeable by the web server process.

werc/bin/werc.rc
----------------

Modify the following lines:

    path=(. /bin ./bin)

werc/lib/default_master.tpl
---------------------------

Modify the following lines:

    -     <h1 class="headerTitle"><a href="/">%($"siteTitle%) <span 
id="headerSubTitle">%($"siteSubTitle%)</span></a></h1>
    +     <h1 class="headerTitle"><a href="/">%($"siteTitle%)
    + %   if(! ~ $#siteSubTitle 0) {
    +         <span id="headerSubTitle">%($"siteSubTitle%)</span>
    + %   }
    +     </a></h1>

    -     %($"extraHeaders%)
    + % echo $"extraHeaders

rc-httpd/select-handler
-----------------------

To configure werc for rc-httpd, create the file 
/path/to/rc-httpd/select-handler:

    #!/bin/rc

    cd /path/to/rc-httpd

    if(~ $SERVER_NAME domain.com) {
        if(~ $location /_images/* /favicon.ico) {
            PATH_INFO = $location
            FS_ROOT = /usr/username/public_html/werc/sites/domain.com
            static-or-index
        }
        if not {
            PATH_INFO = $location
            FS_ROOT = /usr/username/public_html/werc/sites/domain.com
            static-or-cgi /usr/username/public_html/werc/bin/werc.rc
        }
    }
    if not error 503

Directories and filenames that begin with an _ do not appear in werc's default 
sidebar menu.

Patches
-------

    http://plan9.stanleylieber.com/rc-httpd/rc-httpd_plan9.diff
    http://plan9.stanleylieber.com/werc/werc_plan9.diff



-- 
You received this message because you are subscribed to the Google Groups 
"werc" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/werc9?hl=en.

Reply via email to