Index: openacs-4/etc/install/checkout.sh =================================================================== RCS file: /usr/local/cvsroot/openacs-4/etc/install/checkout.sh,v diff -u -N -r1.11 -r1.12 --- openacs-4/etc/install/checkout.sh 4 Nov 2003 15:36:17 -0000 1.11 +++ openacs-4/etc/install/checkout.sh 5 Nov 2003 11:50:36 -0000 1.12 @@ -14,7 +14,7 @@ # @author Peter Marklund (peter@collaboraid.biz) set -e -set -x +#set -x export CVS_RSH=ssh script_path=$(dirname $(which $0)) Index: openacs-4/etc/install/install.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/etc/install/install.tcl,v diff -u -N -r1.7 -r1.8 --- openacs-4/etc/install/install.tcl 5 Nov 2003 11:20:50 -0000 1.7 +++ openacs-4/etc/install/install.tcl 5 Nov 2003 11:50:36 -0000 1.8 @@ -16,7 +16,7 @@ # Server root directory. This is where all of the files for your server # will live. -set serverroot "/web/${server}" +set serverroot "/var/lib/aolserver/${server}" #--------------------------------------------------------------------- # The host name (DNS) the server will be listening on @@ -40,12 +40,12 @@ # OS user and group that AOLserver runs as. We recommend that you # create a new user for your server. # If you do not want to do that, change the user name below -set aolserver_user "nsadmin" +set aolserver_user ${server} set aolserver_group "web" #--------------------------------------------------------------------- # OpenACS configuration -set admin_email "admin@yourserver.test" +set admin_email "admin@${serverhost}" set admin_username "admin" set admin_first_names "Admin" set admin_last_name "User" Index: openacs-4/packages/acs-core-docs/www/acs-admin.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/acs-admin.html,v diff -u -N -r1.16 -r1.17 --- openacs-4/packages/acs-core-docs/www/acs-admin.html 31 Oct 2003 10:54:19 -0000 1.16 +++ openacs-4/packages/acs-core-docs/www/acs-admin.html 5 Nov 2003 11:48:09 -0000 1.17 @@ -1 +1 @@ -Part�II.�Administrator's Guide

Administrator's Guide

Table of Contents

2. Installation Overview
Prerequisite Software
3. Complete Installation
Install Unix-like system and supporting software
Install Oracle 8.1.7
Install PostGreSQL
Install AOLserver 3.3oacs1
Install OpenACS 5.0.0a4
OpenACS Installation Guide for Windows2000
OpenACS Installation Guide for Mac OS X
4. Configuring a New Service
5. Upgrading
Support for upgrades.
6. Maintenance
Hosting Web Sites
Database Management
Backup and Recovery
A. Install Red Hat 8.0
B. Install additional supporting software
Unpack the OpenACS tarball
Initialize CVS (OPTIONAL)
Add PSGML commands to emacs init file (OPTIONAL)
Install Daemontools (OPTIONAL)
Install qmail (OPTIONAL)
Install Analog web file analyzer
Install nspam
Install Full Text Search
Install nsopenssl
C. Credits
Where did this document come from?
Linux Install Guides
Security Information
Resources
View comments on this page at openacs.org
+Part�II.�Administrator's Guide

Administrator's Guide

Table of Contents

2. Installation Overview
Basic Steps
Prerequisite Software
3. Complete Installation
Install Unix-like system and supporting software
Install Oracle 8.1.7
Install PostGreSQL
Install AOLserver 3.3oacs1
Install OpenACS 5.0.0a4
OpenACS Installation Guide for Windows2000
OpenACS Installation Guide for Mac OS X
4. Configuring a New Service
5. Upgrading
Support for upgrades.
6. Maintenance
Hosting Web Sites
Database Management
Backup and Recovery
A. Install Red Hat 8/9
B. Install additional supporting software
Unpack the OpenACS tarball
Initialize CVS (OPTIONAL)
Add PSGML commands to emacs init file (OPTIONAL)
Install Daemontools (OPTIONAL)
Install qmail (OPTIONAL)
Install Analog web file analyzer
Install nspam
Install Full Text Search
Install nsopenssl
Install tclwebtest.
C. Credits
Where did this document come from?
Linux Install Guides
Security Information
Resources
View comments on this page at openacs.org
Index: openacs-4/packages/acs-core-docs/www/analog-install.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/analog-install.html,v diff -u -N -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/analog-install.html 28 Oct 2003 22:07:33 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/analog-install.html 5 Nov 2003 11:48:09 -0000 1.4 @@ -1,20 +1,20 @@ Install Analog web file analyzer

Install Analog web file analyzer

Download the Analog source tarball in /tmp. Unpack, compile, and install analog.

[root@yourserver aolserver]# cd /usr/local/src
-[root@yourserver src]# tar xzf /tmp/analog-5.31.tar.gz
-[root@yourserver src]# cd analog-5.31
-[root@yourserver analog-5.31]# make
+[root@yourserver src]# tar xzf /tmp/analog-5.32.tar.gz
+[root@yourserver src]# cd analog-5.32
+[root@yourserver analog-5.32]# make
 cd src && make
-make[1]: Entering directory `/usr/local/src/analog-5.31/src'
+make[1]: Entering directory `/usr/local/src/analog-5.32/src'
 (many lines omitted)
 ***IMPORTANT: You must read the licence before using analog
 ***
-make[1]: Leaving directory `/usr/local/src/analog-5.31/src'
-[root@yourserver analog-5.31]# cd ..
-[root@yourserver src]# mv analog-5.31 /usr/share/
+make[1]: Leaving directory `/usr/local/src/analog-5.32/src'
+[root@yourserver analog-5.32]# cd ..
+[root@yourserver src]# mv analog-5.32 /usr/share/
 [root@yourserver src]#
 
cd /usr/local/src
-tar xzf /tmp/analog-5.31.tar.gz
-cd analog-5.31
+tar xzf /tmp/analog-5.32.tar.gz
+cd analog-5.32
 make
 cd ..
-mv analog-5.31 /usr/share/

See also Section�, “Set up Log Analysis Reports - OPTIONAL”

View comments on this page at openacs.org
+mv analog-5.32 /usr/share/

See also Section�, “Set up Log Analysis Reports - OPTIONAL”

View comments on this page at openacs.org
Index: openacs-4/packages/acs-core-docs/www/aolserver.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/aolserver.html,v diff -u -N -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/aolserver.html 31 Oct 2003 15:57:34 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/aolserver.html 5 Nov 2003 11:48:09 -0000 1.20 @@ -2,14 +2,23 @@ by Vinod Kurup
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

  1. Unpack the Aolserver tarball.�Download the aolserver tarball to /tmp/aolserver3.3oacs1.tar.gz. As root, untar - aolserver3.3oacs1.tar.gz - into /usr/local/src. -

    [root@yourserver root]# cd /usr/local/src
    -[root@yourserver src]# tar xzf /tmp/aolserver3.3oacs1.tar.gz
    +        

  1. Unpack the Aolserver tarball.�Download the aolserver tarball and unpack it.

    [root@yourserver root]# cd /usr/local/src
    +[root@yourserver src]# wget --passive http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz
    +--15:38:08--  http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz
    +           => `aolserver3.3oacs1.tar.gz'
    +Resolving uptime.openacs.org... done.
    +Connecting to uptime.openacs.org[207.166.200.199]:80... connected.
    +HTTP request sent, awaiting response... 200 OK
    +Length: 3,858,074 [application/x-compressed]
    +
    +100%[====================================>] 3,858,074     66.56K/s    ETA 00:00
    +
    +15:39:05 (66.56 KB/s) - `aolserver3.3oacs1.tar.gz' saved [3858074/3858074]
    +[root@yourserver src]# tar xzf aolserver3.3oacs1.tar.gz
     [root@yourserver src]#
     
    cd /usr/local/src
    -tar xzf /tmp/aolserver3.3oacs1.tar.gz
  2. Compile AOLserver.�Compile and install AOLserver. First, prepare the installation directory and the source code. The message about BUILD-MODULES can be ignored.

    root@yourserver root]# mkdir -p /usr/local/aolserver
    +wget --passive http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz
    +tar xzf aolserver3.3oacs1.tar.gz
  3. Compile AOLserver.�Compile and install AOLserver. First, prepare the installation directory and the source code. The message about BUILD-MODULES can be ignored.

    root@yourserver root]# mkdir -p /usr/local/aolserver
     [root@yourserver root]# cd /usr/local/src/aolserver
     [root@yourserver aolserver]# ./conf-clean
     cat: BUILD-MODULES: No such file or directory
    @@ -78,16 +87,27 @@
     
    cd /usr/local/aolserver/bin
     cp /tmp/openacs-5.0.0a4/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres
     chmod 755 nsd-postgres
  • Install tDOM.�Download the tDOM - tarball to - /tmp/tDOM-0.7.7.tar.gz, - unpack it, adjust the configuration file to match our patched + tarball, unpack it, adjust the configuration file to match our patched distribution of aolserver, and compile it.

    [root@yourserver root]# cd /usr/local/src
    -[root@yourserver src]# tar xzf /tmp/tDOM-0.7.7.tar.gz
    -[root@yourserver src]# cd tDOM-0.7.7/unix
    +[root@yourserver src]# wget --passive http://www.tdom.org/tDOM-0.7.8.tar.gz
    +--16:40:58--  http://www.tdom.org/tDOM-0.7.8.tar.gz
    +           => `tDOM-0.7.8.tar.gz'
    +Resolving www.tdom.org... done.
    +Connecting to www.tdom.org[212.14.81.4]:80... connected.
    +HTTP request sent, awaiting response... 200 OK
    +Length: 826,613 [application/x-compressed]
    +
    +100%[====================================>] 826,613      138.06K/s    ETA 00:00
    +
    +16:41:04 (138.06 KB/s) - `tDOM-0.7.8.tar.gz' saved [826613/826613]
    +
    +[root@yourserver src]# tar xzf tDOM-0.7.8.tar.gz
    +[root@yourserver src]# cd tDOM-0.7.8/unix
     [root@yourserver unix]#
     
    cd /usr/local/src
    -tar xzf /tmp/tDOM-0.7.7.tar.gz
    -cd unix

    Edit the file CONFIG and change this section: +wget --passive http://www.tdom.org/tDOM-0.7.8.tar.gz +tar xzf tDOM-0.7.8.tar.gz +cd tDOM-0.7.8/unix

    Edit the file CONFIG and change this section:

    # ----------------------------------------------------
     # aolsrc="/usr/src/aolserver-3.4"
     # ../configure --enable-threads --disable-tdomalloc \
    @@ -112,10 +132,16 @@
       (many lines omitted)
               -Wl,-rpath,/usr/local/lib -o tcldomsh;\
     fi
    -[root@yourserver unix]# cp libtdom0.7.7.so /usr/local/aolserver/bin/
    +[root@yourserver unix]# cp libtdom0.7.8.so /usr/local/aolserver/bin/
    +[root@yourserver unix]# cd /usr/local/aolserver/bin/
    +[root@yourserver bin]# ln -s libtdom0.7.8.so libtdom.so
    +[root@yourserver bin]#
    +
     
    sh CONFIG
     make
    -cp libtdom0.7.7.so /usr/local/aolserver/bin/

    +cp libtdom0.7.8.so /usr/local/aolserver/bin/ +cd /usr/local/aolserver/bin +ln -s libtdom0.7.8.so libtdom.so

  • Install nsopenssl (OPTIONAL)

  • Install Full Text Search with OpenFTS (OPTIONAL)

  • Install nspam (OPTIONAL)

  • Test AOLserver.�In order to test AOLserver, we'll run it using the sample-config.tcl file provided in the AOLserver distribution, Index: openacs-4/packages/acs-core-docs/www/apm-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-design.html,v diff -u -N -r1.17 -r1.18 --- openacs-4/packages/acs-core-docs/www/apm-design.html 31 Oct 2003 15:57:34 -0000 1.17 +++ openacs-4/packages/acs-core-docs/www/apm-design.html 5 Nov 2003 11:48:09 -0000 1.18 @@ -88,7 +88,7 @@ packages for other ACS users to download and install.

    For a simple illustration of the difference between ACS without APM (pre-3.3) and ACS with APM (3.3 and beyond), consider a hypothetical ACS installation that uses only two of the thirty-odd modules available circa ACS -3.2 (say, bboard and e-commerce):

    APM itself is part of a package, the OpenACS Kernel, an OpenACS +3.2 (say, bboard and e-commerce):

    APM itself is part of a package, the OpenACS Kernel, an OpenACS service that is the only mandatory component of an OpenACS installation.

    Competitive Analysis

    The OpenACS is a platform for web-based application software, and any software platform has the potential to develop problems like those described above. Fortunately, there are many precedents for systematic solutions, Index: openacs-4/packages/acs-core-docs/www/backup-recovery.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/backup-recovery.html,v diff -u -N -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/backup-recovery.html 31 Oct 2003 15:57:34 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/backup-recovery.html 5 Nov 2003 11:48:09 -0000 1.11 @@ -1,4 +1,4 @@ -Backup and Recovery

    Backup and Recovery

    +Backup and Recovery

    Backup and Recovery

    by Don Baccus with additions by Joel Aufrecht
    @@ -143,7 +143,7 @@ single nightly backup file which is then collected into a bigger backup file that includes the other parts of the service (web pages, content, code). To make a new file every - night, edit the crontab file for service0:

    [service0@yourserver service0]$ export EDITOR=emacs;crontab -e

    Add this line to the file. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day.

    0 1 * * * /usr/local/pgsql/bin/pg_dump -f /var/lib/aolserver/service0/database-backup/service0_`date +\%Y-\%m-\%d`.dmp service0

    If you plan to back up the whole /var/lib/aolserver/service0 directory, then it would be redundant to keep a history of database backups. In that case, set up the cron job to overwrite the previous backup each time:

    0 1 * * * /usr/local/pgsql/bin/pg_dump -f /var/lib/aolserver/service0/database-backup/service0_nightly.dmp service0

    A full Backup/Recovery cycle

    On a test service, make sure that your backup-recovery process work. After backing up the database and file system, delete the service as detailed below and then recover it.

    Delete the Service

    [root@yourserver root]# svc -d /service/service0
    +        night, edit the crontab file for service0:

    [service0@yourserver service0]$ export EDITOR=emacs;crontab -e

    Add this line to the file. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day.

    0 1 * * * /usr/local/pgsql/bin/pg_dump -f /var/lib/aolserver/service0/database-backup/service0_`date +\%Y-\%m-\%d`.dmp service0

    If you plan to back up the whole /var/lib/aolserver/service0 directory, then it would be redundant to keep a history of database backups. In that case, set up the cron job to overwrite the previous backup each time:

    0 1 * * * /usr/local/pgsql/bin/pg_dump -f /var/lib/aolserver/service0/database-backup/service0_nightly.dmp service0

    A full Backup/Recovery cycle

    On a test service, make sure that your backup-recovery process work. After backing up the database and file system, delete the service as detailed below and then recover it.

    Delete the Service

    [root@yourserver root]# svc -d /service/service0
     [root@yourserver root]# mv /var/lib/aolserver/service0/ /var/lib/aolserver/service0.lost
     [root@yourserver root]# rm /service/service0
     rm: remove symbolic link `/service/service0'? y
    @@ -308,4 +308,4 @@
     joeuser:~$ restart-aolserver birdnotes

    That's it! The script will email you with each successful backup (or if it fails, it will send you an email with the reason) -

    ($Id$)
    View comments on this page at openacs.org
    +

    ($Id$)
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/credits.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/credits.html,v diff -u -N -r1.18 -r1.19 --- openacs-4/packages/acs-core-docs/www/credits.html 31 Oct 2003 15:57:34 -0000 1.18 +++ openacs-4/packages/acs-core-docs/www/credits.html 5 Nov 2003 11:48:09 -0000 1.19 @@ -1,4 +1,4 @@ -Appendix�C.�Credits

    Appendix�C.�Credits

    +Appendix�C.�Credits

    Appendix�C.�Credits

    by Vinod Kurup
    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. @@ -33,4 +33,4 @@

    All questions and comments regarding this guide should be posted on the OpenACS bboards. -

    ($Id$)
    View comments on this page at openacs.org
    +

    ($Id$)
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/cvs-service-import.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/cvs-service-import.html,v diff -u -N -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/cvs-service-import.html 31 Oct 2003 15:57:34 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/cvs-service-import.html 5 Nov 2003 11:48:09 -0000 1.10 @@ -1,4 +1,4 @@ -Add the Service to CVS - OPTIONAL

    Add the Service to CVS - OPTIONAL

    These steps take an existing OpenACS directory and add +Add the Service to CVS - OPTIONAL

    Add the Service to CVS - OPTIONAL

    These steps take an existing OpenACS directory and add it to a CVS repository..

    1. Create and set permissions on a subdirectory in the local cvs repository.

      [root@yourserver root]# mkdir /cvsroot/service0
       [root@yourserver root]# chown service0.web /cvsroot/service0
      Index: openacs-4/packages/acs-core-docs/www/docbook-primer.html
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/docbook-primer.html,v
      diff -u -N -r1.19 -r1.20
      --- openacs-4/packages/acs-core-docs/www/docbook-primer.html	31 Oct 2003 15:57:34 -0000	1.19
      +++ openacs-4/packages/acs-core-docs/www/docbook-primer.html	5 Nov 2003 11:48:09 -0000	1.20
      @@ -31,7 +31,7 @@
             In order to separate content and presentation, all OpenACS documentation will be marked up to conform to the 
             DocBook XML DTD 
             
      -      
      +      
             This enables us to publish in a variety
             of formats and relieves each contributor of the burden of  presentation, freeing him to focus
             on content and sharing knowledge.
      @@ -52,7 +52,7 @@
       	list of elements and use more exotic features in your
             documents. The list is made up of SGML-elements but basically
             the same elements are valid in the XML DTD as long as you remember to:
      -      
      +      
           

      • Always close your tags with corresponding end-tags and to not use other tag minimization @@ -98,7 +98,7 @@ The documentation for each package will make up a little "book" that is structured like this - examples are emphasized: - +

             book                        : Docs for one package - templating
        @@ -122,20 +122,20 @@
               sources of these DocBook documents
               to get an idea of how they are tied together.
             

      Headlines, Sections

      - + Given that your job starts at the sect1-level, all your documents should open with a <sect1>-tag and end with the corresponding </sect1>.

      - + You need to feed every <sect1> two attributes. The first attribute, id, is standard and can be used with all elements. It comes in very handy when interlinking between documents (more about this when talking about links in Section�, “Links”). The value of id has to be unique throughout the book you're making since the id's in your sect1's will turn into filenames when the book is parsed into HTML.

      - + The other attribute is xreflabel. The value of this is the text that will appear as the link when referring to this sect1.

      @@ -150,7 +150,7 @@ </sect1>

      - + Inside this container your document will be split up into <sect2>'s, each with the same requirements - id and xreflabel @@ -159,7 +159,7 @@ When it comes to naming your sect2's and below, prefix them with some abbreviation of the id in the sect1 such as requirements-overview.

    Code

    - + For displaying a snippet of code, a filename or anything else you just want to appear as a part of a sentence, we will use the tag <computeroutput>. @@ -169,12 +169,12 @@ <programlisting> is used. Just wrap your code block in it; mono-spacing, indents and all that stuff is taken care of automatically.

    Links

    - + Linking falls into two different categories: inside the book you're making and outside:

    1. Inside linking, cross-referencing other parts of your book

    By having unique id's you can cross-reference any part of your book with a simple tag, regardless of where that part is. -

    Check out how I link to a subsection of the Developer's Guide:

    +	  

    Check out how I link to a subsection of the Developer's Guide:

     
     	    Put this in your XML:
     
    @@ -212,7 +212,7 @@
     	    packages-looks, the
     	    parser will try its best to explain where the link takes you.
     	  

    2. Linking outside the documentation

    - + If you're hyper-linking out of the documentation, it works almost the same way as HTML - the tag is just a little different @@ -233,7 +233,7 @@ do it, so if you want to start converting your documents right away, start out with the ones without graphics ;)

    - + To insert a graphic we use the elements <mediaobject>, <imageobject>, @@ -259,7 +259,7 @@ Put your graphics in a separate directory ("images") and link to them only with relative paths.

    Lists

    - + Here's how you make the DocBook equivalent of the three usual HTML-lists:

    1. How to make an <ul>

    Making an unordered list is pretty much like doing the same thing in HTML - if you close your <li>, that is. The only differences are that each list item has to be wrapped in something more, such as @@ -304,7 +304,7 @@ </variablelist>

    Tables

    - + DocBook supports several types of tables, but in most cases, the <informaltable> is enough: @@ -341,7 +341,7 @@ <table> for an example.

    Emphasis

    - + Our documentation uses two flavors of emphasis - italics and bold type. DocBook uses one - <emphasis>.

    Index: openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html,v diff -u -N -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 31 Oct 2003 15:57:34 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 5 Nov 2003 11:48:09 -0000 1.8 @@ -1,4 +1,4 @@ -External Authentication Requirements

    External Authentication Requirements

    Vision

    People have plenty of usernames and passwords already, we +External Authentication Requirements

    External Authentication Requirements

    Vision

    People have plenty of usernames and passwords already, we don't want them to have yet another. We want people to be able to log in to OpenACS with the same password they use to log in to any other system.

    Besides, administrators have better things to do than create @@ -44,7 +44,7 @@ only one implementation of the authentication API, namly the one included in OpenACS Core.

  • Authentication Driver API: The service contract which authentication drivers implement.

  • Conceptual Pictures

    Authentication:

    -

    Account Management (NO PICTURE YET)

    Batch Synchronization (NO PICTURE YET)

    Requirements

    New API

    FeatureStatusDescription
    EXT-AUTH-01AExtend Authentication/Acct Status API
    EXT-AUTH-03AAccount Creation API
    EXT-AUTH-05APassword Management API
    EXT-AUTH-30AAuthority Management API

    Login

    FeatureStatusDescription
    EXT-AUTH-04ARewrite login, register, and admin pages to use APIs
    EXT-AUTH-38Aad_form complain feature
    EXT-AUTH-19ARewrite password recovery to use API
    EXT-AUTH-21ARewrite email verification with API
    EXT-AUTH-28AUsername is email switch

    Users will log in using a username, a authority, and a +

    Account Management (NO PICTURE YET)

    Batch Synchronization (NO PICTURE YET)

    Requirements

    New API

    FeatureStatusDescription
    EXT-AUTH-01AExtend Authentication/Acct Status API
    EXT-AUTH-03AAccount Creation API
    EXT-AUTH-05APassword Management API
    EXT-AUTH-30AAuthority Management API

    Login

    FeatureStatusDescription
    EXT-AUTH-04ARewrite login, register, and admin pages to use APIs
    EXT-AUTH-38Aad_form complain feature
    EXT-AUTH-19ARewrite password recovery to use API
    EXT-AUTH-21ARewrite email verification with API
    EXT-AUTH-28AUsername is email switch

    Users will log in using a username, a authority, and a password. The authority is the source for user/password verification. OpenACS can be an authority itself.

    Each user in OpenACS will belong to exactly one authority, which can either be the "local" OpenACS users table, in which case the Index: openacs-4/packages/acs-core-docs/www/i18n.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n.html,v diff -u -N -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/i18n.html 31 Oct 2003 15:57:34 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/i18n.html 5 Nov 2003 11:48:09 -0000 1.10 @@ -38,7 +38,7 @@ which are static and mostly text, it may be easier to create a new ADP page for each language. In this case, the pages are distinguished by a file naming convention. -

    Separate Templates for each Locale

    If the request processor finds a file named filename.locale.adp, where locale matches the user's locale, it will process that file instead of filename.adp. For example, for a user with locale tl_PH, the file index.tl_PH.adp, if found, will be used instead of index.adp. The locale-specific file should thus contain text in the language appropriate for that locale. The code in the page, however, should still be in English. Message keys are still processed.

    Message Keys in Template Files (ADP Files)

    +

    Separate Templates for each Locale

    If the request processor finds a file named filename.locale.adp, where locale matches the user's locale, it will process that file instead of filename.adp. For example, for a user with locale tl_PH, the file index.tl_PH.adp, if found, will be used instead of index.adp. The locale-specific file should thus contain text in the language appropriate for that locale. The code in the page, however, should still be in English. Message keys are still processed.

    Message Keys in Template Files (ADP Files)

    Internationalizing templates is about replacing human readable text in a certain language with internal message keys, which can then be dynamically replaced with real human language in @@ -101,9 +101,9 @@

    Here are a couple of examples. Say we have the following two parameters, taken directly from the dotlrn package. -

    Table�10.1.�

    Parameter NameParameter Value
    class_instance_pages_csv#dotlrn.class_page_home_title#,Simple 2-Column;#dotlrn.class_page_calendar_title#,Simple 1-Column;#dotlrn.class_page_file_storage_title#,Simple 1-Column
    departments_pretty_name#departments_pretty_name#

    +

    Table�10.1.�

    Parameter NameParameter Value
    class_instance_pages_csv#dotlrn.class_page_home_title#,Simple 2-Column;#dotlrn.class_page_calendar_title#,Simple 1-Column;#dotlrn.class_page_file_storage_title#,Simple 1-Column
    departments_pretty_name#departments_pretty_name#

    Then, depending on how we retrieve the value, here's what we get: -

    Table�10.2.�

    Command used to retrieve ValueRetrieved Value
    parameter::get -localize -parameter class_instances_pages_csvKurs Startseite,Simple 2-Column;Kalender,Simple 1-Column;Dateien,Simple 1-Column
    parameter::get -localize -parameter departments_pretty_nameAbteilung
    parameter::get -parameter departments_pretty_name#departments_pretty_name#

    +

    Table�10.2.�

    Command used to retrieve ValueRetrieved Value
    parameter::get -localize -parameter class_instances_pages_csvKurs Startseite,Simple 2-Column;Kalender,Simple 1-Column;Dateien,Simple 1-Column
    parameter::get -localize -parameter departments_pretty_nameAbteilung
    parameter::get -parameter departments_pretty_name#departments_pretty_name#

    The value in the rightmost column in the table above is the value returned by an invocation of parameter::get. Note that for localization to happen you must use the -localize flag. @@ -151,7 +151,7 @@ Use the *_pretty version in your ADP page.

    To internationalize numbers, use lc_numeric $value, which formats the number using the appropriate decimal point and thousand separator for the locale. -

    Internationalizing Forms

    When coding forms, remember to use message keys for each piece of text that is user-visible, including form option labels and button labels.

    Internationalizing Existing Packages

    Internationalize Message text in ADP and TCL

    Acs-lang includes tools to automate some +

    Internationalizing Forms

    When coding forms, remember to use message keys for each piece of text that is user-visible, including form option labels and button labels.

    Internationalizing Existing Packages

    Internationalize Message text in ADP and TCL

    Acs-lang includes tools to automate some internationalization. From /acs-admin/apm/, select a package and then click on @@ -240,9 +240,9 @@ with the appropriate notation for the type of file, and store the text in the message catalog. You need to run the process twice, once for ADP files, and once for Tcl files. -

    Internationalize Package Parameters with visible messages

    +

    Internationalize Package Parameters with visible messages

    See Multilingual APM Parameters -

    Internationalize Date and Time queries

    1. Find datetime in .xql files. Use command line tools to find suspect SQL code:

      grep -r "to_char.*H" *
      +    

    Internationalize Date and Time queries

    1. Find datetime in .xql files. Use command line tools to find suspect SQL code:

      grep -r "to_char.*H" *
       grep -r "to_date.*H" *
       
    2. In SQL statements, replace the format string with the ANSI standard format, YYYY-MM-DD HH24:MI:SS and change the field name to *_ansi so that it cannot be confused with previous, improperly formatting fields. For example,

      to_char(timestamp,'MM/DD/YYYY HH:MI:SS') as foo_date_pretty

      becomes

      to_char(timestamp,'YYYY-MM-DD HH24:MI:SS') as foo_date_ansi
    3. In TCL files where the date fields are used, convert the datetime from local server timezone, which is how it's stored in the database, to the user's timezone for display. Do this with the localizing function lc_time_system_to_conn:

       set foo_date_ansi [lc_time_system_to_conn $foo_date_ansi]

      When a datetime will be written to the database, first convert it from the user's local time to the server's timezone with lc_time_conn_to_system. Index: openacs-4/packages/acs-core-docs/www/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/index.html,v diff -u -N -r1.18 -r1.19 --- openacs-4/packages/acs-core-docs/www/index.html 31 Oct 2003 15:57:34 -0000 1.18 +++ openacs-4/packages/acs-core-docs/www/index.html 5 Nov 2003 11:48:09 -0000 1.19 @@ -1 +1 @@ -OpenACS Core Documentation

      OpenACS Core Documentation


      Table of Contents

      I. OpenACS For Everyone
      1. High level information: What is OpenACS?
      Overview
      OpenACS Release Notes
      II. Administrator's Guide
      2. Installation Overview
      Prerequisite Software
      3. Complete Installation
      Install Unix-like system and supporting software
      Install Oracle 8.1.7
      Install PostGreSQL
      Install AOLserver 3.3oacs1
      Install OpenACS 5.0.0a4
      OpenACS Installation Guide for Windows2000
      OpenACS Installation Guide for Mac OS X
      4. Configuring a New Service
      5. Upgrading
      Support for upgrades.
      6. Maintenance
      Hosting Web Sites
      Database Management
      Backup and Recovery
      A. Install Red Hat 8.0
      B. Install additional supporting software
      Unpack the OpenACS tarball
      Initialize CVS (OPTIONAL)
      Add PSGML commands to emacs init file (OPTIONAL)
      Install Daemontools (OPTIONAL)
      Install qmail (OPTIONAL)
      Install Analog web file analyzer
      Install nspam
      Install Full Text Search
      Install nsopenssl
      C. Credits
      Where did this document come from?
      Linux Install Guides
      Security Information
      Resources
      III. For OpenACS Package Developers
      7. Development Tutorial
      Creating a Package
      Setting Up Database Objects
      Creating Web Pages
      Debugging and Automated Testing
      Advanced Topics
      8. Development Reference
      OpenACS 5.0.0a4 Packages
      OpenACS Data Models and the Object System
      The Request Processor
      The OpenACS Database Access API
      Using Templates in OpenACS 5.0.0a4
      Groups, Context, Permissions
      Writing OpenACS 5.0.0a4 Application Pages
      Parties in OpenACS 5.0.0a4
      OpenACS 4.x Permissions Tediously Explained
      Object Identity
      Programming with AOLserver
      9. Engineering Standards
      OpenACS Documentation Guide
      Using PSGML mode in Emacs
      Detailed Design Documentation Template
      System/Application Requirements Template
      Release Version Numbering
      Constraint naming standard
      ACS File Naming and Formatting Standards
      PL/SQL Standards
      D. Using CVS with an OpenACS Site
      Add the Service to CVS - OPTIONAL
      E. How to package and release OpenACS
      IV. For OpenACS Platform Developers
      Platform Development
      10. Kernel Documentation
      Overview
      OpenACS 4 Object Model Requirements
      OpenACS 4 Object Model Design
      OpenACS 4 Permissions Requirements
      OpenACS 4 Permissions Design
      OpenACS 4 Groups Requirements
      OpenACS 4 Groups Design
      OpenACS 4 Subsites Requirements
      OpenACS 4 Subsites Design Document
      OpenACS 5.0.0a4 Package Manager Requirements
      OpenACS 5.0.0a4 Package Manager Design
      Database Access API
      OpenACS Internationalization Requirements
      Internationalization
      OpenACS 4 Security Requirements
      OpenACS 4 Security Design
      OpenACS 4 Security Notes
      OpenACS 4 Request Processor Requirements
      OpenACS 4 Request Processor Design
      Documenting Tcl Files: Page Contracts and Libraries
      Bootstrapping OpenACS
      External Authentication Requirements

      List of Tables

      8.1.
      8.2.
      8.3.
      8.4.
      8.5.
      8.6.
      8.7.
      8.8.
      8.9.
      8.10.
      8.11.
      8.12.
      10.1.
      10.2.
      View comments on this page at openacs.org
      +OpenACS Core Documentation

      OpenACS Core Documentation


      Table of Contents

      I. OpenACS For Everyone
      1. High level information: What is OpenACS?
      Overview
      OpenACS Release Notes
      II. Administrator's Guide
      2. Installation Overview
      Basic Steps
      Prerequisite Software
      3. Complete Installation
      Install Unix-like system and supporting software
      Install Oracle 8.1.7
      Install PostGreSQL
      Install AOLserver 3.3oacs1
      Install OpenACS 5.0.0a4
      OpenACS Installation Guide for Windows2000
      OpenACS Installation Guide for Mac OS X
      4. Configuring a New Service
      5. Upgrading
      Support for upgrades.
      6. Maintenance
      Hosting Web Sites
      Database Management
      Backup and Recovery
      A. Install Red Hat 8/9
      B. Install additional supporting software
      Unpack the OpenACS tarball
      Initialize CVS (OPTIONAL)
      Add PSGML commands to emacs init file (OPTIONAL)
      Install Daemontools (OPTIONAL)
      Install qmail (OPTIONAL)
      Install Analog web file analyzer
      Install nspam
      Install Full Text Search
      Install nsopenssl
      Install tclwebtest.
      C. Credits
      Where did this document come from?
      Linux Install Guides
      Security Information
      Resources
      III. For OpenACS Package Developers
      7. Development Tutorial
      Creating a Package
      Setting Up Database Objects
      Creating Web Pages
      Debugging and Automated Testing
      Advanced Topics
      8. Development Reference
      OpenACS 5.0.0a4 Packages
      OpenACS Data Models and the Object System
      The Request Processor
      The OpenACS Database Access API
      Using Templates in OpenACS 5.0.0a4
      Groups, Context, Permissions
      Writing OpenACS 5.0.0a4 Application Pages
      Parties in OpenACS 5.0.0a4
      OpenACS 4.x Permissions Tediously Explained
      Object Identity
      Programming with AOLserver
      9. Engineering Standards
      OpenACS Documentation Guide
      Using PSGML mode in Emacs
      Detailed Design Documentation Template
      System/Application Requirements Template
      Release Version Numbering
      Constraint naming standard
      ACS File Naming and Formatting Standards
      PL/SQL Standards
      D. Using CVS with an OpenACS Site
      Add the Service to CVS - OPTIONAL
      E. How to package and release OpenACS
      IV. For OpenACS Platform Developers
      Platform Development
      10. Kernel Documentation
      Overview
      OpenACS 4 Object Model Requirements
      OpenACS 4 Object Model Design
      OpenACS 4 Permissions Requirements
      OpenACS 4 Permissions Design
      OpenACS 4 Groups Requirements
      OpenACS 4 Groups Design
      OpenACS 4 Subsites Requirements
      OpenACS 4 Subsites Design Document
      OpenACS 5.0.0a4 Package Manager Requirements
      OpenACS 5.0.0a4 Package Manager Design
      Database Access API
      OpenACS Internationalization Requirements
      Internationalization
      OpenACS 4 Security Requirements
      OpenACS 4 Security Design
      OpenACS 4 Security Notes
      OpenACS 4 Request Processor Requirements
      OpenACS 4 Request Processor Design
      Documenting Tcl Files: Page Contracts and Libraries
      Bootstrapping OpenACS
      External Authentication Requirements

      List of Tables

      8.1.
      8.2.
      8.3.
      8.4.
      8.5.
      8.6.
      8.7.
      8.8.
      8.9.
      8.10.
      8.11.
      8.12.
      10.1.
      10.2.
      View comments on this page at openacs.org
      Index: openacs-4/packages/acs-core-docs/www/individual-programs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/individual-programs.html,v diff -u -N -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/individual-programs.html 31 Oct 2003 10:54:19 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/individual-programs.html 5 Nov 2003 11:48:10 -0000 1.11 @@ -1,4 +1,4 @@ -Prerequisite Software

      Prerequisite Software

      +Prerequisite Software

      Prerequisite Software

      by Joel Aufrecht
      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. @@ -42,7 +42,8 @@ to install OpenFTS.

  • tDOM, REQUIRED.�OpenACS 5.0.0a4 stores queries in XML files, so we use an AOLserver module called tDOM to parse these files. (This replaces libxml2, which - was used prior to 4.6.4.) tDOM is available from http://tdom.org).

  • Web Server.�The web server handles incoming HTTP requests, provides + was used prior to 4.6.4.) tDOM is available from http://www.tdom.org).

  • tclwebtest, OPTIONAL.�tclwebtest 0.3 is a tool for testing web interfaces + via tcl scripts. http://sourceforge.net/project/showfiles.php?group_id=31075.

  • Web Server.�The web server handles incoming HTTP requests, provides a runtime environment for OpenACS's tcl code, connects to the database, sends out HTTP responses, and logs requests and errors. OpenACS uses AOLserver; some people have had success @@ -91,7 +92,7 @@ , OPTIONAL.�Provides LDAP capabilities for AOLserver. You need this if you want to use LDAP authentication in OpenACS.

  • OpenFTS TCL 0.3.2, OPTIONAL.�Adds full-text-search to PostGreSQL and includes a driver for AOLserver. You need this if you want users - to be able to search for any text on your site.

  • Analog 5.31, OPTIONAL.�This program examines web server request logs, looks up + to be able to search for any text on your site.

  • Analog 5.32, OPTIONAL.�This program examines web server request logs, looks up DNS values, and produces a report. You need this if you want to see how much traffic your site is getting.

  • Database.�The data on your site (for example, user names and passwords, calender entries, and notes) is stored in the database. @@ -110,9 +111,8 @@ incoming and outgoing mail. The Reference Platform uses Qmail; any MTA that provides a sendmail wrapper (that is, that can be invoked by calling the sendmail program with the - same variables that sendmail expects) can be used.

    • Qmail 1.03, OPTIONAL.�You need this (or a different Mail Transport - Agent) if you want your webserver to send and - receive email.

    • ucspi-tcp 0.88, OPTIONAL.�This program listens for incoming TCP connections and + same variables that sendmail expects) can be used.

      • Netqmail 1.04, OPTIONAL.�You need this (or a different Mail Transport + Agent) if you want your webserver to send and receive email.

      • ucspi-tcp 0.88, OPTIONAL.�This program listens for incoming TCP connections and hands them to a program. We use it instead of inetd, which is insecure. You need this if you are running qmail.

  • DocBook, OPTIONAL.�(docbook-xml v4.2, docbook-xsl v1.56, libxslt 1.0.21, xsltproc 1.0.21). You need this to write or edit documentation. @@ -125,4 +125,4 @@ need this if you want to track old versions of your files, do controlled deployment of code from development to production, or get or contribute development code from openacs.org.

  • ($Id: software.xml,v 1.8 2003/10/29 - 09:01:09 joela Exp $)
    View comments on this page at openacs.org
    + 09:01:09 joela Exp $)
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/install-cvs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-cvs.html,v diff -u -N -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/install-cvs.html 31 Oct 2003 15:57:34 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/install-cvs.html 5 Nov 2003 11:48:10 -0000 1.10 @@ -1,4 +1,4 @@ -Initialize CVS (OPTIONAL)

    Initialize CVS (OPTIONAL)

    CVS is a source control system. Create and initialize a +Initialize CVS (OPTIONAL)

    Initialize CVS (OPTIONAL)

    CVS is a source control system. Create and initialize a directory for a local cvs repository.

    [root@yourserver tmp]# mkdir /cvsroot
     [root@yourserver tmp]# cvs -d /cvsroot init
     [root@yourserver tmp]#
    Index: openacs-4/packages/acs-core-docs/www/install-daemontools.html
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-daemontools.html,v
    diff -u -N -r1.9 -r1.10
    --- openacs-4/packages/acs-core-docs/www/install-daemontools.html	31 Oct 2003 15:57:34 -0000	1.9
    +++ openacs-4/packages/acs-core-docs/www/install-daemontools.html	5 Nov 2003 11:48:10 -0000	1.10
    @@ -3,11 +3,7 @@
           installed in /package.  These commands install daemontools and
           svgroup.  svgroup is a script for granting permissions, to allow
           users other than root to use daemontools for specific
    -      services.

    1. Install Daemontools

      • Red Hat

        Make sure you have the source tarball in - /tmp, or download it. (The -p - flag in mkdir causes all implied directories in the path - to be made as well.)

        (Red Hat 9.0: put -

        #include <errno.h>

        as the first line of /package/admin/daemontools-0.76/src/error.h. More information)

        [root@yourserver root]# mkdir -p /package
        +      services.

        1. Install Daemontools

          download daemontools and install it.

          • Red Hat 8

            [root@yourserver root]# mkdir -p /package
             [root@yourserver root]# chmod 1755 /package/
             [root@yourserver root]# cd /package/
             [root@yourserver package]# tar xzf /tmp/daemontools-0.76.tar.gz
            @@ -24,6 +20,42 @@
             cd /package 
             tar xzf /tmp/daemontools-0.76.tar.gz 
             cd admin/daemontools-0.76 
            +package/install
      • Red Hat 9

        Make sure you have the source tarball in + /tmp, or download it. +

        [root@yourserver root]# mkdir -p /package
        +[root@yourserver root]# chmod 1755 /package/
        +[root@yourserver root]# cd /package/
        +[root@yourserver package]# tar xzf /tmp/daemontools-0.76.tar.gz
        +[root@yourserver package]# cd admin
        +[root@yourserver admin]# wget http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
        +--14:19:24--  http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
        +           => `daemontools-0.76.errno.patch'
        +Resolving moni.csi.hu... done.
        +Connecting to moni.csi.hu[141.225.11.87]:80... connected.
        +HTTP request sent, awaiting response... 200 OK
        +Length: 355 [text/plain]
        +
        +100%[====================================>] 355          346.68K/s    ETA 00:00
        +
        +14:19:24 (346.68 KB/s) - `daemontools-0.76.errno.patch' saved [355/355]
        +
        +[root@yourserver admin]# cd daemontools-0.76
        +[root@yourserver daemontools-0.76]# patch -p1 < ../daemontools-0.76.errno.patch
        +[root@yourserver daemontools-0.76]# package/install
        +Linking ./src/* into ./compile...
        +(many lines omitted)
        +Creating /service...
        +Adding svscanboot to inittab...
        +init should start svscan now.
        +[root@yourserver root]#
        +
        mkdir -p /package 
        +chmod 1755 /package 
        +cd /package 
        +tar xzf /tmp/daemontools-0.76.tar.gz 
        +cd admin
        +wget http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
        +cd daemontools-0.76
        +patch -p1 < ../daemontools-0.76.errno.patch
         package/install
      • Debian

        root:~# apt-get install daemontools-installer
         root:~# build-daemontools
    2. Verify that svscan is running. If it is, you should see these two processes running:

      [root@yourserver root]# ps -auxw | grep service
      Index: openacs-4/packages/acs-core-docs/www/install-full-text-search.html
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/install-full-text-search.html,v
      diff -u -N -r1.9 -r1.10
      --- openacs-4/packages/acs-core-docs/www/install-full-text-search.html	31 Oct 2003 15:57:34 -0000	1.9
      +++ openacs-4/packages/acs-core-docs/www/install-full-text-search.html	5 Nov 2003 11:48:10 -0000	1.10
      @@ -1,4 +1,4 @@
      -Install Full Text Search

      Install Full Text Search

      Install OpenFTS module

      If you want full text search, and you are running PostGreSQL, install this module to support FTS. Do this step after you have installed both PostGreSQL and +Install Full Text Search

      Install Full Text Search

      Install OpenFTS module

      If you want full text search, and you are running PostGreSQL, install this module to support FTS. Do this step after you have installed both PostGreSQL and Aolserver. You will need the openfts tarball in /tmp.

      1. Install Tsearch. This is a PostGreSQL module that OpenFTS requires.

        [root@yourserver root]# su - postgres
        @@ -74,7 +74,7 @@
         make
         su postgres
         make install
        -exit

    Install OpenFTS prerequisites in PostGreSQL instance

    If you are installing Full Text Search, add required +exit

    Install OpenFTS prerequisites in PostGreSQL instance

    If you are installing Full Text Search, add required packages to the new database. (In order for full text search to work, you must also install the PostGreSQL OpenFTS module and prerequisites.)

    [service0@yourserver service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.4/contrib/tsearch/tsearch.sql
    Index: openacs-4/packages/acs-core-docs/www/install-more-software.html
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-more-software.html,v
    diff -u -N -r1.4 -r1.5
    --- openacs-4/packages/acs-core-docs/www/install-more-software.html	28 Oct 2003 22:07:34 -0000	1.4
    +++ openacs-4/packages/acs-core-docs/www/install-more-software.html	5 Nov 2003 11:48:10 -0000	1.5
    @@ -1,4 +1,4 @@
    -Appendix�B.�Install additional supporting software

    Appendix�B.�Install additional supporting software

    +Appendix�B.�Install additional supporting software

    Appendix�B.�Install additional supporting software

    by Joel Aufrecht
    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. @@ -7,4 +7,4 @@ that you begin each continuous block of commands as root, and you should end each block as root. It doesn't care which directory you start in. Text instructions always precede the commands they - refer to.

    View comments on this page at openacs.org
    + refer to.

    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/install-nsopenssl.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-nsopenssl.html,v diff -u -N -r1.5 -r1.6 --- openacs-4/packages/acs-core-docs/www/install-nsopenssl.html 28 Oct 2003 22:07:34 -0000 1.5 +++ openacs-4/packages/acs-core-docs/www/install-nsopenssl.html 5 Nov 2003 11:48:10 -0000 1.6 @@ -1,4 +1,4 @@ -Install nsopenssl

    Install nsopenssl

    This AOLserver module is required if you want people to connect to your site via +Install nsopenssl

    Install nsopenssl

    This AOLserver module is required if you want people to connect to your site via https. These commands compile nsopenssl and install it, along with a tcl helper script to handle https connections. You will also need ssl certificates. Because those should @@ -8,7 +8,8 @@ the nsopenssl tarball in /tmp.

    Red Hat 9 note: see this thread for details on compiling nsopenssl.)

    [root@yourserver bin]# cd /usr/local/src/aolserver
    -[root@yourserver aolserver]# tar xzf /tmp/nsopenssl-2.1.tar.gz
    +[root@yourserver aolserver]# wget --passive http://www.scottg.net/download/nsopenssl-2.1.tar.gz
    +[root@yourserver aolserver]# tar xzf nsopenssl-2.1.tar.gz 
     [root@yourserver aolserver]# cd nsopenssl-2.1
     [root@yourserver nsopenssl-2.1]# make OPENSSL=/usr/local/ssl
     gcc -I/usr/local/ssl/include -I../aolserver/include -D_REENTRANT=1 -DNDEBUG=1 -g -fPIC -Wall -Wno-unused -mcpu=i686 -DHAVE_CMMSG=1 -DUSE_FIONREAD=1 -DHAVE_COND_EINTR=1   -c -o nsopenssl.o nsopenssl.c
    @@ -18,7 +19,9 @@
     [root@yourserver nsopenssl-2.1]# cp https.tcl /usr/local/aolserver/modules/tcl/
     [root@yourserver nsopenssl-2.1]#
     
    cd /usr/local/src/aolserver
    -tar xzf /tmp/nsopenssl-2.1.tar.gz 
    +wget --passive
    +http://www.scottg.net/download/nsopenssl-2.1.tar.gz
    +tar xzf nsopenssl-2.1.tar.gz 
     cd nsopenssl-2.1 
     make OPENSSL=/usr/local/ssl 
     cp nsopenssl.so /usr/local/aolserver/bin 
    @@ -29,4 +32,4 @@
     cd nsopenssl-2.1
     make OPENSSL=/usr/lib/ssl
     cp nsopenssl.so /usr/local/aolserver/bin
    -cp https.tcl /usr/local/aolserver/modules/tcl/
    View comments on this page at openacs.org
    +cp https.tcl /usr/local/aolserver/modules/tcl/
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/install-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-overview.html,v diff -u -N -r1.16 -r1.17 --- openacs-4/packages/acs-core-docs/www/install-overview.html 31 Oct 2003 10:54:19 -0000 1.16 +++ openacs-4/packages/acs-core-docs/www/install-overview.html 5 Nov 2003 11:48:10 -0000 1.17 @@ -1,5 +1,5 @@ -Chapter�2.�Installation Overview

    Chapter�2.�Installation Overview

    Table of Contents

    Prerequisite Software

    +Chapter�2.�Installation Overview

    Chapter�2.�Installation Overview

    by Vinod Kurup
    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

    Overview Section Missing
    View comments on this page at openacs.org
    +

    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/install-qmail.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-qmail.html,v diff -u -N -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/install-qmail.html 31 Oct 2003 15:57:34 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/install-qmail.html 5 Nov 2003 11:48:10 -0000 1.10 @@ -1,7 +1,17 @@ -Install qmail (OPTIONAL)

    Install qmail (OPTIONAL)

    Qmail is a Mail Transfer Agent. It handles incoming and outgoing mail. Install qmail if you want your OpenACS server to send and receive mail, and you don't want to use an alternate MTA.

    1. Install ucspi.�This program handles incoming tcp connections. - Download ucspi and install it.

      Red Hat 9.0: put

      #include <errno.h>

      as the first line of error.h. More information)

      [root@yourserver root]# cd /usr/local/src
      -[root@yourserver src]# tar xzf /tmp/ucspi-tcp-0.88.tar.gz
      -[root@yourserver src]# cd ucspi-tcp-0.88
      +Install qmail (OPTIONAL)

      Install qmail (OPTIONAL)

      Qmail is a Mail Transfer Agent. It handles incoming and + outgoing mail. Install qmail if you want your OpenACS server to + send and receive mail, and you don't want to use an alternate + MTA.

      Red Hat 9: all djb tools (qmail, daemontools, ucspi) will + fail to compile in Red Hat 9 because of changes to glibc (patches)

      1. Install ucspi.�This program handles incoming tcp connections. + Download ucspi and install it.

        [root@yourserver root]# cd /usr/local/src
        +[root@yourserver src]# wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
        +[root@yourserver src]# tar xzf ucspi-tcp-0.88.tar.gz
        +
        cd /usr/local/src 
        +wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
        +tar xzf ucspi-tcp-0.88.tar.gz 

        Red Hat 9 only

        wget http://moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.errno.patch
        +cd ucspi-tcp-0.88
        +patch -p1 <../ucspi-tcp-0.88.errno.patch
        +cd ..

        All platforms continue:

        [root@yourserver src]# cd ucspi-tcp-0.88
         [root@yourserver ucspi-tcp-0.88]# make
         ( cat warn-auto.sh; \
         echo 'main="$1"; shift'; \
        @@ -12,16 +22,15 @@
         ./install
         ./instcheck
         [root@yourserver ucspi-tcp-0.88]#
        -
        cd /usr/local/src 
        -tar xzf /tmp/ucspi-tcp-0.88.tar.gz 
        +
        
         cd ucspi-tcp-0.88 
         make 
         make setup check

        Verify that ucspi-tcp was installed successfully by running the tcpserver program which is part of ucspi-tcp:

        [root@yourserver ucspi-tcp-0.88]# tcpserver
         tcpserver: usage: tcpserver [ -1UXpPhHrRoOdDqQv ] [ -c limit ] [ -x rules.cdb ] [ -B banner ] [ -g gid ] [ -u uid
         ] [ -b backlog ] [ -l localname ] [ -t timeout ] host port program
         [root@yourserver ucspi-tcp-0.88]#
        -

        +

        (I'm not sure if this next step is 100% necessary, but when I skip it I get problems. If you get the error 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1) then you need to do this.) AOLServer sends outgoing mail via the ns_sendmail command, which pipes a command to the sendmail executable. Or, in our @@ -35,14 +44,21 @@ send outgoing mail.

        [root@yourserver ucspi-tcp-0.88]# cp /tmp/openacs-5.0.0a4/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp
         [root@yourserver ucspi-tcp-0.88]# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
         
        cp /tmp/openacs-5.0.0a4/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp 
        -tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp 
      2. Install Qmail.�

        Download qmail, - set up the standard supporting users and build the binaries:

        Red Hat 9.0: Put -

        #include <errno.h>

        -as the first line of - /usr/local/src/qmail-1.03/error.h. - More - information

        [root@yourserver root]# cd /usr/local/src
        -[root@yourserver src]# tar xzf /tmp/qmail-1.03.tar.gz
        +tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp 
    2. Install Qmail.�

      Download qmail, + set up the standard supporting users and build the binaries:

      [root@yourserver root]# cd /usr/local/src
      +[root@yourserver src]# wget http://www.qmail.org/netqmail-1.04.tar.gz
      +[root@yourserver src]# tar xzf netqmail-1.04.tar.gz
      +--15:04:11--  http://www.qmail.org/netqmail-1.04.tar.gz
      +           => `netqmail-1.04.tar.gz'
      +Resolving www.qmail.org... done.
      +Connecting to www.qmail.org[192.203.178.37]:80... connected.
      +HTTP request sent, awaiting response... 200 OK
      +Length: 242,310 [application/x-gunzip]
      +
      +88% [===============================>     ] 214,620       22.93K/s ETA 00:01
      +
      +15:04:21 (24.04 KB/s) - `netqmail-1.04.tar.gz' saved [242310/242310]
      +
       [root@yourserver src]# mkdir /var/qmail
       [root@yourserver src]# groupadd nofiles
       [root@yourserver src]# useradd -g nofiles -d /var/qmail/alias alias
      @@ -53,16 +69,28 @@
       [root@yourserver src]# useradd -g qmail -d /var/qmail qmailq
       [root@yourserver src]# useradd -g qmail -d /var/qmail qmailr
       [root@yourserver src]# useradd -g qmail -d /var/qmail qmails
      -[root@yourserver src]# cd qmail-1.03
      -[root@yourserver qmail-1.03]# make setup check
      +[root@yourserver src]# cd netqmail-1.04
      +[root@yourserver netqmail-1.04]# ./collate.sh
      +
      +You should see 7 lines of text below.  If you see anything
      +else, then something might be wrong.
      +[1] Extracting qmail-1.03...
      +[2] Patching qmail-1.03 into netqmail-1.04.  Look for errors below:
      +     20
      +[4] The previous line should say 20 if you used GNU patch.
      +[5] Renaming qmail-1.03 to netqmail-1.04...
      +[6] Continue installing qmail using the instructions found at:
      +[7] http://www.lifewithqmail.org/lwq.html#installation
      +[root@yourserver netqmail-1.04]# cd netqmail-1.04
      +[root@yourserver netqmail-1.04]# make setup check
       ( cat warn-auto.sh; \
       echo CC=\'`head -1 conf-cc`\'; \
       (many lines omitted)
       ./install
       ./instcheck
      -[root@yourserver qmail-1.03]#
       
      cd /usr/local/src 
      -tar xzf /tmp/qmail-1.03.tar.gz 
      +wget http://www.qmail.org/netqmail-1.04.tar.gz
      +tar xzf netqmail-1.04.tar.gz
       mkdir /var/qmail 
       groupadd nofiles 
       useradd -g nofiles -d /var/qmail/alias alias 
      @@ -73,8 +101,10 @@
       useradd -g qmail -d /var/qmail qmailq 
       useradd -g qmail -d /var/qmail qmailr 
       useradd -g qmail -d /var/qmail qmails
      -cd qmail-1.03 
      -make setup check

      Replace sendmail with qmail's wrapper.

      [root@yourserver qmail-1.03]# rm -f /usr/bin/sendmail /usr/sbin/sendmail
      +cd netqmail-1.04
      +./collate.sh
      +cd netqmail-1.04
      +make setup check

      Replace sendmail with qmail's wrapper.

      [root@yourserver qmail-1.03]# rm -f /usr/bin/sendmail /usr/sbin/sendmail
       [root@yourserver qmail-1.03]# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
       [root@yourserver qmail-1.03]#
       
      rm -f /usr/bin/sendmail /usr/sbin/sendmail
      @@ -96,7 +126,7 @@
       
      cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root 
       chmod 644 ~alias/.qmail* 
       /var/qmail/bin/maildirmake ~alias/Maildir/ 
      -chown -R alias.nofiles /var/qmail/alias/Maildir

      Configure qmail to use the Maildir delivery format +chown -R alias.nofiles /var/qmail/alias/Maildir

      Configure qmail to use the Maildir delivery format (instead of mbox), and install a version of the qmail startup script modified to use Maildir.

      [root@yourserver alias]# echo "./Maildir" > /var/qmail/bin/.qmail
       [root@yourserver alias]# cp /tmp/openacs-5.0.0a4/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc
       [root@yourserver alias]# chmod 755 /var/qmail/rc
      @@ -143,7 +173,7 @@
       chmod 755 /var/qmail/supervise/qmail-smtpd/run
       chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
       ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
      -

      Wait ten seconds or so, and then verify that that the four qmail processes are running. If uptimes are 1 second, this may indicate broken scripts that are continuously restarting. In that case, start debugging by checking permissions.

      [root@yourserver root]# qmailctl stat
      +

      Wait ten seconds or so, and then verify that that the four qmail processes are running. If uptimes don't rise above 1 second, this may indicate broken scripts that are continuously restarting. In that case, start debugging by checking permissions.

      [root@yourserver root]# qmailctl stat
       /service/qmail-send: up (pid 32700) 430 seconds
       /service/qmail-send/log: up (pid 32701) 430 seconds
       /service/qmail-smtpd: up (pid 32704) 430 seconds
      Index: openacs-4/packages/acs-core-docs/www/install-redhat.html
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-redhat.html,v
      diff -u -N -r1.10 -r1.11
      --- openacs-4/packages/acs-core-docs/www/install-redhat.html	31 Oct 2003 15:57:34 -0000	1.10
      +++ openacs-4/packages/acs-core-docs/www/install-redhat.html	5 Nov 2003 11:48:10 -0000	1.11
      @@ -1,4 +1,4 @@
      -Appendix�A.�Install Red Hat 8.0

      Appendix�A.�Install Red Hat 8.0

      +Appendix�A.�Install Red Hat 8/9

      Appendix�A.�Install Red Hat 8/9

      by Joel Aufrecht
      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. @@ -8,7 +8,8 @@ works and is secure; it should take about an hour. (In my experience, it's almost always a net time savings of several hours to install a new machine from scratch compared to installing each - of these packages installed independently.)

      The installation guide assumes you can do the following on + of these packages installed independently.)

      The installation guide assumes you have:

      • A PC with hard drive you can reinstall

      • Red Hat 8.0 or 9.0 install discs

      • A CD with the current Security + Patches for your version of Red Hat.

      The installation guide assumes that you can do the following on your platform:

      • Adding users, groups, setting passwords @@ -26,12 +27,12 @@

        1. Unplug the network cable from your computer. We don't want to connect to the network until we're sure the computer is secure. - + (Wherever you see the word secure, you should always read it as, "secure enough for our purposes, given the amount of work we're willing to exert and the estimated risk and - consequences.")

        2. Insert Red Hat 8.0 Disk 1 into the + consequences.")

        3. Insert Red Hat 8.0 or 9.0 Disk 1 into the CD-ROM and reboot the computer

        4. At the boot: prompt, press Enter for a @@ -54,7 +55,7 @@ Review (and modify if needed) the partitions created and click Next

        5. On the pop-up window asking "Are you sure you want to do this?" click Yes - IF YOU ARE WIPING YOUR HARD DRIVE.

        6. Click Next on the boot loader screen

      • Configure Networking. + IF YOU ARE WIPING YOUR HARD DRIVE.

      • Click Next on the boot loader screen

  • Configure Networking. Again, if you know what you're doing, do this step yourself, being sure to note the firewall holes. Otherwise, follow the instructions in this step to set up a computer directly connected to the internet with a dedicated IP address.

    1. DHCP is a system by which a computer that @@ -75,19 +76,10 @@ Mail (SMTP). In the Other ports box, enter 443, 8000, 8443. Click Next. -Port 443 is for https (http over ssl), and 8000 and 8443 are http and https access to the development server we'll be setting up.

  • Select any additional languages you want the +Port 443 is for https (http over ssl), and 8000 and 8443 are http and https access to the development server we'll be setting up.

  • Select any additional languages you want the computer to support and then click Next

  • Choose your time zone and click Next.

  • Type in a root -password, twice. To - improve security, we're going to prevent anyone from - connecting to the computer directly as root. Instead, - we'll create a different user, called - remadmin, used solely to - connect to the computer for administration. Click -Add -and enter username remadmin and a password, -twice, then click OK. Then click -Next.

  • On the Package selection page, we're going to +password, twice.

  • On the Package selection page, we're going to uncheck a lot of packages that install software we don't need, and add packages that have stuff we do need. You should install everything we're installing here or the guide may not work for you; you can @@ -96,12 +88,14 @@ risk that's still screened by the firewall, or a resource hog. Just don't install a database or web server, because that would conflict with the database and web server we'll install later. -

    check�Editors�(this�installs�emacs),
    +

    check�Editors�(this�installs�emacs),
    click�Details�next�to�Text-based�Internet,�check�lynx,�and�click�OK;
    -check�Authoring�and�Publishing�(this�installs�docbook),
    +check�Authoring�and�Publishing�(this�installs�docbook),
    uncheck�Server�Configuration�Tools,
    uncheck�Web�Server,
    uncheck�Windows�File�Server,
    +check�SQL�Database
    +Server
    �(this�installs�PostGreSQL,
    check�Development�Tools�(this�installs�gmake�and�other�build�tools),
    uncheck�Administration�Tools,�and
    uncheck�Printing�Support.�

    At the bottom, check Select Individual Packages and click Next

  • We need to fine-tune the exact list of packages. @@ -111,13 +105,15 @@ Flat View and wait. In a minute, a list of packages will appear.

    uncheck�apmd�(monitors�power,�not�very�useful�for�servers),�
    -check�ImageMagick�(required�for�the�photo-album�packages,�
    +check�ImageMagick�(required�for�the�photo-album�packages,�
    uncheckisdn4k-utils�(unless�you�are�using�isdn,�this�installs�a�useless�daemon),�
    check�mutt�(a�mail�program�that�reads�Maildir),
    uncheck�nfs-utils�(nfs�is�a�major�security�risk),�
    uncheck�pam-devel�(I�don't�remember�why,�but�we�don't�want�this),�
    uncheck�portmap,�
    uncheck�postfix�(this�is�an�MTA,�but�we're�going�to�install�qmail�later),�
    +check
    +postgresql-devel,
    uncheck�rsh�(rsh�is�a�security�hole),�
    uncheck�sendmail�(sendmail�is�an�insecure�MTA;�we're�going�to�install�qmail�instead�later),
    check�tcl�(we�need�tcl),�and�
    @@ -139,7 +135,15 @@

  • After it finishes rebooting and shows the login prompt, log in:

    yourserver login: root
     Password:
    -[root@yourserver root]#
  • Lock down SSH

    1. +[root@yourserver root]#

    2. Install any security patches. For example, insert your CD with + patches, mount it with mount + /dev/cdrom, then cd + /mnt/cdrom, then rpm -UVH + *rpm. Both Red Hat 8.0 and 9.0 have had both + kernel and openssl/openssh root exploits, so you should be + upgrading all of that. Since you are upgrading the kernel, + reboot after this step. +

    3. Lock down SSH

      1. SSH is the protocol we use to connect securely to the computer (replacing telnet, which is insecure). sshd is the daemon that listens for incoming @@ -148,8 +152,15 @@ computer as root. Type this into the shell:

        emacs /etc/ssh/sshd_config
      2. Search�for�the�word�"root"�by�typing�C-s�(that's�emacs-speak�for�control-s)�and�then�root.���
        Make�the�following�changes:
        -

        #Protocol�2,1
        �to�
        Protocol�2
        �(this�prevents�any�connections�via�SSH�1,�which�is�insecure)
        -
        #PermitRootLogin�yes
        �to�
        PermitRootLogin�no
        �(this�prevents�the�root�use�from�logging�in�via�ssh)
        +
        #Protocol�2,1
        �to
        +������������
        Protocol�2

        +������������(this�prevents�any�connections�via�SSH�1,�which�is�insecure)
        +
        #PermitRootLogin�yes
        �to
        +������������
        PermitRootLogin�no

        +������������(this�prevents�the�root�user�from�logging�in�remotely�via
        +������������ssh.��If�you�do�this,�be�sure�to�create�a�remote�access
        +������������account,�such�as�"remadmin",�which�you�can�use�to�get�ssh
        +������������before�using�"su"�to�become�root.)
        #PermitEmptyPasswords�no
        �to�
        PermitEmptyPasswords�no
        �(this�blocks�passwordless�accounts)

        �and�save�and�exit�by�typing�C-x�C-s�C-x�C-c

      3. Restart sshd so that the change takes effect.
        service sshd restart
    4. Red Hat still installed a few services we @@ -161,7 +172,8 @@

      service pcmcia stop
       service netfs stop
       chkconfig --del pcmcia
      -chkconfig --del netfs
    5. Plug in the network cable.

    6. Verify that you have connectivity by going to another +chkconfig --del netfs

      If you installed PostGreSQL, do also +service postgresql start and chkconfig --add postgresql.

    7. Plug in the network cable.

    8. Verify that you have connectivity by going to another computer and ssh'ing to yourserver, logging in as remadmin, and promoting yourself to root:

      [joeuser@someotherserver]$  ssh remadmin@yourserver.test
      @@ -173,7 +185,10 @@
       Last login: Mon Mar  3 21:15:27 2003 from host-12-01.dsl-sea.seanet.com
       [remadmin@yourserver remadmin]$ su -
       Password: 
      -[root@yourserver root]#
    9. Upgrade the kernel to fix a security hole. The default +[root@yourserver root]#

    10. If you didn't burn a CD of patches and use it, can still + download and install the necessary patches. Here's how to + do it for the kernel; you should also check for other + critical packages.

      Upgrade the kernel to fix a security hole. The default Red Hat 8.0 system kernel (2.4.18-14, which you can check with uname -a) has several security problems. Download the new kernel, install it, and reboot.

      [root@yourserver root]# cd /tmp
       [root@yourserver tmp]# wget http://updates.redhat.com/7.1/en/os/i686/kernel-2.4.18-27.7.x.i686.rpm
      Index: openacs-4/packages/acs-core-docs/www/install-steps.html
      ===================================================================
      RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-steps.html,v
      diff -u -N -r1.2 -r1.3
      --- openacs-4/packages/acs-core-docs/www/install-steps.html	31 Oct 2003 10:54:19 -0000	1.2
      +++ openacs-4/packages/acs-core-docs/www/install-steps.html	5 Nov 2003 11:48:10 -0000	1.3
      @@ -1,6 +1,6 @@
      -Basic Steps

      Basic Steps

      +Basic Steps

      Basic Steps

      The basic steps to getting OpenACS up and running are: -

      1. Install an OS (Linux, FreeBSD, OpenBSD, Appendix�A, Install Red Hat 8.0, Section�, “OpenACS Installation Guide for Mac OS X”, Section�, “OpenACS Installation Guide for Windows2000”).

      2. Install a database (Oracle or +

        1. Install an OS (Linux, FreeBSD, OpenBSD, Appendix�A, Install Red Hat 8/9, Section�, “OpenACS Installation Guide for Mac OS X”, Section�, “OpenACS Installation Guide for Windows2000”).

        2. Install a database (Oracle or PostgreSQL).

        3. Install the AOLserver webserver.

        4. Create a unique database and system user. Install the OpenACS tarball, start and AOLserver instance, and use the OpenACS web pages to complete installation @@ -18,8 +18,79 @@ requirements:

          • Pentium processor

          • 128 MB RAM (much more if you want Oracle)

          • 4 GB hard drive

          • A Unix-like operating system with tcl, tdom, and - a mail transport agent. (Section�, “Individual Programs”)

          + a mail transport agent. (Section�, “Prerequisite Software”)

        All of the software that you will need is free and open-source, except for Oracle. You can obtain a free copy of Oracle for development purposes. This is described in the Acquire Oracle section. -

        Figure�2.1.�Compatibility Matrix

        OpenACS Version3.2.54.54.64.6.14.6.24.6.35.0.0
        AolServer3Verified
        3.3+ad13Verified
        3.3oacs1Verified
        3.4.2No
        3.4.2oacs1Verified
        3.5.5Verified
        4Verified but not for production
        PostGreSQL7.0Verified
        7.2.xVerified
        7.3.2 - 7.3.4NoVerified
        Oracle8.1.6Verified
        8.1.7Verified
        9iNoUntested
      View comments on this page at openacs.org
      +

      Figure�2.1.�Compatibility Matrix

      OpenACS Version3.2.54.54.64.6.14.6.24.6.35.0.0
      AolServer3Verified
      3.3+ad13Verified
      3.3oacs1Verified
      3.4.2No
      3.4.2oacs1Verified
      3.5.5Verified
      4Verified but not for production
      PostGreSQL7.0Verified
      7.2.xVerified
      7.3.2 - 7.3.4NoVerified
      Oracle8.1.6Verified
      8.1.7Verified
      9iNoUntested

      How to use this guide

      • This is text you will see on + screen, such as a Button or link + in a radio button list or menu.

      • This is text that you will type.

      • This is text from a program or file which you may need to +examine or edit:

        if {$database == "oracle"} {
        +    set db_password        "mysitepassword"
        +}
      • This is text that you will +see and type in a command shell, including text you may have to +change. It is followed by a list of just the commands, +which you can copy and paste.

        [root@localhost root]# su - nsadmin
        +[nsadmin@localhost aolserver]$ svc -d /service/server1
        +[nsadmin@localhost aolserver]$ dropdb server1
        +DROP DATABASE
        +[nsadmin@localhost aolserver]$ createdb server1
        +CREATE DATABASE
        +
        su - nsadmin
        +svc -d /service/server1
        +dropdb server1
        +createdb server1

      Paths and Users

      Figure�2.2.�Assumptions in this Chapter

      Fully qualified domain name of your serveryourserver.test
      name of administrative access accountremadmin
      OpenACS serviceservice0
      OpenACS service accountservice0
      OpenACS database nameservice0
      Root of OpenACS service file tree/var/lib/aolserver/service0
      Location of source code tarballs for new software/tmp
      The OpenACS tarball contains some files which + are useful while setting up other software. Those + files are located at:/tmp/openacs-5.0.0a4/packages/acs-core-docs/www/files
      Database backup directory/var/lib/aolserver/service0/database-backup
      Service config files/var/lib/aolserver/service0/etc
      Service log files/var/lib/aolserver/service0/log
      Compile directory/usr/local/src
      PostGreSQL directory/usr/local/pgsql
      AOLServer directory/usr/local/aolserver

      + None of these locations are set in stone - they're simply + the values that we've chosen. The values that you'll + probably want to change, such as service name, are + marked like this. The other + values we recommend you leave unchanged unless you have a + reason to change them.

      Note

      + Some of the paths and user accounts have been changed from + those recommended in previous versions of this document to + improve security and maintainability. See this + thread for discussion. +

      Getting Help during installation

      + We'll do our best to assure that following our instructions will get + you to the promised land. If something goes wrong, don't + panic. There are plenty of ways to get help. Here are some tips: +

      • + Keep track of the commands you are run and record their output. I + like to do my installations in a shell inside of emacs + (M-x shell) so that I can save + the output if needed. An alternative would be to use the + script command. +

      • + We'll point out where the error logs for the various pieces of + software are. Output from those logs will help us help you. Don't + worry if you feel overwhelmed by all the information in the error + logs. Over time, you'll find that they make more and more + sense. Soon, you'll actually look forward to errors so that you + can run to the log and diagnose the problem. +

      • + Search the bboards at + openacs.org - you'll often find many people who have + struggled through the same spot that you're in. +

      • + The bottom of each page has a link to OpenACS.org, where you can post + comments and read other users comments about the + contents of the page. +

      • + Ask questions at the irc channel on openprojects.net + (#openacs). They're knowledgeable and quite friendly + if you can keep them on topic. +

      • + Post a question on the bboards. Make sure + you've done a search first. When you do post, be sure to include + your setup information (OS, etc) as well as the exact commands + that are failing with the accompanying error. If + there's a SQL error in the TCL error or in the log, + post that too. +

      • + If you find errors in this document or if you have ideas about + making it better, please post them in our + BugTracker. +

      ($Id: overview.xml,v 1.12 2003/10/28 + 22:07:41 joela Exp $)
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/objects.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/objects.html,v diff -u -N -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/objects.html 31 Oct 2003 15:57:34 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/objects.html 5 Nov 2003 11:48:10 -0000 1.20 @@ -80,7 +80,7 @@ Fire up your text editor and open the ROOT/packages/notes/sql/oracle/notes-create.sql (ROOT/packages/notes/sql/postgresql/notes-create.sql for the PG version) file created when we created the package. Then, do the following: -

    Describe the new type to the type system

    +

    Describe the new type to the type system

    First, add an entry to the acs_object_types table with the following PL/SQL call:

     begin  
    @@ -140,7 +140,7 @@
     because the new type note is a subtype of
     acs_object, it will inherit these attributes, so there is
     no need for us to define them.
    -

    Define a table in which to store your objects

    +

    Define a table in which to store your objects

    The next thing we do is make a small modification to the data model to reflect the fact that each row in the notes table represents something that is not only an object of type @@ -165,7 +165,7 @@ use the acs_objects table to find objects will transparently find any objects that are instances of any subtype of acs_objects. -

    Define a package for type specific procedures

    +

    Define a package for type specific procedures

    The next step is to define a PL/SQL package for your new type, and write some basic procedures to create and delete objects. Here is a package definition for our new type: @@ -213,7 +213,7 @@ object OBJ was "read only", then any other object that used OBJ as its context would also be "read only" by default. We'll talk about this more later. -

    Define a package body for type specific procedures

    +

    Define a package body for type specific procedures

    The PL/SQL package body contains the implementations of the procedures defined above. The only subtle thing going on here is that we must use acs_object.new to insert a row into Index: openacs-4/packages/acs-core-docs/www/openacs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/openacs.html,v diff -u -N -r1.16 -r1.17 --- openacs-4/packages/acs-core-docs/www/openacs.html 31 Oct 2003 15:57:34 -0000 1.16 +++ openacs-4/packages/acs-core-docs/www/openacs.html 5 Nov 2003 11:48:10 -0000 1.17 @@ -1,20 +1,19 @@ Install OpenACS 5.0.0a4

    Install OpenACS 5.0.0a4

    - by Vinod Kurup
    + by Vinod Kurup
    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

    Set up the file system for an OpenACS Service

    1. The reference install stores all OpenACS services in - /var/lib/aolserver, with one subdirectory per service. The first time you install a service, you must create - that directory and set its permissions:

      [root@yourserver root]# mkdir /var/lib/aolserver
      +        

    Set up the file system for one or more OpenACS Sites

    For Linux Standard Base compliance and ease of backup, + all of the files in each OpenACS site are stored in a + subdirectory of + /var/lib/aolserver, one + subdirectory per site. The first time you install an OpenACS + site on a server, you must create the parent directory and set its permissions:

    [root@yourserver root]# mkdir /var/lib/aolserver
     [root@yourserver root]# chgrp web /var/lib/aolserver
     [root@yourserver root]# chmod 770 /var/lib/aolserver
     [root@yourserver root]#
     
    mkdir /var/lib/aolserver
     chgrp web /var/lib/aolserver
    -chmod 770 /var/lib/aolserver
  • You should already have downloaded the OpenACS tarball - to the /tmp directory. If - not, download the OpenACS - tarball and save it in - /tmp and proceed:

  • Set up your user account.

    +chmod 770 /var/lib/aolserver

    Set up a user account for each site.

    AOLserver needs to be started as the root user if you want to use port 80. Once it starts, though, it will drop the root privileges and run as another user, which you must specify on the command line. It's @@ -29,46 +28,43 @@ of your site is one word, that would be a good choice. For example "service0" might be the service name for the service0.net - community.

    For the 5.0.0a4-P and 5.0.0a4-O Reference Platform, - we'll use a server named service0 and - a user named service0. We'll leave the password - blank for increased security. The only way to log in will be - with ssh certificates. The only people who should log in are + community.

    We'll leave the password blank, which prevents login by + password, for increased security. The only way to log in will + be with ssh certificates. The only people who should log in are developers for that specific instance. Add this user, and put - it in the web group so that it - can use database commands associated with that group. -

    [root@yourserver root]# useradd -g web service0 -d /home/service0
    -[root@yourserver root]#

    Set up database environment variables. They are - necessary for working with the database. -

    [root@yourserver root]# su - service0
    -[service0@yourserver service0]$ emacs .bashrc

    Put in the appropriate lines for the database you are running. If you will use both databases, put in both sets of lines.

    • PostGreSQL:

      export LD_LIBRARY_PATH=LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
      -export PATH=$PATH:/usr/local/pgsql/bin
    • Oracle. These environment variables are specific for a local Oracle - installation communicating via IPC. If you are connecting to a remote - Oracle installation, you'll need to adjust these appropriately. Also, - make sure that the '8.1.7' matches your Oracle version. -

      export ORACLE_BASE=/ora8/m01/app/oracle
      -export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
      -export PATH=$PATH:$ORACLE_HOME/bin
      -export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
      -export ORACLE_SID=ora8
      -export ORACLE_TERM=vt100
      -export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

    Test this by logging out and back in as - service0 and checking the paths.

    [service0@yourserver service0]$ exit
    -logout
    -[root@yourserver src]# su - service0
    -[postgres@yourserver pgsql]$ env | grep PATH
    -

    For PostGreSQL, you should see:

    -LD_LIBRARY_PATH=LD_LIBRARY_PATH=:/usr/local/pgsql/lib
    -PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/usr/local/pgsql/bin:/usr/local/pgsql/bin

    For Oracle:

    ORACLE_BASE=/ora8/m01/app/oracle
    -ORACLE_HOME=/ora8/m01/app/oracle/product/8.1.7
    -PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/ora8/m01/app/oracle/product/8.1.7/bin
    -LD_LIBRARY_PATH=/ora8/m01/app/oracle/product/8.1.7/lib:/lib:/usr/lib
    -ORACLE_SID=ora8
    -ORACLE_TERM=vt100
    -ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
    [service0@yourserver service0]$ exit
    -logout
    -
    -[root@yourserver root]#
  • Unpack the OpenACS tarball and rename it to service0. Secure the directory so that only the owner can access it. Check the permissions by listing the directory.

    [root@yourserver root]# su - service0
    +      it in the service0 group so that it
    +      can use database and server commands associated with that group.
    +    

    [root@yourserver root]# groupadd web
    +[root@yourserver root]# useradd -g service0 -G web service0 -d /home/service0
    +[root@yourserver root]#

    Install with automated script (EXPERIMENTAL)

    Starting with OpenACS 5.0, an experimental script is + available to automate all of the steps for the rest of this section. Requires tclwebtest. If you are not feeling lucky, skip to Section�, “Install from tarball”.

    1. Get the install script from CVS:

      [root@yourserver root]# su - service0
      +[service0@yourserver service0]$ cvs -d :pserver:anonymous@openacs.org:/cvsroot co -d install openacs-4/etc/install
      +cvs server: Updating install
      +U install/README
      +U install/TODO
      +  ... many lines omitted ...
      +U install/tcl/twt-procs.tcl
      +U install/tcl/user-procs.tcl
      +[service0@yourserver service0]$ cd install
      +

      Edit + /home/service0/install/install.tclinstall.tcl + file and change the values as documented in the file.

      Run the file as root.

      [service0@yourserver service0]$ exit 
      +[root@yourserver root]# ./home/service0/install/install.sh
      +/home/service0/install/install.sh: Starting installation with config_file 
      +/home/service0/install/install.tcl. Using serverroot=/var/lib/aolserver/
      +service0, server_url=http://0.0.0.0:8000, do_checkout=yes, do_install=yes, 
      +dotlrn=no, and database=postgres., use_daemontools=true
      +  ... many lines omitted ...
      +./install.sh: Finished (re)installing /var/lib/aolserver/service0 at Wed Nov  
      +5 13:27:17 CET 2003.  Access the new site at http://127.0.0.1:8000 with admin 
      +username admin@yourserver.test and password 1
      +[root@yourserver root]#
      +
      exit
      +./home/service0/install/install.sh

    You can proceed to Section�, “Next Steps”.

    Install from tarball

    You should already have downloaded the OpenACS tarball + to the /tmp directory. If + not, download the OpenACS + tarball and save it in + /tmp and proceed:

    1. Unpack the OpenACS tarball and rename it to service0. Secure the directory so that only the owner can access it. Check the permissions by listing the directory.

      [root@yourserver root]# su - service0
       [service0@yourserver service0]$ cd /var/lib/aolserver
       [service0@yourserver aolserver]$ tar xzf /tmp/openacs-5.0.0a4.tgz
       [service0@yourserver aolserver]$ mv openacs-5.0.0a4 service0
      @@ -87,21 +83,11 @@
       tar xzf /tmp/openacs-5.0.0a4.tgz
       mv openacs-5.0.0a4 service0
       chmod -R 700 service0/
      -exit
  • Add the Service to CVS (OPTIONAL)

  • (This step should be obsoleted by the 5.0.0 tarball, as - these directories will be included in the tarball)Set up several additional directories in the service root: - etc is for configuration and control files, log is for error and request (web page hit) log files, and database-backup is for database backup files. If you did the CVS step, note that these new directories are excluded from that step so that you can decide whether or not you want your logs and config files in source control.

    [root@yourserver root]# su - service0
    -[service0@yourserver service0]$ mkdir /var/lib/aolserver/service0/etc /var/lib/aolserver/service0/log /var/lib/aolserver/service0/database-backup
    -[service0@yourserver aolserver]$ exit
    -logout
    -
    -[root@yourserver aolserver]#
    -
    su - service0
    -mkdir /var/lib/aolserver/service0/etc /var/lib/aolserver/service0/log /var/lib/aolserver/service0/database-backup
    -exit
  • Prepare Oracle for OpenACS

    If you won't be using Oracle, skip to Section�, “Prepare PostgreSQL for an OpenACS Service”

    +exit

  • Add the Service to CVS (OPTIONAL)

  • Prepare the database

    • Prepare Oracle for OpenACS.�If you won't be using Oracle, skip to Prepare PostgreSQL for an OpenACS Service

      You should be sure that your user account (e.g. service0) is in the dba group. -

      1. +

        1. Verify membership by typing groups when you login: @@ -231,7 +217,10 @@ If you can't login, try redoing step 1 again. If the date is in the wrong format, make sure you followed the steps outlined in Section�, “Troubleshooting Oracle Dates” -

      Prepare PostgreSQL for an OpenACS Service

      1. Create a user in the database matching the service name.

        [root@yourserver root]# su - postgres
        +		  

    • Prepare PostgreSQL for an OpenACS Service.�

      • PostGreSQL:

        Create a user in the database matching the service + name. With default PostGreSQL authentication the name of + the user of the process will be matched to this account + automatically.

        [root@yourserver root]# su - postgres
         [postgres@yourserver pgsql]$ createuser service0
         Shall the new user be allowed to create databases? (y/n) y
         Shall the new user be allowed to create more new users? (y/n) y
        @@ -244,17 +233,17 @@
         CREATE DATABASE
         [service0@yourserver service0]$
         
        su - service0
        -createdb -E UNICODE service0
      • Automate daily database Vacuuming. This is a process which cleans out discarded data from the database. A quick way to automate vacuuming is to edit the cron file for the database user.

        [service0@yourserver service0]$ export EDITOR=emacs;crontab -e

        Add this line to the file. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day.

        0 1 * * * /usr/local/pgsql/bin/vacuumdb --analyze service0
      • Add Full Text Search Support (OPTIONAL)

      • [service0@yourserver service0]$ exit
        +createdb -E UNICODE service0
      • Automate daily database Vacuuming. This is a process which cleans out discarded data from the database. A quick way to automate vacuuming is to edit the cron file for the database user.

        [service0@yourserver service0]$ export EDITOR=emacs;crontab -e

        Add this line to the file. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day.

        0 1 * * * /usr/local/pgsql/bin/vacuumdb --analyze service0
      • Add Full Text Search Support (OPTIONAL)

      • [service0@yourserver service0]$ exit
         logout
         
        -[root@yourserver root]# 

    Configure an AOLserver Service for OpenACS

    1. +[root@yourserver root]#

  • Configure an AOLserver Service for OpenACS.�

    1. The AOLserver architecture lets you run an arbitrary number of virtual servers. A virtual server is an HTTP service running on a specific port, e.g. port 80. In order for OpenACS to work, you need to configure a virtual server. The Reference Platform uses a configuration file included in the OpenACS tarball, /var/lib/aolserver/service0/etc/config.tcl. - Open it in an editor to adjust the parameters.

      [root@yourserver root]# su - service0
      +	   Open it in an editor to adjust the parameters.

      [root@yourserver root]# su - service0
       [service0@yourserver service0]$ cd /var/lib/aolserver/service0/etc
       [service0@yourserver etc]# emacs config.tcl
       

      @@ -279,7 +268,7 @@ started, but for more options, read the AOLServer docs.

    2. Enable OpenFTS Full Text Search (OPTIONAL)

    3. Install nsopenssl - for SSL support. (OPTIONAL)

    Verify AOLserver startup

    1. + for SSL support. (OPTIONAL)

  • Verify AOLserver startup.�

    1. Kill any current running AOLserver processes and start a new one. If you are using Oracle, rather than PostgreSQL, replace nsd-postgres with @@ -317,7 +306,8 @@ changes, don't forget to kill any running servers with killall nsd.

    2. Automate - AOLserver keepalive (OPTIONAL)

    Configure a Service with the OpenACS Installer

    + AOLserver keepalive (OPTIONAL)

  • Configure a Service with the OpenACS + Installer.� Now that you've got AOLserver up and running, let's install OpenACS 5.0.0a4.

  • Next Steps

    Next Steps

    ($Id$)
    View comments on this page at openacs.org
    + packages. (more information)

  • Proceed to the tutorial to learn how to develop your own packages.

  • Set up database environment variables for the site + user. These settings are necessary for working with the + database while logged in as the service user. They do not + directly affect the service's run-time connection with the + database, because those environmental variables are set by the + wrapper scripts nsd-postgres and nsd-oracle.

    [root@yourserver root]# su - service0
    +[service0@yourserver service0]$ emacs .bashrc

    Put in the appropriate lines for the database you are running. If you will use both databases, put in both sets of lines.

    Test this by logging out and back in as + service0 and checking the paths.

    [service0@yourserver service0]$ exit
    +logout
    +[root@yourserver src]# su - service0
    +[postgres@yourserver pgsql]$ env | grep PATH
    +
    [service0@yourserver service0]$ exit
    +logout
    +
    +[root@yourserver root]#
  • Test your backup and recovery procedure.

  • ($Id$)
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html,v diff -u -N -r1.12 -r1.13 --- openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 31 Oct 2003 15:57:34 -0000 1.12 +++ openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 5 Nov 2003 11:48:10 -0000 1.13 @@ -85,7 +85,7 @@ to store permission information explicitly about every object, i.e. if the system has 100,000 and 1,000 users who have the read privilege on all objects, then we would need to store 100,000,000 entries of the form: -

    Table�8.1.�

    object_idgrantee_idprivilege
    object_id_1user_id_1'read'
    object_id_1user_id_2'read'
    ...
    object_id_1user_id_n'read'
    object_id_2user_id_1'read'
    object_id_2user_id_2'read'
    ...
    object_id_2user_id_n'read'
    ...
    ...
    object_id_muser_id_1'read'
    object_id_muser_id_2'read'
    ...
    object_id_muser_id_n'read'

    +

    Table�8.1.�

    object_idgrantee_idprivilege
    object_id_1user_id_1'read'
    object_id_1user_id_2'read'
    ...
    object_id_1user_id_n'read'
    object_id_2user_id_1'read'
    object_id_2user_id_2'read'
    ...
    object_id_2user_id_n'read'
    ...
    ...
    object_id_muser_id_1'read'
    object_id_muser_id_2'read'
    ...
    object_id_muser_id_n'read'

    Although quite feasible, this approach fails to take advantage of the fact that objects in the system are commonly organized hierarchally, and permissions usually follow the hierarchical structure, so that if user @@ -100,7 +100,7 @@

    Context Hierarchy

    Suppose objects A, B, ..., and F form the following hierarchy. -

    Table�8.2.�

    A

    +

    Table�8.2.�

    A

    object_id=10

    B

    object_id=20 @@ -116,23 +116,23 @@ This can be represented in the acs_objects table by the following entries: -

    Table�8.3.�

    object_idcontext_id
    2010
    3010
    4020
    5020
    6030

    +

    Table�8.3.�

    object_idcontext_id
    2010
    3010
    4020
    5020
    6030

    The first entry tells us that object 20 is the descendant of object 10, and the third entry shows that object 40 is the descendant of object 20. By running a CONNECT BY query, we can compute that object 40 is the second-generation descendant of object 10. With this in mind, if we want to record the fact that user Joe has the read privilege on objects A, ..., F, we only need to record one entry in the acs_permissions table. -

    Table�8.4.�

    objectgranteeprivilege
    AJoeread

    +

    Table�8.4.�

    objectgranteeprivilege
    AJoeread

    The fact that Joe can also read B, C, ..., and F can be derived by ascertaining that these objects are children of A by traversing the context hierarchy. As it turns out, hierarchical queries are expensive. As Rafael Schloming put it so aptly, Oracle can't deal with hierarchies for shit.

    One way to solve this problem is to cache a flattened view of the context tree like so: -

    Table�8.5.�

    objectancestorn_generations
    AA0
    BB0
    BA1
    CC0
    CA1
    DD0
    DB1
    DA2
    EE0
    EB1
    EA2
    FF0
    FC1
    FA2

    +

    Table�8.5.�

    objectancestorn_generations
    AA0
    BB0
    BA1
    CC0
    CA1
    DD0
    DB1
    DA2
    EE0
    EB1
    EA2
    FF0
    FC1
    FA2

    Note that the number of entries in the flattened view grows exponentially with respect to the depth of the context tree. For instance, if you have a fully populated binary tree with a depth of n, then the number of entries @@ -203,7 +203,7 @@ an object's security_inherit_p column to 'f', you can stop permissions from cascading down the context tree. In the following example, Joe does not have the read permissions on C and F. -

    Table�8.6.�


    +

    Table�8.6.�


    A
    object_id=10
    readable�by�Joe
    @@ -231,7 +231,7 @@ Privileges are also organized hierarchically. In addition to the five main system privileges defined in the ACS Kernel data model, application developers may define their own. For instance, the Bboard package defines the following privileges: -

    Table�8.7.�

    privilege
    create_category
    create_forum
    create_message
    delete_category
    delete_forum
    delete_message
    moderate_forum
    read_category
    read_forum
    read_message
    write_category
    write_forum
    write_message

    +

    Table�8.7.�

    privilege
    create_category
    create_forum
    create_message
    delete_category
    delete_forum
    delete_message
    moderate_forum
    read_category
    read_forum
    read_message
    write_category
    write_forum
    write_message

    By defining parent-child relationship between privileges, the OpenACS data model makes it easier for developers to manage permissions. Instead of granting a user explicit read, write, delete, @@ -240,7 +240,7 @@ privilege to which the first four privileges are tied. To give a more detailed example, the Bboard privileges are structured as follows. -

    Table�8.8.�

    admin
    createdeletereadwritemoderate forum
    create categorycreate forumcreate messagedelete categorydelete forumdelete messageread categoryread forumread messagewrite categorywrite forumwrite message

    +

    Table�8.8.�

    admin
    createdeletereadwritemoderate forum
    create categorycreate forumcreate messagedelete categorydelete forumdelete messageread categoryread forumread messagewrite categorywrite forumwrite message

    The parent-child relationship between privileges is represented in the acs_privilege_hierarchy table:

    @@ -286,7 +286,7 @@
         

    Party Hierarchy

    Now for the third hierarchy playing a promiment role in the permission system. The party data model is set up as follows. -

    +    

       create table parties (
           party_id
               not null
    @@ -370,7 +370,7 @@
         

    The acs_rels table entries would look like so: -

    Table�8.10.�

    rel_typeobject_oneobject_two
    +

    Table�8.10.�

    rel_typeobject_oneobject_two
    membership_rel Pranksters @@ -405,7 +405,7 @@

    The relevant entries in the acs_rels look like so. -

    Table�8.11.�

    rel_typeobject_oneobject_two
    +

    Table�8.11.�

    rel_typeobject_oneobject_two
    composition_rel Pranksters @@ -616,7 +616,7 @@

    Note that in the above example, acs_permissions had only one entry that needed to be deleted: -

    Table�8.12.�

    object_idgrantee_idprivilege
    +

    Table�8.12.�

    object_idgrantee_idprivilege
    default_context registered_users Index: openacs-4/packages/acs-core-docs/www/postgres.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/postgres.html,v diff -u -N -r1.17 -r1.18 --- openacs-4/packages/acs-core-docs/www/postgres.html 31 Oct 2003 15:57:34 -0000 1.17 +++ openacs-4/packages/acs-core-docs/www/postgres.html 5 Nov 2003 11:48:10 -0000 1.18 @@ -3,13 +3,13 @@ OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.

    Skip this section if you will run only Oracle.

    OpenACS 5.0.0a4 will run with PostGreSQL 7.2.x, 7.3.2, - 7.3.3, and 7.3.4. 7.3.4 is the recommended version of PostgreSQL.

    • Using the Red Hat RPM.�Red Hat users: If you install PostGreSQL 7.3.4 from the Red Hat 9 RPM, you - can skip a few steps. These shell commands add a link so that the - data directory appears to be in the same place as in a source - install; start the service; create a new group for web service + 7.3.3, and 7.3.4. 7.3.4 is the recommended version of PostgreSQL.

      • Using the Red Hat RPM.�Red Hat users: If you install PostGreSQL 7.3.2 from the Red Hat 9 RPM, you + can skip a few steps. These shell commands add some links for compatibility with the directories from a source-based install; start the service; create a new group for web service users, and modify the postgres user's environment (more - information):

        [root@yourserver root]# ln -s /var/lib/pgsql/data /usr/local/pgsql/data
        +  information):

        [root@yourserver root]# ln -s /usr/lib/pgsql/ /var/lib/pgsql/lib
        +[root@yourserver root]# ln -s /var/lib/pgsql /usr/local/pgsql
        +[root@yourserver root]# ln -s /etc/init.d/postgresql /etc/init.d/postgres
         [root@yourserver root]# service postgresql start
         Initializing database:
                                                                    [  OK  ]
        @@ -20,7 +20,8 @@
         [root@yourserver root]# su - postgres
         -bash-2.05b$
         
        
        -ln -s /var/lib/pgsql/data /usr/local/pgsql/data
        +ln -s /usr/lib/pgsql/ /var/lib/pgsql/lib
        +ln -s /var/lib/pgsql /usr/local/pgsql
         service postgresql start
         echo "export LD_LIBRARY_PATH=/usr/local/pgsql/lib" >> ~postgres/.bash_profile
         echo "export PATH=$PATH:/usr/local/pgsql/bin" >> ~postgres/.bash_profile
        @@ -62,7 +63,7 @@
         	  Change to the postgres user and run ./configure to set the compilation options automatically. This is the point at which you can
         	  configure PostgreSQL in various ways. For example, if you want to
         	  enable
        -	  Unicode support, add the flags --enable-locale and --enable-multibyte. If you want to see what the other possibilities are, run ./configure --help.
        +	  Unicode support, add the flags --enable-locale and --enable-multibyte. If you want to see what the other possibilities are, run ./configure --help.
         	

        [root@yourserver src]# su - postgres
         [postgres@yourserver pgsql]$ cd /usr/local/src/postgresql-7.3.4
         [postgres@yourserver postgresql-7.3.4]$ ./configure
        Index: openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html,v
        diff -u -N -r1.9 -r1.10
        --- openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html	31 Oct 2003 15:57:34 -0000	1.9
        +++ openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html	5 Nov 2003 11:48:10 -0000	1.10
        @@ -1,4 +1,4 @@
        -Add PSGML commands to emacs init file (OPTIONAL)

        Add PSGML commands to emacs init file (OPTIONAL)

        +Add PSGML commands to emacs init file (OPTIONAL)

        Add PSGML commands to emacs init file (OPTIONAL)

        If you plan to write or edit any documentation with emacs, install a customized emacs configuration file with DocBook commands in the skeleton directory, so it will be used for all new users. The file also Index: openacs-4/packages/acs-core-docs/www/request-processor.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/request-processor.html,v diff -u -N -r1.18 -r1.19 --- openacs-4/packages/acs-core-docs/www/request-processor.html 31 Oct 2003 15:57:35 -0000 1.18 +++ openacs-4/packages/acs-core-docs/www/request-processor.html 5 Nov 2003 11:48:10 -0000 1.19 @@ -13,7 +13,7 @@ diagram summarizes the stages of the request processor assuming a URL request like http://someserver.com/notes/somepage.adp. -

        +

        Stage 1: Search Site Map

        The first thing the RP does is to map the given URL to the appropriate Index: openacs-4/packages/acs-core-docs/www/tutorial-advanced.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-advanced.html,v diff -u -N -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/tutorial-advanced.html 31 Oct 2003 15:57:35 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/tutorial-advanced.html 5 Nov 2003 11:48:10 -0000 1.11 @@ -2,15 +2,15 @@ by Joel Aufrecht
        OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

        Overview

        This tutorial covers topics which are not essential to +

        Overview

        This tutorial covers topics which are not essential to creating a minimal working package. Each section can be used independently of all of the others; all sections assume that you've completed the basic tutorial.

        • How to enforce security so that users can't change other users records

        • How to use the content management tables so that ... what?

        • How to change the default stylesheets for Form Builder HTML forms.

        • How to make your package searchable with OpenFTS/Oracle

        • How to make your package send email notifications

        • How to prepare pagelets for inclusion in other pages

        • How and when to put procedures in a tcl procedure library

        • How to add general_comments to your pages

        • More on ad_form - data validation, other stuff. (plan to draw from Jon Griffin's doc)

        • How and when to implement caching

        • partialquery in xql

        • How to use the html/text entry widget to get the - "does this look right" confirm page

        • APM package dependencies

        Write the Requirements and Design Specs

        It's time to document. For the tutorial we'll use + "does this look right" confirm page

      • APM package dependencies

    Write the Requirements and Design Specs

    It's time to document. For the tutorial we'll use pre-written documentation. When creating a package from scratch, start by copying the documentation template from /var/lib/aolserver/openacs-dev/packages/acs-core-docs/xml/docs/xml/package-documentation-template.xml @@ -60,7 +60,7 @@ Writing bi01.html for bibliography Writing index.html for book [service0@yourserver xml]$

    Verify that the documentation was generated and reflects - your changes by browsing to http://yoursite:8000/samplenote/doc

    Add the new package to CVS

    Before you do any more work, make sure that your work is + your changes by browsing to http://yoursite:8000/samplenote/doc

    Add the new package to CVS

    Before you do any more work, make sure that your work is protected by putting it all into cvs. The cvs add command is not recursive, so you'll have to traverse the directory tree manually and add as you go. (More on @@ -120,7 +120,7 @@ initial revision: 1.1 done (many lines omitted) -[service0@yourserver samplenote]$

    Delete with confirmation

    We need a way to delete records. We'll create a +[service0@yourserver samplenote]$

    Delete with confirmation

    We need a way to delete records. We'll create a recursive confirmation page.

    Add this column to the table_def in index.tcl

    {delete "" {} {<td><a href="note-delete?note_id=$note_id">Delete</a></td>}}

    Create the delete confirmation/execution page.

    [service0@yourserver www]$ emacs note-delete.tcl
    ad_page_contract {
         A page that gets confirmation and then delete notes.
     
    @@ -180,7 +180,7 @@
     <formtemplate id="note-del-confirm"></formtemplate>
     </form>

    The ADP is very simple. The formtemplate tag outputs the HTML -form generated by the ad_form command with the matching name. Test it by adding the new files in the APM and then deleting a few samplenotes.

    General_comments

    You can track comments for any ACS Object. Here we'll track +form generated by the ad_form command with the matching name. Test it by adding the new files in the APM and then deleting a few samplenotes.

    General_comments

    You can track comments for any ACS Object. Here we'll track comments for notes. On the notes.tcl/adp pair, which is used to display individual notes, we want to put a link to add comments at the bottom of the screen. If there are any comments, we want to @@ -201,13 +201,13 @@ there are comments. Then you pass the note id, which is also the acs_object id.

    We put our two new variables in the notes.adp page.

    <a href="@comment_add_url@">Add a comment</a>
    -@comments_html@

    Prepare the package for distribution.

    Browse to the package manager. Click on +@comments_html@

    Prepare the package for distribution.

    Browse to the package manager. Click on tutorialapp.

    Click on Generate a distribution file for this package from the filesystem.

    Click on the file size (37.1KB) after the label Distribution File: and save the file to - /tmp.

    + /tmp.

    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/tutorial-database.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-database.html,v diff -u -N -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/tutorial-database.html 31 Oct 2003 15:57:35 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/tutorial-database.html 5 Nov 2003 11:48:10 -0000 1.11 @@ -2,7 +2,7 @@ by Joel Aufrecht
    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

    Code the data model

    We create all database objects with scripts in the +

    Code the data model

    We create all database objects with scripts in the myfirstpackage/sql/ directory. All database scripts are database-specific and are thus in either the myfirstpackage/sql/oracle or @@ -37,7 +37,7 @@ @author which will be picked up by the API browser. The string $Id$ will automatically be - expanded when the file is checked in to cvs.

    [service0@yourserver postgresql]$ emacs myfirstpackage-create.sql

    Paste this into the file and save and close.

    Figure�7.2.�Database Creation Script - master create file

    --
    +      expanded when the file is checked in to cvs.

    [service0@yourserver postgresql]$ emacs myfirstpackage-create.sql

    Paste this into the file and save and close.

    Figure�7.2.�Database Creation Script - master create file

    --
     -- @author rhs@mit.edu
     -- @cvs-id $Id$
     --
    @@ -57,7 +57,7 @@
         object.  Notice the use of "mfp."  This token, derived from "My
         First Package," ensures that our object is unlikely to conflict
         with objects from other packages.

    Create a database file to drop everything if the package - is uninstalled.

    [service0@yourserver postgresql]$ emacs myfirstpackage-drop.sql

    Figure�7.3.�Database deletion script

    -- packages/myfirstpackage/sql/myfirstpackage-drop.sql
    +        is uninstalled.

    [service0@yourserver postgresql]$ emacs myfirstpackage-drop.sql

    Figure�7.3.�Database deletion script

    -- packages/myfirstpackage/sql/myfirstpackage-drop.sql
     -- drop script
     --
     -- @author joel@aufrecht.org
    @@ -77,4 +77,9 @@
     (1 row)
     
     [service0@yourserver postgresql]$

    If there are errors, use them to debug the sql file and try again. If there are errors in the database table creation, you may need to run the drop script to drop the table so that you can recreate it. The drop script will probably have errors since some of the things it's trying to drop may be missing. They can be ignored.

    Once you get the same output as shown above, test the drop script:

    [service0@yourserver postgresql]$ psql -f myfirstpackage-drop.sql
    -[service0@yourserver postgresql]$

    Once both scripts are working without errors, run the create script one last time and proceed.

    View comments on this page at openacs.org
    + content_type__drop_type +------------------------- + 0 +(1 row) + +[service0@yourserver postgresql]$

    Once both scripts are working without errors, run the create script one last time and proceed.

    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/tutorial-debug.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-debug.html,v diff -u -N -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/tutorial-debug.html 31 Oct 2003 15:57:35 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/tutorial-debug.html 5 Nov 2003 11:48:10 -0000 1.11 @@ -2,7 +2,7 @@ by Joel Aufrecht
    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

    Debugging

    Developer Support.�The Developer Support package adds several goodies: debug +

    Debugging

    Developer Support.�The Developer Support package adds several goodies: debug information for every page; the ability to log comments to the page instead of the error log, and fast user switching so that you can test pages as anonymous and as dummy users without logging @@ -24,17 +24,17 @@ ?�searches�backward�
    /�searches�forward.�
    ����������

    -

    Manual testing

    Make a list of basic tests to make sure it works

    Test NumActionExpected Result
    001Browse to the index page while not logged in and +

    Manual testing

    Make a list of basic tests to make sure it works

    Test NumActionExpected Result
    001Browse to the index page while not logged in and while one or more notes exist.No edit or delete or add links should appear.
    002Browse to the index page while logged in. An Edit link should appear. Click on it. Fill out the form and click Submit.The text added in the form should be visible on the index page.

    Other things to test: try to delete someone else's note. Try to delete your own note. Edit your own note. - Search for a note.

    Write automated tests

    + Search for a note.

    Write automated tests

    by Simon Carstensen
    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

    It seems to me that a lot of +

    It seems to me that a lot of people have been asking for some guidelines on how to write automated tests. I've done several tests by now and have found the process to be extremely easy and useful. It's a joy to work with automated testing Index: openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html,v diff -u -N -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 31 Oct 2003 15:57:35 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 5 Nov 2003 11:48:10 -0000 1.11 @@ -2,7 +2,7 @@ by Joel Aufrecht
    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

    The basic coding model

    ...

    Overview

    To start developing new code in OpenACS, we build a new +

    The basic coding model

    ...

    Overview

    To start developing new code in OpenACS, we build a new package. A package is a a discrete collection of web pages, tcl code, and database tables and procedures. A package with user interface is called an application; a package which provides @@ -15,11 +15,11 @@ writing web pages, debugging, and automatic regression testing.

    In this tutorial, we will make an application package for displaying a list of text notes. -

    Before you begin

    You will need:

    • A computer with a working installation of +

    Before you begin

    You will need:

    • A computer with a working installation of OpenACS. If you don't have this, see Chapter�2, Installation Overview.

    • Example files, which are included in the standard OpenACS 5.0.0a4 distribution. -

    Figure�7.1.�Assumptions in this section

    Fully qualified domain name of your serveryourserver.test
    URL of your serverhttp://yourserver.test:8000
    Name of development accountservice0
    New Package keymyfirstpackage

    Use the APM to initialize a new package

    We use the ACS Package Manager (APM) to add, remove, and +

    Figure�7.1.�Assumptions in this section

    Fully qualified domain name of your serveryourserver.test
    URL of your serverhttp://yourserver.test:8000
    Name of development accountservice0
    New Package keymyfirstpackage

    Use the APM to initialize a new package

    We use the ACS Package Manager (APM) to add, remove, and upgrade packages. It handles package meta-data, such as lists of files that belong in the package. Each package is uniquely identified by a package key. To start developing a new @@ -28,7 +28,7 @@ the initial directories, meta-information files, and database entries for a new package. (More info on APM)

    1. Browse to - http://yourserver:8000/acs-admin/apm. + http://yourserver:8000/acs-admin/apm.

    2. Click Create a New Package.

      Fill in the fields listed below. Tab through the rest. (Some will change automatically. Don't mess with those.)

      • @@ -51,7 +51,7 @@

    This creates a package rooted at /var/lib/aolserver/service0/packages/myfirstpackage. This is the "home directory" of our new package, and all - files in the package will be within this directory.

    Mount the package in the site map

    In order to see your work in progress, you must create a + files in the package will be within this directory.

    Mount the package in the site map

    In order to see your work in progress, you must create a map between the URL space of incoming requests and the package. You do this by mounting the package in the Site Map. This creates a link between the incoming URL and an @@ -61,7 +61,7 @@ code and tables. This requires that a package be developed package-aware. You'll see how to do that in this tutorial.

    1. Browse to -http://yourserver.test:8000/admin/site-map/.

    2. Click the new sub +http://yourserver.test:8000/admin/site-map/.

    3. Click the new sub folder link on the top row in the Site Map table.

    4. Type note and click New.

    5. This creates a new row called Index: openacs-4/packages/acs-core-docs/www/tutorial-pages.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-pages.html,v diff -u -N -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/tutorial-pages.html 31 Oct 2003 15:57:35 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/tutorial-pages.html 5 Nov 2003 11:48:10 -0000 1.11 @@ -2,17 +2,16 @@ by Joel Aufrecht
      OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

    Build the "Index" page

    Each user-visible page in your package has, typically, +

    Build the "Index" page

    Each user-visible page in your package has, typically, three parts. The xql file contains any database queries, the tcl file holds the procedural logic for the page and does things like check permissions, invoke the database queries, and modify variables, and the adp page holds html. The default page in any directory is index, so we'll build that first, starting with the tcl file: -

    [service0@yourserver samplenote]$ mkdir /web/service0/packages/samplenote/www
    -[service0@yourserver samplenote]$ cd /web/service0/packages/samplenote/www
    -[service0@yourserver www]$ emacs index.tcl

    Paste this into the file.

    ad_page_contract {
    +

    [service0@yourserver postgresql]$ cd /var/lib/aolserver/service0/myfirstpackages/www
    +[service0@yourserver www emacs index.tcl

    Paste this into the file.

    ad_page_contract {
         This is the main page for the package.  It displays all of the Notes and provides links to edit them and to create new Notes.
     
         @author rhs@mit.edu
    @@ -69,7 +68,7 @@
     </queryset>

    Create the user-visible page.

    [service0@yourserver www]$ emacs index.adp

    The first line indicates that this page should be rendered within the the master template, which defaults to /web/service0/www/default-master. The second line passes a title variable to the master template. The third line inserts the contents of the variable table_html. The last line is a link to a page we haven't created yet.

    <master>
     <property name="title">Sample Notes</property>
     @table_html@
    -<p><a href="note-edit">Add a note</a></p>

    Making the APM load your files

    Before we can test these files, we have to notify the +<p><a href="note-edit">Add a note</a></p>

    Making the APM load your files

    Before we can test these files, we have to notify the package manager that they exist. (More precisely, the tcl and adp will work fine as-is, but the xql file will not be recognized until we tell the APM about it.).

    • Go to http://yourserver.test:8000/acs-admin/apm

    • Click on the samplenote link

    • Click Manage file information

    • @@ -85,7 +84,7 @@ to load the contents of the XQL into memory so that it can be used, and to reload it whenever the file is changed. The watch will last until the server is restarted. -

    Now that the APM is aware of your files, check to make sure that the self-documenting code is working.

    • Browse to http://yourserver.test:8000/api-doc/

    • Click Notes 0.1d

    • Click Content Pages

    • Click index.tcl and examine the results.

    Test the index page

    Go to http://yourserver.test:8000/note/. You should see this:

    +          

    Now that the APM is aware of your files, check to make sure that the self-documenting code is working.

    • Browse to http://yourserver.test:8000/api-doc/

    • Click Notes 0.1d

    • Click Content Pages

    • Click index.tcl and examine the results.

    Test the index page

    Go to http://yourserver.test:8000/note/. You should see this:

     Sample Notes
     Your Workspace : Main Site : Sample Note 
     
    @@ -94,7 +93,7 @@
     Add a note.
     
     foo@yourserver.test
    -

    Since our table is empty, it's a pretty boring page. So next we'll make it possible to add records.

    If you get any other output, such as an error message, skip to Section�, “Debugging and Automated Testing”.

    Add the add/edit page

    We'll create a single page to handle both adding and +

    Since our table is empty, it's a pretty boring page. So next we'll make it possible to add records.

    If you get any other output, such as an error message, skip to Section�, “Debugging and Automated Testing”.

    Add the add/edit page

    We'll create a single page to handle both adding and editing records. In this recursive approach, the same tcl function can present a blank HTML form, present the same form pre-loaded with an existing record, and handle the resulting @@ -173,7 +172,7 @@ title, for both variables but wrap it in curly brackets for context so that the spaces aren't interpreted separators. The formtemplate tag outputs the form - html with the matching name.

    Go to the APM as before and reload. Then test all this by going to the package home page and adding and editing a few records.

    Adding files to cvs

    Put your new work into source control.

    [service0@yourserver www]$ cvs add *.adp *.tcl *.xql
    +      html with the matching name.

    Go to the APM as before and reload. Then test all this by going to the package home page and adding and editing a few records.

    Adding files to cvs

    Put your new work into source control.

    [service0@yourserver www]$ cvs add *.adp *.tcl *.xql
     cvs add: cannot add special file `CVS'; skipping
     cvs add: doc/CVS already exists
     cvs add: scheduling file `index.adp' for addition
    Index: openacs-4/packages/acs-core-docs/www/unix-installation.html
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/unix-installation.html,v
    diff -u -N -r1.3 -r1.4
    --- openacs-4/packages/acs-core-docs/www/unix-installation.html	31 Oct 2003 15:57:35 -0000	1.3
    +++ openacs-4/packages/acs-core-docs/www/unix-installation.html	5 Nov 2003 11:48:10 -0000	1.4
    @@ -8,5 +8,5 @@
               information on FreeBSD installation)

    and optionally these programs, which are included in most distributions:

    To install a machine to the specifications of the Reference - Platform, do the walkthrough of the + Platform, do the walkthrough of the Red Hat 8.0 Install for OpenACS.

    ($Id$)
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/upgrade-detail.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/upgrade-detail.html,v diff -u -N -r1.12 -r1.13 --- openacs-4/packages/acs-core-docs/www/upgrade-detail.html 31 Oct 2003 15:57:35 -0000 1.12 +++ openacs-4/packages/acs-core-docs/www/upgrade-detail.html 5 Nov 2003 11:48:10 -0000 1.13 @@ -9,13 +9,13 @@ manual intervention should be required. If you are running OpenACS prior to 4.5, upgrading will require manual effort.

    Checklist

    The required platform for OpenACS 4.6 is the same as 4.5, with the excepion of OpenFTS. You now need OpenFTS 0.3.2, not 0.2. - OpenACS 4.6 does not support PostGreSQL 7.3.

    Overview

    OpenACS consists of files and a database schema. The files + OpenACS 4.6 does not support PostGreSQL 7.3.

    Overview

    OpenACS consists of files and a database schema. The files in the OpenACS 4.6 tarball include database upgrade scripts. To start the upgrade, replace your existing files with the new files and then restart the server. Then, browse to the APM, which will detect the new packages and offer to run the appropriate database upgrade scripts. After restarting the server again, the upgrade is - complete.

    Figure�5.1.�Assumptions in this section

    name of OpenACS usernsadmin
    OpenACS server nameopenacs-dev
    Root of OpenACS file tree/web/openacs-dev
    Database backup directory/backup/openacs/

    Upgrading on Linux/Unix

    1. Make a Backup.�Back up the database and file system (see Section�, “Snapshot backup and recovery”).

    2. OPTIONAL: Upgrade OpenFTS.�OpenACS Full Text Search requires several pieces: the OpenFTS code, some database functions, and the OpenFTS Engine. If you have OpenFTS 0.2, you'll need to upgrade to to OpenFTS 0.3.2. This is backwards-compatible - + complete.

      Figure�5.1.�Assumptions in this section

      name of OpenACS usernsadmin
      OpenACS server nameopenacs-dev
      Root of OpenACS file tree/web/openacs-dev
      Database backup directory/backup/openacs/

    Upgrading on Linux/Unix

    1. Make a Backup.�Back up the database and file system (see Section�, “Snapshot backup and recovery”).

    2. OPTIONAL: Upgrade OpenFTS.�OpenACS Full Text Search requires several pieces: the OpenFTS code, some database functions, and the OpenFTS Engine. If you have OpenFTS 0.2, you'll need to upgrade to to OpenFTS 0.3.2. This is backwards-compatible - completing this step will not break a working OpenFTS Engine from 4.5.

      1. Uninstall the old OpenFTS Engine

        1. Browse to http://yourserver/openfts.

        2. Click Administration.

        3. Click Drop OpenFTS Engine

      2. Build and install the new OpenFTS driver and supporting tcl procedures. (This section of shell code is not fully documented; please exercise care.)

        cd /usr/local/src/
        Index: openacs-4/packages/acs-core-docs/www/files/qmail.rc.txt
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/files/qmail.rc.txt,v
        diff -u -N -r1.2 -r1.3
        --- openacs-4/packages/acs-core-docs/www/files/qmail.rc.txt	28 Apr 2003 04:02:44 -0000	1.2
        +++ openacs-4/packages/acs-core-docs/www/files/qmail.rc.txt	5 Nov 2003 11:48:11 -0000	1.3
        @@ -1,7 +1,7 @@
         #!/bin/sh
         
        -# Using splogger to send the log through syslog.
        -# Using qmail-local to deliver messages to ~/Mailbox by default.
        +# Using splogger for logging.
        +# Using qmail-local to deliver messages to ~/Maildir/ by default.
         
         exec env - PATH="/var/qmail/bin:$PATH" \
         qmail-start ./Maildir/ splogger qmail
        Index: openacs-4/packages/acs-core-docs/www/images/code-model.png
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/images/code-model.png,v
        diff -u -N -r1.1 -r1.2
        Binary files differ
        Index: openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-db.xml
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-db.xml,v
        diff -u -N -r1.5 -r1.6
        --- openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-db.xml	31 Oct 2003 15:57:36 -0000	1.5
        +++ openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-db.xml	5 Nov 2003 11:48:11 -0000	1.6
        @@ -113,8 +113,13 @@
               If there are errors, use them to debug the sql file and try again.  If there are errors in the database table creation, you may need to run the drop script to drop the table so that you can recreate it.  The drop script will probably have errors since some of the things it's trying to drop may be missing.  They can be ignored.
               Once you get the same output as shown above, test the drop script:
               [service0@yourserver postgresql]$ psql -f myfirstpackage-drop.sql
        + content_type__drop_type
        +-------------------------
        +                       0
        +(1 row)
        +
         [service0@yourserver postgresql]$
        -      Once both scripts are working without errors, run the create script one last time and proceed.
        +    Once both scripts are working without errors, run the create script one last time and proceed.
             
           
           
        \ No newline at end of file
        Index: openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-pages.xml
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-pages.xml,v
        diff -u -N -r1.3 -r1.4
        --- openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-pages.xml	20 Aug 2003 16:20:18 -0000	1.3
        +++ openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-pages.xml	5 Nov 2003 11:48:11 -0000	1.4
        @@ -22,9 +22,8 @@
               index, so we'll build that
               first, starting with the tcl file:
         
        -      [service0@yourserver samplenote]$ mkdir /web/service0/packages/samplenote/www
        -[service0@yourserver samplenote]$ cd /web/service0/packages/samplenote/www
        -[service0@yourserver www]$ emacs index.tcl
        +      [service0@yourserver postgresql]$ cd /var/lib/aolserver/service0/myfirstpackages/www
        +[service0@yourserver www emacs index.tcl
               Paste this into the file.      
               ad_page_contract {
             This is the main page for the package.  It displays all of the Notes and provides links to edit them and to create new Notes.
        Index: openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial.xml
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial.xml,v
        diff -u -N -r1.7 -r1.8
        --- openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial.xml	31 Oct 2003 15:57:36 -0000	1.7
        +++ openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial.xml	5 Nov 2003 11:48:11 -0000	1.8
        @@ -95,8 +95,8 @@
             
               
                 Browse to
        -        http://yourserver:8000/acs-admin/apm.
        +        http://yourserver:8000/acs-admin/apm.
         
               
               
        @@ -154,8 +154,8 @@
               in this tutorial.
               
                 Browse to
        -http://yourserver.test:8000/admin/site-map/.
        +http://yourserver.test:8000/admin/site-map/.
                 
                 
                   Click the new sub
        Index: openacs-4/packages/acs-core-docs/www/xml/images/code-model.png
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/images/code-model.png,v
        diff -u -N -r1.1 -r1.2
        Binary files differ
        Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/aolserver.xml
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/aolserver.xml,v
        diff -u -N -r1.13 -r1.14
        --- openacs-4/packages/acs-core-docs/www/xml/install-guide/aolserver.xml	14 Oct 2003 10:05:44 -0000	1.13
        +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/aolserver.xml	5 Nov 2003 11:48:12 -0000	1.14
        @@ -16,16 +16,25 @@
               
                 Unpack the Aolserver tarball
                 Download the aolserver tarball to /tmp/aolserver3.3oacs1.tar.gz.  As root, untar
        -      aolserver3.3oacs1.tar.gz
        -      into /usr/local/src.
        -    
        +linkend="source-aolserver">aolserver tarball and unpack it.
               
               [root@yourserver root]# cd /usr/local/src
        -[root@yourserver src]# tar xzf /tmp/aolserver3.3oacs1.tar.gz
        +[root@yourserver src]# wget --passive http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz
        +--15:38:08--  http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz
        +           => `aolserver3.3oacs1.tar.gz'
        +Resolving uptime.openacs.org... done.
        +Connecting to uptime.openacs.org[207.166.200.199]:80... connected.
        +HTTP request sent, awaiting response... 200 OK
        +Length: 3,858,074 [application/x-compressed]
        +
        +100%[====================================>] 3,858,074     66.56K/s    ETA 00:00
        +
        +15:39:05 (66.56 KB/s) - `aolserver3.3oacs1.tar.gz' saved [3858074/3858074]
        +[root@yourserver src]# tar xzf aolserver3.3oacs1.tar.gz
         [root@yourserver src]#
         cd /usr/local/src
        -tar xzf /tmp/aolserver3.3oacs1.tar.gz
        +wget --passive http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz
        +tar xzf aolserver3.3oacs1.tar.gz
             
             
             
        @@ -135,18 +144,29 @@
               
                 Install tDOM
                 Download the tDOM
        -        tarball to
        -        /tmp/tDOM-0.7.7.tar.gz,
        -        unpack it, adjust the configuration file to match our patched
        +        tarball, unpack it, adjust the configuration file to match our patched
                 distribution of aolserver, and compile it.
               
               [root@yourserver root]# cd /usr/local/src
        -[root@yourserver src]# tar xzf /tmp/tDOM-0.7.7.tar.gz
        -[root@yourserver src]# cd tDOM-0.7.7/unix
        +[root@yourserver src]# wget --passive http://www.tdom.org/tDOM-0.7.8.tar.gz
        +--16:40:58--  http://www.tdom.org/tDOM-0.7.8.tar.gz
        +           => `tDOM-0.7.8.tar.gz'
        +Resolving www.tdom.org... done.
        +Connecting to www.tdom.org[212.14.81.4]:80... connected.
        +HTTP request sent, awaiting response... 200 OK
        +Length: 826,613 [application/x-compressed]
        +
        +100%[====================================>] 826,613      138.06K/s    ETA 00:00
        +
        +16:41:04 (138.06 KB/s) - `tDOM-0.7.8.tar.gz' saved [826613/826613]
        +
        +[root@yourserver src]# tar xzf tDOM-0.7.8.tar.gz
        +[root@yourserver src]# cd tDOM-0.7.8/unix
         [root@yourserver unix]#
         cd /usr/local/src
        -tar xzf /tmp/tDOM-0.7.7.tar.gz
        -cd unix 
        +wget --passive http://www.tdom.org/tDOM-0.7.8.tar.gz
        +tar xzf tDOM-0.7.8.tar.gz
        +cd tDOM-0.7.8/unix 
               Edit the file CONFIG and change this section: 
         # ----------------------------------------------------
         # aolsrc="/usr/src/aolserver-3.4"
        @@ -172,10 +192,16 @@
           (many lines omitted)
                   -Wl,-rpath,/usr/local/lib -o tcldomsh;\
         fi
        -[root@yourserver unix]# cp libtdom0.7.7.so /usr/local/aolserver/bin/
        +[root@yourserver unix]# cp libtdom0.7.8.so /usr/local/aolserver/bin/
        +[root@yourserver unix]# cd /usr/local/aolserver/bin/
        +[root@yourserver bin]# ln -s libtdom0.7.8.so libtdom.so
        +[root@yourserver bin]#
        +
         sh CONFIG
         make
        -cp libtdom0.7.7.so /usr/local/aolserver/bin/
        +cp libtdom0.7.8.so /usr/local/aolserver/bin/
        +cd /usr/local/aolserver/bin
        +ln -s libtdom0.7.8.so libtdom.so
         
             
             
        Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/openacs.xml
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/openacs.xml,v
        diff -u -N -r1.11 -r1.12
        --- openacs-4/packages/acs-core-docs/www/xml/install-guide/openacs.xml	14 Oct 2003 10:03:23 -0000	1.11
        +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/openacs.xml	5 Nov 2003 11:48:12 -0000	1.12
        @@ -5,50 +5,40 @@
         %myvars;
         ]>
         
        -Install OpenACS &version;
        +  Install OpenACS &version;
         
           
        -	by Vinod Kurup
        +    by Vinod Kurup
           
         
           
        -    Set up the file system for an OpenACS Service
        -    
        -      
        -      
        -        The reference install stores all OpenACS services in
        -      /var/lib/aolserver, with one subdirectory per service.  The first time you install a service, you must create
        -      that directory and set its permissions:
        -        [root@yourserver root]# mkdir /var/lib/aolserver
        +    Set up the file system for one or more OpenACS Sites
        +    For Linux Standard Base compliance and ease of backup,
        +      all of the files in each OpenACS site are stored in a
        +      subdirectory of
        +      /var/lib/aolserver, one
        +      subdirectory per site.  The first time you install an OpenACS
        +      site on a server, you must create the parent directory and set its permissions:
        +    [root@yourserver root]# mkdir /var/lib/aolserver
         [root@yourserver root]# chgrp web /var/lib/aolserver
         [root@yourserver root]# chmod 770 /var/lib/aolserver
         [root@yourserver root]#
         mkdir /var/lib/aolserver
         chgrp web /var/lib/aolserver
         chmod 770 /var/lib/aolserver
         
        -      
        -
        -      
        -        You should already have downloaded the OpenACS tarball
        -      to the /tmp directory.  If
        -      not, download the OpenACS
        -      tarball and save it in
        -      /tmp and proceed:
        -
        -      
        -      
        -        Set up your user account.
        -        
        -        
        +  
        +  
        +    Set up a user account for each site.
        +    
               AOLserver needs to be started as the root user if you want to use
               port 80. Once it starts, though, it will drop the root privileges and
               run as another user, which you must specify on the command line. It's
               important that this user has as few privileges as possible. Why?
               Because if an intruder somehow breaks in through AOLserver, you don't
               want her to have any ability to do damage to the rest of your
               server.
        -      At the same time, AOLserver needs to have write access to
        +        At the same time, AOLserver needs to have write access to
               some files on your system in order for OpenACS to function
               properly. So, we'll run AOLserver with a different user account
               for each different service.  A service name should be a single
        @@ -57,72 +47,68 @@
               example "service0" might be the service name for the
               service0.net
               community.
        -      For the &version;-P and &version;-O Reference Platform,
        -      we'll use a server named service0 and
        -      a user named service0.  We'll leave the password
        -      blank for increased security.  The only way to log in will be
        -      with ssh certificates.  The only people who should log in are
        +        We'll leave the password blank, which prevents login by
        +      password, for increased security.  The only way to log in will
        +      be with ssh certificates.  The only people who should log in are
               developers for that specific instance.  Add this user, and put
        -      it in the web group so that it
        -      can use database commands associated with that group.
        +      it in the service0 group so that it
        +      can use database and server commands associated with that group.
             
         
        -        [root@yourserver root]# useradd -g web service0 -d /home/service0
        +        [root@yourserver root]# groupadd web
        +[root@yourserver root]# useradd -g service0 -G web service0 -d /home/service0
         [root@yourserver root]#
        -        
        -      Set up database environment variables.  They are
        -	necessary for working with the database.  
        -
        -      
        -      [root@yourserver root]# su - service0
        -[service0@yourserver service0]$ emacs .bashrc
        -      Put in the appropriate lines for the database you are running.  If you will use both databases, put in both sets of lines.
        -      
        -        
        -          PostGreSQL:
        -          export LD_LIBRARY_PATH=LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
        -export PATH=$PATH:/usr/local/pgsql/bin
        -        
        -        
        -          Oracle.  These environment variables are specific for a local Oracle
        -      installation communicating via IPC. If you are connecting to a remote
        -      Oracle installation, you'll need to adjust these appropriately. Also,
        -      make sure that the '8.1.7' matches your Oracle version.
        -
        -          export ORACLE_BASE=/ora8/m01/app/oracle
        -export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
        -export PATH=$PATH:$ORACLE_HOME/bin
        -export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
        -export ORACLE_SID=ora8
        -export ORACLE_TERM=vt100
        -export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
        -        
        -      
        -      Test this by logging out and back in as
        -	service0 and checking the paths.
        -      [service0@yourserver service0]$ exit
        -logout
        -[root@yourserver src]# su - service0
        -[postgres@yourserver pgsql]$ env | grep PATH
        +  
        +  
        +  
        +    Install with automated script (EXPERIMENTAL)
        +    Starting with OpenACS 5.0, an experimental script is
        +    available to automate all of the steps for the rest of this section.  Requires tclwebtest.  If you are not feeling lucky, skip to .
        +    
        +      
        +        Get the install script from CVS:
        +        [root@yourserver root]# su - service0
        +[service0@yourserver service0]$ cvs -d :pserver:anonymous@openacs.org:/cvsroot co -d install openacs-4/etc/install
        +cvs server: Updating install
        +U install/README
        +U install/TODO
        +  ... many lines omitted ...
        +U install/tcl/twt-procs.tcl
        +U install/tcl/user-procs.tcl
        +[service0@yourserver service0]$ cd install
         
        -For PostGreSQL, you should see:
        -      
        -LD_LIBRARY_PATH=LD_LIBRARY_PATH=:/usr/local/pgsql/lib
        -PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/usr/local/pgsql/bin:/usr/local/pgsql/bin
        -      For Oracle:
        -      ORACLE_BASE=/ora8/m01/app/oracle
        -ORACLE_HOME=/ora8/m01/app/oracle/product/8.1.7
        -PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/ora8/m01/app/oracle/product/8.1.7/bin
        -LD_LIBRARY_PATH=/ora8/m01/app/oracle/product/8.1.7/lib:/lib:/usr/lib
        -ORACLE_SID=ora8
        -ORACLE_TERM=vt100
        -ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
        -      [service0@yourserver service0]$ exit
        -logout
        -
        -[root@yourserver root]#
        +        Edit
        +        /home/service0/install/install.tclinstall.tcl
        +        file and change the values as documented in the file.
        +        Run the file as root.
        +        [service0@yourserver service0]$ exit 
        +[root@yourserver root]# ./home/service0/install/install.sh
        +/home/service0/install/install.sh: Starting installation with config_file 
        +/home/service0/install/install.tcl. Using serverroot=/var/lib/aolserver/
        +service0, server_url=http://0.0.0.0:8000, do_checkout=yes, do_install=yes, 
        +dotlrn=no, and database=postgres., use_daemontools=true
        +  ... many lines omitted ...
        +./install.sh: Finished (re)installing /var/lib/aolserver/service0 at Wed Nov  
        +5 13:27:17 CET 2003.  Access the new site at http://127.0.0.1:8000 with admin 
        +username admin@yourserver.test and password 1
        +[root@yourserver root]#
        +exit
        +./home/service0/install/install.sh
               
        -      
        +    
        +    You can proceed to .
        +  
        +
        +  
        +    Install from tarball
        +    You should already have downloaded the OpenACS tarball
        +      to the /tmp directory.  If
        +      not, download the OpenACS
        +      tarball and save it in
        +      /tmp and proceed:
        +    
        +      
                 Unpack the OpenACS tarball and rename it to service0.  Secure the directory so that only the owner can access it.  Check the permissions by listing the directory.       
                 [root@yourserver root]# su - service0
         [service0@yourserver service0]$ cd /var/lib/aolserver
        @@ -148,36 +134,22 @@
               
                 Add the Service to CVS (OPTIONAL)
               
        -
               
        -        (This step should be obsoleted by the 5.0.0 tarball, as
        -      these directories will be included in the tarball)Set up several additional directories in the service root:
        -      etc is for configuration and control files, log is for error and request (web page hit) log files, and database-backup is for database backup files.  If you did the CVS step, note that these new directories are excluded from that step so that you can decide whether or not you want your logs and config files in source control.
        -        [root@yourserver root]# su - service0
        -[service0@yourserver service0]$ mkdir /var/lib/aolserver/service0/etc /var/lib/aolserver/service0/log /var/lib/aolserver/service0/database-backup
        -[service0@yourserver aolserver]$ exit
        -logout
        -
        -[root@yourserver aolserver]#
        -su - service0
        -mkdir /var/lib/aolserver/service0/etc /var/lib/aolserver/service0/log /var/lib/aolserver/service0/database-backup
        -exit
        -      
        -    
        -  
        -  
        -  
        -    Prepare Oracle for OpenACS
        -    
        -    If you won't be using Oracle, skip to 
        -    
        +        Prepare the database
        +        
        +          
        +            
        +              Prepare Oracle for OpenACS
        +              If you won't be using Oracle, skip to 
        +            
        +            
         	  You should be sure that your user account
         	  (e.g. service0) is in the
         	  dba group.
         	
        -    
        -       
        +            
        +               
         		  Verify membership by typing
         		  groups when you login:
         
        @@ -204,7 +176,7 @@
         		  your regular user.
         		
         
        -       
        +               
         		  Connect to Oracle using
         		  svrmgrl and login:
                 
        @@ -215,7 +187,7 @@
         Connected.
         		
         
        -      
        +              
         		  Determine where the system tablespaces are stored: 
         
         		  
        @@ -232,7 +204,7 @@
         /ora8/m01/app/oracle/oradata/ora8/drsys01.dbf
         		
         
        -       
        +               
         		  Using the above output, you should determine where
         		  to store your tablespace. As a general rule, you'll want to
         		  store your tablespace on a mount point under the
        @@ -250,7 +222,7 @@
         		  /ora8/m02/oradata/ora8/.
         		
         
        -       
        +               
         		  Create the directory for the datafile; to do this,
         		  exit from svrmgrl and login as
         		  root for this step: 
        @@ -264,9 +236,9 @@
         root:~# chmod 775 /ora8/m02/oradata/ora8
         root:~# exit
         service0:~$
        -      
        +              
         
        -       
        +               
         
         		  Create a tablespace for the service. It is important that the
         		  tablespace can autoextend. This
        @@ -290,14 +262,14 @@
                      maxsize 300M
                      extent management local
                      uniform size 32K;
        -      
        +              
         
        -       
        +               
         		  Create a database user for this service. Give the
         		  user access to the tablespace and rights to connect. We'll use
         		  service0password as our password.
         
        -        
        +                
         		  Write down what you specify as service_name
         			(i.e. service0) and
         			database_password
        @@ -314,13 +286,13 @@
         SVRMGR> alter user service0 quota unlimited on service0;
         SVRMGR> exit;
         
        -        
        +                
         		  Your table space is now ready. In case you are trying to delete a
         		  previous OpenACS installation, consult these commands in  below.
        +                    linkend="install-openacs-delete-tablespace"/> below.
         		
         
        -      
        +              
                 Make sure that you can login to Oracle using your
                 service_name account: 
         
        @@ -334,22 +306,28 @@
         
         SQL> exit
         
        -        
        +                
         		  You should see today's date in a format 'YYYY-MM-DD.'
         		  If you can't login, try redoing step 1 again. If the date is
         		  in the wrong format, make sure you followed the steps outlined in
         		  
         		  
        -      
        -    
        -  
        -
        -  
        -    Prepare PostgreSQL for an OpenACS Service
        -    
        -      
        -        Create a user in the database matching the service name.
        -        [root@yourserver root]# su - postgres
        +              
        +            
        +          
        +          
        +            
        +              Prepare PostgreSQL for an OpenACS Service
        +              
        +            
        +            
        +              
        +                PostGreSQL:
        +                Create a user in the database matching the service
        +            name.  With default PostGreSQL authentication the name of
        +            the user of the process will be matched to this account
        +            automatically.
        +                [root@yourserver root]# su - postgres
         [postgres@yourserver pgsql]$ createuser service0
         Shall the new user be allowed to create databases? (y/n) y
         Shall the new user be allowed to create more new users? (y/n) y
        @@ -358,125 +336,131 @@
         logout
         
         [root@yourserver root]#
        -      
        -      
        -	Create a database with the same name as our service name, service0.
        -    [root@yourserver root]# su - service0
        +              
        +              
        +                Create a database with the same name as our service name, service0.
        +                [root@yourserver root]# su - service0
         [service0@yourserver service0]$ createdb -E UNICODE service0
         CREATE DATABASE
         [service0@yourserver service0]$
         su - service0
         createdb -E UNICODE service0
        -      
        -      
        -        Automate daily database Vacuuming.  This is a process which cleans out discarded data from the database.  A quick way to automate vacuuming is to edit the cron file for the database user.
        -        
        -          Postgres
        -          Vacuuming
        -        
        -        [service0@yourserver service0]$ export EDITOR=emacs;crontab -e
        -        Add this line to the file.  The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day.
        -        0 1 * * * /usr/local/pgsql/bin/vacuumdb --analyze service0
        -      
        -      
        -        Add Full Text Search Support (OPTIONAL)
        -      
        -      
        -        [service0@yourserver service0]$ exit
        +              
        +              
        +                Automate daily database Vacuuming.  This is a process which cleans out discarded data from the database.  A quick way to automate vacuuming is to edit the cron file for the database user.
        +                
        +                  Postgres
        +                  Vacuuming
        +                
        +                [service0@yourserver service0]$ export EDITOR=emacs;crontab -e
        +                Add this line to the file.  The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day.
        +                0 1 * * * /usr/local/pgsql/bin/vacuumdb --analyze service0
        +              
        +              
        +                Add Full Text Search Support (OPTIONAL)
        +              
        +              
        +                [service0@yourserver service0]$ exit
         logout
         
         [root@yourserver root]# 
        +              
        +            
        +          
        +        
               
        -    
        -  
        -  
        -  
        -    Configure an AOLserver Service for OpenACS
        -    
        -      
        -        
        +      
        +        
        +          Configure an AOLserver Service for OpenACS
        +          
        +        
        +        
        +          
        +            
         	  The AOLserver architecture lets you run an arbitrary number of
         	  virtual servers. A virtual server is an HTTP service running on a
         	  specific port, e.g. port 80. In order for OpenACS to work, you
         	  need to configure a virtual server.  The Reference Platform
         	  uses a configuration file included in the OpenACS tarball,
         	  /var/lib/aolserver/service0/etc/config.tcl.
         	   Open it in an editor to adjust the parameters.
        -        
        -          AOLserver
        -          configuration
        -        
        -    
        -        [root@yourserver root]# su - service0
        +            
        +              AOLserver
        +              configuration
        +            
        +            
        +            [root@yourserver root]# su - service0
         [service0@yourserver service0]$ cd /var/lib/aolserver/service0/etc
         [service0@yourserver etc]# emacs config.tcl
         
        -        
        +            
         	  You can continue without changing any values in the file.  However, if you don't change address to match the computer's ip address, you won't be able to browse to your server from other machines.
         	
        -    
        -    
        -      httpport - If you want your
        +            
        +            
        +              httpport - If you want your
         		  server on a different port, enter it here.  The Reference Platform port is 8000, which is suitable for development use.  Port 80 is the standard http port - it's the port used by your browser when you enter http://yourserver.test.  So you should use port 80 for your production site.
        -      
        -      
        -        httpsport - This is the
        +              
        +              
        +                httpsport - This is the
               port for https requests.  The Reference Platform https port is
               8443.  If http port is set to 80, httpsport should be 143 to
               match the standard.
        -      
        -      
        -       
        +              
        +              
        +               
         		  address - The IP address of the server.  If you are hosting multiple IPs on one computer, this is the address specific to the web site.  Each virtual server will ignore any requests directed at other addresses.
        -      
        -      
        -        server - This is the keyword that, by convention, identifies the service.  It is also used as part of the path for the service root, as the name of the user for running the service, as the name of the database, and in various dependent places.  The Reference Platform uses service0.
        +              
        +              
        +                server - This is the keyword that, by convention, identifies the service.  It is also used as part of the path for the service root, as the name of the user for running the service, as the name of the database, and in various dependent places.  The Reference Platform uses service0.
               
             
        -      
        -      db_name - In almost all cases,
        +              
        +              db_name - In almost all cases,
         		  this can be kept as a reference to $server. If for some reason,
         		  the tablespace you are using is different than your servername,
         		  then you can set it here. You should have a good reason for doing
         		  this. 
         		
         
        -       
        +               
         		  servername - This is just a *pretty* name for your server.
        -          
        -          
        -          
        -            user_account - The account that
        +              
        +              
        +              
        +                user_account - The account that
                 will both own OpenACS files and connect to the database (for
                 Postgresql).
        +              
        +              
        +              
        +                debug - Set to true for a very verbose error log, including many lines for every page view, success or failure.
        +              
        +            
                   
        -          
                   
        -            debug - Set to true for a very verbose error log, including many lines for every page view, success or failure.
        -          
        -        
        -      
        -      
        -        
        +            
         	  AOLServer is very configurable. These settings should get you
         	  started, but for more options, read the AOLServer
         	  docs.
         	
        -      
        -      
        -        Enable OpenFTS Full Text Search (OPTIONAL)
        -      
        -      
        -        Install nsopenssl
        +          
        +          
        +            Enable OpenFTS Full Text Search (OPTIONAL)
        +          
        +          
        +            Install nsopenssl
                 for SSL support. (OPTIONAL)
        +          
        +        
               
        -    
        -  
        -
        -  
        -    Verify AOLserver startup
        -    
        +      
        +        
        +          Verify AOLserver startup
        +          
        +        
        +        
               
                 
         	  Kill any current running AOLserver processes and start a new
        @@ -532,17 +516,17 @@
                 Automate
                 AOLserver keepalive (OPTIONAL)
               
        -    
        -  
        -  
        -  
        -    Configure a Service with the OpenACS Installer
        -    
        -    
        +        
        +      
        +      
        +        
        +          Configure a Service with the OpenACS
        +          Installer
        +          
         	  Now that you've got AOLserver up and running, let's install OpenACS
         	  &version;.
         	
        -
        +        
             
                
         		  You should see a page from the webserver titled
        @@ -565,17 +549,17 @@
         
         		
         
        -		
        +        
         Loading package .info files ... this will take a few minutes
         
        -		
        +        
         
         		  This will really take a few minutes. Have faith! Finally, another
         		  Next button will appear at the
         		  bottom - click it.
         
         		
        -	  
        +      
         
                		  
         
        @@ -612,28 +596,28 @@
         		  you'll need to manually restart your service.
         		
                 [service0@yourserver service0]$ /usr/local/aolserver/bin/nsd-postgres -t /var/lib/aolserver/service0/config.tcl
        -	  
        +      
         
                
         		  Give the server a few minutes to start up. Then
         		  reload the final page above. You should see the front page, with
         		  an area to login near the upper right.  Congratulations, OpenACS
         		  &version; is now up and running!  
         		
        +    
        +      
        +    
        +  
         
        -
        +  
        +    Next Steps
        +    
               
                 Install Full Text Search (OPTIONAL).  If you have installed OpenFTS and enabled
                 OpenFTS, you can now install the OpenFTS Driver package and
                 Full Text Search Engine package in the OpenACS service.
        -
               
        -    
        -  
        -  
        -    Next Steps
        -    
               
                 This is a good time to make a backup of your service.  If this is a
        @@ -651,6 +635,69 @@
               
               Proceed to the tutorial to learn how to develop your own packages.
               
        +      
        +        Set up database environment variables for the site
        +	user.  These settings are necessary for working with the
        +	database while logged in as the service user.  They do not
        +	directly affect the service's run-time connection with the
        +	database, because those environmental variables are set by the
        +	wrapper scripts nsd-postgres and nsd-oracle.
        +        
        +        [root@yourserver root]# su - service0
        +[service0@yourserver service0]$ emacs .bashrc
        +        Put in the appropriate lines for the database you are running.  If you will use both databases, put in both sets of lines.
        +        
        +          
        +            PostGreSQL:
        +            export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
        +export PATH=$PATH:/usr/local/pgsql/bin
        +          
        +          
        +            Oracle.  These environment variables are specific for a local Oracle
        +      installation communicating via IPC. If you are connecting to a remote
        +      Oracle installation, you'll need to adjust these appropriately. Also,
        +      make sure that the '8.1.7' matches your Oracle version.
        +
        +            export ORACLE_BASE=/ora8/m01/app/oracle
        +export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
        +export PATH=$PATH:$ORACLE_HOME/bin
        +export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
        +export ORACLE_SID=ora8
        +export ORACLE_TERM=vt100
        +export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
        +          
        +        
        +
        +        Test this by logging out and back in as
        +	service0 and checking the paths.
        +        [service0@yourserver service0]$ exit
        +logout
        +[root@yourserver src]# su - service0
        +[postgres@yourserver pgsql]$ env | grep PATH
        +
        +        
        +          
        +            For PostGreSQL, you should see:
        +        
        +LD_LIBRARY_PATH=LD_LIBRARY_PATH=:/usr/local/pgsql/lib
        +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/usr/local/pgsql/bin:/usr/local/pgsql/bin
        +          
        +          
        +            For Oracle:
        +        ORACLE_BASE=/ora8/m01/app/oracle
        +ORACLE_HOME=/ora8/m01/app/oracle/product/8.1.7
        +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/ora8/m01/app/oracle/product/8.1.7/bin
        +LD_LIBRARY_PATH=/ora8/m01/app/oracle/product/8.1.7/lib:/lib:/usr/lib
        +ORACLE_SID=ora8
        +ORACLE_TERM=vt100
        +ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
        +          
        +        
        +        [service0@yourserver service0]$ exit
        +logout
        +
        +[root@yourserver root]#
        +      
               Test your backup and recovery procedure.
               
             
        Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/other-software.xml
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/other-software.xml,v
        diff -u -N -r1.6 -r1.7
        --- openacs-4/packages/acs-core-docs/www/xml/install-guide/other-software.xml	28 Oct 2003 22:07:41 -0000	1.6
        +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/other-software.xml	5 Nov 2003 11:48:12 -0000	1.7
        @@ -75,16 +75,10 @@
                     daemontools
                     installation
                   
        -          
        +          download daemontools and install it.
        +         
                     
        -              Red Hat
        -              Make sure you have the source tarball in
        -          /tmp, or download it.  (The -p
        -              flag in mkdir causes all implied directories in the path
        -              to be made as well.)
        -            (Red Hat 9.0: put 
        -#include <errno.h> as the first line of /package/admin/daemontools-0.76/src/error.h.  More information)
        +              Red Hat 8
                       [root@yourserver root]# mkdir -p /package
         [root@yourserver root]# chmod 1755 /package/
         [root@yourserver root]# cd /package/
        @@ -105,6 +99,48 @@
         package/install
                     
                     
        +              Red Hat 9
        +              Make sure you have the source tarball in
        +          /tmp, or download it.
        +
        +              [root@yourserver root]# mkdir -p /package
        +[root@yourserver root]# chmod 1755 /package/
        +[root@yourserver root]# cd /package/
        +[root@yourserver package]# tar xzf /tmp/daemontools-0.76.tar.gz
        +[root@yourserver package]# cd admin
        +[root@yourserver admin]# wget http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
        +--14:19:24--  http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
        +           => `daemontools-0.76.errno.patch'
        +Resolving moni.csi.hu... done.
        +Connecting to moni.csi.hu[141.225.11.87]:80... connected.
        +HTTP request sent, awaiting response... 200 OK
        +Length: 355 [text/plain]
        +
        +100%[====================================>] 355          346.68K/s    ETA 00:00
        +
        +14:19:24 (346.68 KB/s) - `daemontools-0.76.errno.patch' saved [355/355]
        +
        +[root@yourserver admin]# cd daemontools-0.76
        +[root@yourserver daemontools-0.76]# patch -p1 < ../daemontools-0.76.errno.patch
        +[root@yourserver daemontools-0.76]# package/install
        +Linking ./src/* into ./compile...
        +(many lines omitted)
        +Creating /service...
        +Adding svscanboot to inittab...
        +init should start svscan now.
        +[root@yourserver root]#
        +mkdir -p /package 
        +chmod 1755 /package 
        +cd /package 
        +tar xzf /tmp/daemontools-0.76.tar.gz 
        +cd admin
        +wget http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
        +cd daemontools-0.76
        +patch -p1 < ../daemontools-0.76.errno.patch
        +package/install
        +            
        +            
                       Debian
                       root:~# apt-get install daemontools-installer
         root:~# build-daemontools
        @@ -131,18 +167,32 @@
             
             
               Install qmail (OPTIONAL)
        -      Qmail is a Mail Transfer Agent.  It handles incoming and outgoing mail.  Install qmail if you want your OpenACS server to send and receive mail, and you don't want to use an alternate MTA.
        +      Qmail is a Mail Transfer Agent.  It handles incoming and
        +      outgoing mail.  Install qmail if you want your OpenACS server to
        +      send and receive mail, and you don't want to use an alternate
        +      MTA.
        +      Red Hat 9: all djb tools (qmail, daemontools, ucspi) will
        +      fail to compile in Red Hat 9 because of changes to glibc (patches)
               
                 
                   
                     Install ucspi
                       This program handles incoming tcp connections.
        -              Download ucspi and install it.
        +            Download ucspi and install it.
                   
        -          Red Hat 9.0: put #include <errno.h> as the first line of error.h.  More information)
                   [root@yourserver root]# cd /usr/local/src
        -[root@yourserver src]# tar xzf /tmp/ucspi-tcp-0.88.tar.gz
        -[root@yourserver src]# cd ucspi-tcp-0.88
        +[root@yourserver src]# wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
        +[root@yourserver src]# tar xzf ucspi-tcp-0.88.tar.gz
        +cd /usr/local/src 
        +wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
        +tar xzf ucspi-tcp-0.88.tar.gz 
        +          Red Hat 9 only
        +wget http://moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.errno.patch
        +cd ucspi-tcp-0.88
        +patch -p1 <../ucspi-tcp-0.88.errno.patch
        +cd ..
        +          All platforms continue:
        +[root@yourserver src]# cd ucspi-tcp-0.88
         [root@yourserver ucspi-tcp-0.88]# make
         ( cat warn-auto.sh; \
         echo 'main="$1"; shift'; \
        @@ -153,8 +203,7 @@
         ./install
         ./instcheck
         [root@yourserver ucspi-tcp-0.88]#
        -cd /usr/local/src 
        -tar xzf /tmp/ucspi-tcp-0.88.tar.gz 
        +
         cd ucspi-tcp-0.88 
         make 
         make setup check
        @@ -196,15 +245,20 @@
                     
                     Download qmail,
                     set up the standard supporting users and build the binaries:
        -            Red Hat 9.0: Put 
        -#include <errno.h>
        -as the first line of
        -            /usr/local/src/qmail-1.03/error.h.
        -            More
        -            information
                     [root@yourserver root]# cd /usr/local/src
        -[root@yourserver src]# tar xzf /tmp/qmail-1.03.tar.gz
        +[root@yourserver src]# wget http://www.qmail.org/netqmail-1.04.tar.gz
        +[root@yourserver src]# tar xzf netqmail-1.04.tar.gz
        +--15:04:11--  http://www.qmail.org/netqmail-1.04.tar.gz
        +           => `netqmail-1.04.tar.gz'
        +Resolving www.qmail.org... done.
        +Connecting to www.qmail.org[192.203.178.37]:80... connected.
        +HTTP request sent, awaiting response... 200 OK
        +Length: 242,310 [application/x-gunzip]
        +
        +88% [===============================>     ] 214,620       22.93K/s ETA 00:01
        +
        +15:04:21 (24.04 KB/s) - `netqmail-1.04.tar.gz' saved [242310/242310]
        +
         [root@yourserver src]# mkdir /var/qmail
         [root@yourserver src]# groupadd nofiles
         [root@yourserver src]# useradd -g nofiles -d /var/qmail/alias alias
        @@ -215,16 +269,28 @@
         [root@yourserver src]# useradd -g qmail -d /var/qmail qmailq
         [root@yourserver src]# useradd -g qmail -d /var/qmail qmailr
         [root@yourserver src]# useradd -g qmail -d /var/qmail qmails
        -[root@yourserver src]# cd qmail-1.03
        -[root@yourserver qmail-1.03]# make setup check
        +[root@yourserver src]# cd netqmail-1.04
        +[root@yourserver netqmail-1.04]# ./collate.sh
        +
        +You should see 7 lines of text below.  If you see anything
        +else, then something might be wrong.
        +[1] Extracting qmail-1.03...
        +[2] Patching qmail-1.03 into netqmail-1.04.  Look for errors below:
        +     20
        +[4] The previous line should say 20 if you used GNU patch.
        +[5] Renaming qmail-1.03 to netqmail-1.04...
        +[6] Continue installing qmail using the instructions found at:
        +[7] http://www.lifewithqmail.org/lwq.html#installation
        +[root@yourserver netqmail-1.04]# cd netqmail-1.04
        +[root@yourserver netqmail-1.04]# make setup check
         ( cat warn-auto.sh; \
         echo CC=\'`head -1 conf-cc`\'; \
         (many lines omitted)
         ./install
         ./instcheck
        -[root@yourserver qmail-1.03]#
         cd /usr/local/src 
        -tar xzf /tmp/qmail-1.03.tar.gz 
        +wget http://www.qmail.org/netqmail-1.04.tar.gz
        +tar xzf netqmail-1.04.tar.gz
         mkdir /var/qmail 
         groupadd nofiles 
         useradd -g nofiles -d /var/qmail/alias alias 
        @@ -235,7 +301,9 @@
         useradd -g qmail -d /var/qmail qmailq 
         useradd -g qmail -d /var/qmail qmailr 
         useradd -g qmail -d /var/qmail qmails
        -cd qmail-1.03 
        +cd netqmail-1.04
        +./collate.sh
        +cd netqmail-1.04
         make setup check
                   Replace sendmail with qmail's wrapper.
                   
        @@ -327,7 +395,7 @@
         chmod 755 /var/qmail/supervise/qmail-smtpd/log/run
         ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service
         
        -          Wait ten seconds or so, and then verify that that the four qmail processes are running.  If uptimes are 1 second, this may indicate broken scripts that are continuously restarting.  In that case, start debugging by checking permissions.
        +          Wait ten seconds or so, and then verify that that the four qmail processes are running.  If uptimes don't rise above 1 second, this may indicate broken scripts that are continuously restarting.  In that case, start debugging by checking permissions.
                   [root@yourserver root]# qmailctl stat
         /service/qmail-send: up (pid 32700) 430 seconds
         /service/qmail-send/log: up (pid 32701) 430 seconds
        @@ -345,24 +413,24 @@
                     Download the Analog source tarball in
         /tmp.  Unpack, compile, and install analog.
                     [root@yourserver aolserver]# cd /usr/local/src
        -[root@yourserver src]# tar xzf /tmp/analog-5.31.tar.gz
        -[root@yourserver src]# cd analog-5.31
        -[root@yourserver analog-5.31]# make
        +[root@yourserver src]# tar xzf /tmp/analog-5.32.tar.gz
        +[root@yourserver src]# cd analog-5.32
        +[root@yourserver analog-5.32]# make
         cd src && make
        -make[1]: Entering directory `/usr/local/src/analog-5.31/src'
        +make[1]: Entering directory `/usr/local/src/analog-5.32/src'
         (many lines omitted)
         ***IMPORTANT: You must read the licence before using analog
         ***
        -make[1]: Leaving directory `/usr/local/src/analog-5.31/src'
        -[root@yourserver analog-5.31]# cd ..
        -[root@yourserver src]# mv analog-5.31 /usr/share/
        +make[1]: Leaving directory `/usr/local/src/analog-5.32/src'
        +[root@yourserver analog-5.32]# cd ..
        +[root@yourserver src]# mv analog-5.32 /usr/share/
         [root@yourserver src]#
         cd /usr/local/src
        -tar xzf /tmp/analog-5.31.tar.gz
        -cd analog-5.31
        +tar xzf /tmp/analog-5.32.tar.gz
        +cd analog-5.32
         make
         cd ..
        -mv analog-5.31 /usr/share/
        +mv analog-5.32 /usr/share/
               See also 
             
         
        @@ -623,7 +691,8 @@
                   thread for details on compiling nsopenssl.)
         
               [root@yourserver bin]# cd /usr/local/src/aolserver
        -[root@yourserver aolserver]# tar xzf /tmp/nsopenssl-2.1.tar.gz
        +[root@yourserver aolserver]# wget --passive http://www.scottg.net/download/nsopenssl-2.1.tar.gz
        +[root@yourserver aolserver]# tar xzf nsopenssl-2.1.tar.gz 
         [root@yourserver aolserver]# cd nsopenssl-2.1
         [root@yourserver nsopenssl-2.1]# make OPENSSL=/usr/local/ssl
         gcc -I/usr/local/ssl/include -I../aolserver/include -D_REENTRANT=1 -DNDEBUG=1 -g -fPIC -Wall -Wno-unused -mcpu=i686 -DHAVE_CMMSG=1 -DUSE_FIONREAD=1 -DHAVE_COND_EINTR=1   -c -o nsopenssl.o nsopenssl.c
        @@ -633,7 +702,9 @@
         [root@yourserver nsopenssl-2.1]# cp https.tcl /usr/local/aolserver/modules/tcl/
         [root@yourserver nsopenssl-2.1]#
         cd /usr/local/src/aolserver
        -tar xzf /tmp/nsopenssl-2.1.tar.gz 
        +wget --passive
        +http://www.scottg.net/download/nsopenssl-2.1.tar.gz
        +tar xzf nsopenssl-2.1.tar.gz 
         cd nsopenssl-2.1 
         make OPENSSL=/usr/local/ssl 
         cp nsopenssl.so /usr/local/aolserver/bin 
        @@ -649,5 +720,18 @@
         cp nsopenssl.so /usr/local/aolserver/bin
         cp https.tcl /usr/local/aolserver/modules/tcl/
             
        +
        +    
        +      Install tclwebtest.
        +      Download the tclwebtest
        +      source, unpack it, and put it an appropriate
        +      place.
        +      cd /usr/local/src
        +tar xvzf /tmp/tclwebtest-0.3.tar.gz
        +mv tclwebtest /usr/local/
        +ln -s /usr/local/tclwebtest-0.3/tclwebtest /usr/local/bin
        +
        +    
        +
           
         
        Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/overview.xml
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/overview.xml,v
        diff -u -N -r1.14 -r1.15
        --- openacs-4/packages/acs-core-docs/www/xml/install-guide/overview.xml	31 Oct 2003 15:57:37 -0000	1.14
        +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/overview.xml	5 Nov 2003 11:48:12 -0000	1.15
        @@ -174,7 +174,7 @@
                   
                 
               
        -    
        +
             
               How to use this guide
               
        @@ -208,7 +208,7 @@
         createdb server1
                 
               
        -      
        +  
               
                 Paths and Users
                 
        @@ -380,9 +380,10 @@
                 
                   
                 
        -      
             ($Id: overview.xml,v 1.12 2003/10/28
             22:07:41 joela Exp $)
        +
        +      
             
         
         
        Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/postgres.xml
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/postgres.xml,v
        diff -u -N -r1.12 -r1.13
        --- openacs-4/packages/acs-core-docs/www/xml/install-guide/postgres.xml	29 Oct 2003 09:01:09 -0000	1.12
        +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/postgres.xml	5 Nov 2003 11:48:12 -0000	1.13
        @@ -21,15 +21,15 @@
             
               
                 Using the Red Hat RPM
        -  Red Hat users: If you install PostGreSQL 7.3.4 from the Red Hat 9 RPM, you
        -  can skip a few steps.  These shell commands add a link so that the
        -  data directory appears to be in the same place as in a source
        -  install; start the service; create a new group for web service
        +  Red Hat users: If you install PostGreSQL 7.3.2 from the Red Hat 9 RPM, you
        +  can skip a few steps.  These shell commands add some links for compatibility with the directories from a source-based install; start the service; create a new group for web service
           users, and modify the postgres user's
           environment (more
           information):
               
        -  [root@yourserver root]# ln -s /var/lib/pgsql/data /usr/local/pgsql/data
        +  [root@yourserver root]# ln -s /usr/lib/pgsql/ /var/lib/pgsql/lib
        +[root@yourserver root]# ln -s /var/lib/pgsql /usr/local/pgsql
        +[root@yourserver root]# ln -s /etc/init.d/postgresql /etc/init.d/postgres
         [root@yourserver root]# service postgresql start
         Initializing database:
                                                                    [  OK  ]
        @@ -40,7 +40,8 @@
         [root@yourserver root]# su - postgres
         -bash-2.05b$
         
        -ln -s /var/lib/pgsql/data /usr/local/pgsql/data
        +ln -s /usr/lib/pgsql/ /var/lib/pgsql/lib
        +ln -s /var/lib/pgsql /usr/local/pgsql
         service postgresql start
         echo "export LD_LIBRARY_PATH=/usr/local/pgsql/lib" >> ~postgres/.bash_profile
         echo "export PATH=$PATH:/usr/local/pgsql/bin" >> ~postgres/.bash_profile
        Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/red-hat.xml
        ===================================================================
        RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/red-hat.xml,v
        diff -u -N -r1.4 -r1.5
        --- openacs-4/packages/acs-core-docs/www/xml/install-guide/red-hat.xml	28 Oct 2003 22:07:41 -0000	1.4
        +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/red-hat.xml	5 Nov 2003 11:48:12 -0000	1.5
        @@ -5,7 +5,7 @@
         %myvars;
         ]>
           
        -    Install Red Hat 8.0
        +    Install Red Hat 8/9
         
             
               by Joel Aufrecht
        @@ -19,7 +19,19 @@
             to install a new machine from scratch compared to installing each
             of these packages installed independently.)
         
        -    The installation guide assumes you can do the following on
        +    The installation guide assumes you have:
        +    
        +      A PC with hard drive you can reinstall
        +      
        +      Red Hat 8.0 or 9.0 install discs
        +      
        +      A CD with the current Security
        +      Patches for your version of Red Hat.
        +      
        +    
        +
        +The installation guide assumes that you can do the following on
             your platform:
         	
             
        @@ -62,7 +74,7 @@
                   consequences.")
               
               
        -        Insert Red Hat 8.0 Disk 1 into the  
        +        Insert Red Hat 8.0 or 9.0 Disk 1 into the  
         	  CD-ROM and reboot the computer
               At the
                   boot:
        @@ -148,18 +160,9 @@
         	  computer to support and then click
         	  Next
               Choose your time zone and click Next..
        -	Type in a root
        -password, twice.  To
        -            improve security, we're going to prevent anyone from
        -            connecting to the computer directly as root.  Instead,
        -            we'll create a different user, called
        -            remadmin, used solely to
        -            connect to the computer for administration.  Click
        -Add
        -and enter username remadmin and a password,
        -twice, then click OK.  Then click
        -Next.
        -
        +      Type in a root
        +password, twice.
        +      
         	On the Package selection page, we're going to
         uncheck a lot of packages that install software we don't need, and add
         packages that have stuff we do need.  You should install everything
        @@ -175,6 +178,8 @@
         uncheck Server Configuration Tools,
         uncheck Web Server,
         uncheck Windows File Server,
        +check SQL Database
        +Server (this installs PostGreSQL,
         check Development Tools (this installs gmake and other build tools),
         uncheck Administration Tools, and
         uncheck Printing Support. 
        @@ -196,6 +201,8 @@
         uncheck pam-devel (I don't remember why, but we don't want this), 
         uncheck portmap, 
         uncheck postfix (this is an MTA, but we're going to install qmail later), 
        +check
        +postgresql-devel,
         uncheck rsh (rsh is a security hole), 
         uncheck sendmail (sendmail is an insecure MTA; we're going to install qmail instead later),
         check tcl (we need tcl), and 
        @@ -232,6 +239,17 @@
         [root@yourserver root]#
               
               
        +        Install any security patches.  For example, insert your CD with
        +        patches, mount it with mount
        +        /dev/cdrom, then cd
        +        /mnt/cdrom, then rpm -UVH
        +        *rpm.  Both Red Hat 8.0 and 9.0 have had both
        +        kernel and openssl/openssh root exploits, so you should be
        +        upgrading all of that.  Since you are upgrading the kernel,
        +        reboot after this step.
        +
        +      
        +      
                 Lock down SSH
                 
                   
        @@ -246,8 +264,15 @@
             emacs /etc/ssh/sshd_config
                   Search for the word "root" by typing C-s (that's emacs-speak for control-s) and then root.   
         Make the following changes:
        -#Protocol 2,1 to Protocol 2 (this prevents any connections via SSH 1, which is insecure)
        -#PermitRootLogin yes to PermitRootLogin no (this prevents the root use from logging in via ssh)
        +#Protocol 2,1 to
        +            Protocol 2 
        +            (this prevents any connections via SSH 1, which is insecure)
        +#PermitRootLogin yes to
        +            PermitRootLogin no 
        +            (this prevents the root user from logging in remotely via
        +            ssh.  If you do this, be sure to create a remote access
        +            account, such as "remadmin", which you can use to get ssh
        +            before using "su" to become root.)
         #PermitEmptyPasswords no to PermitEmptyPasswords no (this blocks passwordless accounts)
         
          and save and exit by typing C-x C-s C-x C-c
        @@ -266,6 +291,8 @@
         service netfs stop
         chkconfig --del pcmcia
         chkconfig --del netfs
        +        If you installed PostGreSQL, do also
        +service postgresql start and chkconfig --add postgresql.
               
               
                 Plug in the network cable.
        @@ -287,6 +314,10 @@
         [root@yourserver root]#
               
               
        +        If you didn't burn a CD of patches and use it, can still
        +          download and install the necessary patches.  Here's how to
        +          do it for the kernel; you should also check for other
        +          critical packages.
                 Upgrade the kernel to fix a security hole.  The default
                   Red Hat 8.0 system kernel (2.4.18-14, which you can check
                   with uname -a) has several http://tdom.org).
        +          url="http://www.tdom.org">http://www.tdom.org).
                   
                 
        +
        +        
        +          
        +            tclwebtest, OPTIONAL
        +            tclwebtest 0.3 is a tool for testing web interfaces
        +            via tcl scripts. http://sourceforge.net/project/showfiles.php?group_id=31075.
        +          
        +    
        +
                 
                   
                     Web Server
        @@ -279,7 +289,7 @@
                     
                       
                         <ulink
        -	    url="http://www.analog.cx/analog-5.31.tar.gz">Analog 5.31</ulink>, OPTIONAL
        +	    url="http://www.analog.cx/analog-5.32.tar.gz">Analog 5.32, OPTIONAL
                         This program examines web server request logs, looks up
         	    DNS values, and produces a report.  You need this if you
         	    want to see how much traffic your site is getting.
        @@ -349,10 +359,9 @@
                         
                           
                             <ulink
        -              url="http://cr.yp.to/software/qmail-1.03.tar.gz">Qmail 1.03</ulink>, OPTIONAL
        +              url="http://www.qmail.org/netqmail/">Netqmail 1.04, OPTIONAL
                             You need this (or a different Mail Transport
        -              Agent) if you want your webserver to send and
        -              receive email.
        +              Agent) if you want your webserver to send and receive email.