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 -r1.8.2.6 -r1.8.2.7 --- openacs-4/packages/acs-core-docs/www/acs-admin.html 29 Apr 2003 05:58:33 -0000 1.8.2.6 +++ openacs-4/packages/acs-core-docs/www/acs-admin.html 4 May 2003 06:30:02 -0000 1.8.2.7 @@ -1,2 +1,2 @@ -Part�II.�Administrator's Guide

Administrator's Guide

Table of Contents

2. Prerequisite Software
Individual Programs
3. Installing on Unix/Linux
Overview
Install Linux and supporting software
Install Oracle 8.1.7
Install PostgreSQL 7.2.3
Install AOLserver 3.3oacs1
Install OpenACS 4.6.3
Credits
4. Installing on Windows
OpenACS Installation Guide for Windows2000
5. Installing on a Macintosh
OpenACS Installation Guide for Mac OS X
6. Upgrading
Support for upgrades.
Upgrading from OpenACS 4.5
7. Maintenance
Hosting Web Sites
Database Management
Backup and Recovery
A. Install Red Hat 8.0
View comments on this page at openacs.org
+Part�II.�Administrator's Guide

Administrator's Guide

Table of Contents

2. Prerequisite Software
Individual Programs
3. Installing on Unix/Linux
Overview
Install Linux and supporting software
Install Oracle 8.1.7
Install PostGreSQL 7.2.4
Install AOLserver 3.3oacs1
Install OpenACS 4.6.3
Credits
4. Installing on Windows
OpenACS Installation Guide for Windows2000
5. Installing on a Macintosh
OpenACS Installation Guide for Mac OS X
6. Upgrading
Support for upgrades.
Upgrading from OpenACS 4.5
7. Maintenance
Hosting Web Sites
Database Management
Backup and Recovery
A. Install Red Hat 8.0
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 -r1.8.2.8 -r1.8.2.9 --- openacs-4/packages/acs-core-docs/www/aolserver.html 29 Apr 2003 05:58:33 -0000 1.8.2.8 +++ openacs-4/packages/acs-core-docs/www/aolserver.html 4 May 2003 06:30:02 -0000 1.8.2.9 @@ -1,5 +1,5 @@ -Install AOLserver 3.3oacs1

Install AOLserver 3.3oacs1

+Install AOLserver 3.3oacs1

Install AOLserver 3.3oacs1

by Vinod Kurup
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. @@ -27,25 +27,18 @@ postgresql to oracle, or to the word both if you want both drivers - installed. + installed. In order to get nsoracle to compile, you may + need to su - oracle, and then su (without the -) root to set + the environment variables properly.

conf-inst should contain the location where AOLserver is to be installed. Overwrite the tarball's default value with our default value, /usr/local/aolserver:

[root@yourserver aolserver]# echo "/usr/local/aolserver" > conf-inst
 [root@yourserver aolserver]#

conf-make should contain the name of the GNU Make command on your system. It defaults to - gmake. Verify that gmake is installed:

[root@yourserver aolserver]# gmake -v
-GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
-Built for i386-redhat-linux-gnu
-Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
-        Free Software Foundation, Inc.
-This is free software; see the source for copying conditions.
-There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
-PARTICULAR PURPOSE.
-
-Report bugs to <bug-make@gnu.org>.
-
-[root@yourserver aolserver]# 

If you don't get similar results, including an equal or higher version number to 3.79.1, install gmake or check your aliases.

Set an environment variable that the nspostgres driver - Makefile needs to compile correctly and run conf, which compiles AOLserver and the default modules and installs them.

[root@yourserver aolserver]# export POSTGRES=/usr/local/pgsql; ./conf
+          gmake.

Set an environment variable that the nspostgres driver + Makefile needs to compile correctly and run + conf, which compiles + AOLserver, the default modules, and the database driver, and installs them.

[root@yourserver aolserver]# export POSTGRES=/usr/local/pgsql; ./conf
 Building in /usr/local/aolserver
 with the following modules:
 aolserver
@@ -73,18 +66,26 @@
 	  communicate with the database.  There is one script each for
 	  Oracle and PostGreSQL.  They don't conflict, so if you plan
 	  to use both databases, install both.

  • Oracle

    [root@yourserver aolserver]# cd /usr/local/aolserver/bin
    -[root@yourserver bin]# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle
    +[root@yourserver bin]# cp /tmp/openacs-4.6.3/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle
     [root@yourserver bin]# chmod 750 nsd-oracle
     [root@yourserver bin]#
     
    cd /usr/local/aolserver/bin
    -cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle
    +cp /tmp/openacs-4.6.3/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle
     chmod 750 nsd-oracle
  • PostGreSQL

    [root@yourserver aolserver]# cd /usr/local/aolserver/bin
    -[root@yourserver bin]# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres
    +[root@yourserver bin]# cp /tmp/openacs-4.6.3/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres
     [root@yourserver bin]# chmod 755 nsd-postgres
     [root@yourserver bin]#
     
    cd /usr/local/aolserver/bin
    -cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres
    -chmod 755 nsd-postgres
  • OPTIONAL - 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 be different for each server service, you won't need those instructions until later. You will need the nsopenssl tarball in /tmp.

    [root@yourserver bin]# cd /usr/local/src/aolserver
    +cp /tmp/openacs-4.6.3/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres
    +chmod 755 nsd-postgres
  • OPTIONAL - 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 + be different for each server service, you won't need those instructions until + later. You will need 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]# cd nsopenssl-2.1
     [root@yourserver nsopenssl-2.1]# make OPENSSL=/usr/local/ssl
    @@ -99,12 +100,14 @@
     cd nsopenssl-2.1 
     make OPENSSL=/usr/local/ssl 
     cp nsopenssl.so /usr/local/aolserver/bin 
    -cp https.tcl /usr/local/aolserver/modules/tcl/
  • OPTIONAL - install OpenFTS. If you want full text search, +cp https.tcl /usr/local/aolserver/modules/tcl/

    For Debian (more + information):

    apt-get install libssl-dev
    +make OPENSSL=/usr/lib/ssl
  • OPTIONAL - install OpenFTS. If you want full text search, and you are running PostGreSQL, install this module to support FTS. You will need the openfts tarball in /tmp.

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

      [root@yourserver root]# su - postgres
      -[postgres@yourserver pgsql]$ cd /usr/local/src/postgresql-7.2.3/contrib/tsearch/
      +[postgres@yourserver pgsql]$ cd /usr/local/src/postgresql-7.2.4/contrib/tsearch/
       [postgres@yourserver tsearch]$ make
       sed 's,MODULE_PATHNAME,$libdir/tsearch,g' tsearch.sql.in >tsearch.sql
       /usr/bin/flex  -8 -Ptsearch_yy -o'parser.c' parser.l
      @@ -121,7 +124,7 @@
       
       [root@yourserver root]#
       
      su - postgres
      -cd /usr/local/src/postgresql-7.2.3/contrib/tsearch
      +cd /usr/local/src/postgresql-7.2.4/contrib/tsearch
       make
       make install
       exit
    2. Unpack the OpenFTS tarball and compile and install @@ -156,8 +159,8 @@ make cp nsfts.so /usr/local/aolserver/bin

    3. Build some supplemental modules.

      [root@yourserver aolserver]# cd ..
      -[root@yourserver Search-OpenFTS-tcl-0.3.2]# cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.2.3/contrib
      -[root@yourserver Search-OpenFTS-tcl-0.3.2]# cd /usr/local/src/postgresql-7.2.3/contrib/pgsql_contrib_openfts
      +[root@yourserver Search-OpenFTS-tcl-0.3.2]# cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.2.4/contrib
      +[root@yourserver Search-OpenFTS-tcl-0.3.2]# cd /usr/local/src/postgresql-7.2.4/contrib/pgsql_contrib_openfts
       [root@yourserver pgsql_contrib_openfts]# make
       sed 's,MODULE_PATHNAME,$libdir/openfts,g' openfts.sql.in >openfts.sql
       gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -fpic -I. -I../../src/include   -c -o openfts.o openfts.c
      @@ -171,8 +174,8 @@
       [postgres@yourserver pgsql_contrib_openfts]$ exit
       [root@yourserver pgsql_contrib_openfts]#
       
      cd ..
      -cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.2.3/contrib
      -cd /usr/local/src/postgresql-7.2.3/contrib/pgsql_contrib_openfts
      +cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.2.4/contrib
      +cd /usr/local/src/postgresql-7.2.4/contrib/pgsql_contrib_openfts
       make
       su postgres
       make install
      @@ -290,4 +293,4 @@
       cd analog-5.31
       make
       cd ..
      -mv analog-5.31 /usr/share/
    ($Id$)
  • View comments on this page at openacs.org
    +mv analog-5.31 /usr/share/
    ($Id$)
    View comments on this page at openacs.org
    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 -r1.6.2.7 -r1.6.2.8 --- openacs-4/packages/acs-core-docs/www/apm-design.html 29 Apr 2003 05:58:33 -0000 1.6.2.7 +++ openacs-4/packages/acs-core-docs/www/apm-design.html 4 May 2003 06:30:02 -0000 1.6.2.8 @@ -89,7 +89,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 -r1.1.2.6 -r1.1.2.7 --- openacs-4/packages/acs-core-docs/www/backup-recovery.html 29 Apr 2003 05:58:33 -0000 1.1.2.6 +++ openacs-4/packages/acs-core-docs/www/backup-recovery.html 4 May 2003 06:30:02 -0000 1.1.2.7 @@ -47,7 +47,7 @@ unneccesary and has complicated permissions. Make sure that you are using the cron job to back up the database to a file in /web/service0/database-backup so that the tar command will include the database.

    [root@yourserver root]# su - service0
     [service0@yourserver service0]$ tar -cpsj --exclude /web/service0/etc/daemontools/supervise --file /tmp/service0-backup.tar.bz2 /web/service0/ 
     tar: Removing leading `/' from member names
    -[service0@yourserver service0]$

    Testing

    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.

    [root@yourserver root]# svc -d /service/service0
    +[service0@yourserver service0]$

    Testing

    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.

    [root@yourserver root]# svc -d /service/service0
     [root@yourserver root]# mv /web/service0/ /web/service0.lost
     [root@yourserver root]# rm /service/service0
     rm: remove symbolic link `/service/service0'? y
    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 -r1.8.2.8 -r1.8.2.9
    --- openacs-4/packages/acs-core-docs/www/docbook-primer.html	29 Apr 2003 05:58:33 -0000	1.8.2.8
    +++ openacs-4/packages/acs-core-docs/www/docbook-primer.html	4 May 2003 06:30:02 -0000	1.8.2.9
    @@ -32,7 +32,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.
    @@ -53,7 +53,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 @@ -99,7 +99,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
      @@ -123,20 +123,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 the section called “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.

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

    - + Inside this container your document will be split up into <sect2>'s, each with the same requirements - id and xreflabel @@ -160,7 +160,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>. @@ -170,12 +170,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:
     
    @@ -213,7 +213,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 @@ -234,7 +234,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>, @@ -260,7 +260,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 @@ -305,7 +305,7 @@ </variablelist>

    Tables

    - + DocBook supports several types of tables, but in most cases, the <informaltable> is enough: @@ -342,7 +342,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/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/index.html,v diff -u -r1.6.2.8 -r1.6.2.9 --- openacs-4/packages/acs-core-docs/www/index.html 29 Apr 2003 05:58:33 -0000 1.6.2.8 +++ openacs-4/packages/acs-core-docs/www/index.html 4 May 2003 06:30:02 -0000 1.6.2.9 @@ -1,2 +1,2 @@ -OpenACS Documentation

    OpenACS Documentation


    Table of Contents

    I. OpenACS For Everyone
    1. High level information: What is OpenACS?
    Overview
    OpenACS 4.6.3 Release Notes
    II. Administrator's Guide
    2. Prerequisite Software
    Individual Programs
    3. Installing on Unix/Linux
    Overview
    Install Linux and supporting software
    Install Oracle 8.1.7
    Install PostgreSQL 7.2.3
    Install AOLserver 3.3oacs1
    Install OpenACS 4.6.3
    Credits
    4. Installing on Windows
    OpenACS Installation Guide for Windows2000
    5. Installing on a Macintosh
    OpenACS Installation Guide for Mac OS X
    6. Upgrading
    Support for upgrades.
    Upgrading from OpenACS 4.5
    7. Maintenance
    Hosting Web Sites
    Database Management
    Backup and Recovery
    A. Install Red Hat 8.0
    III. For OpenACS Package Developers
    8. Development Tutorial
    Creating a Package
    Setting Up Database Objects
    Creating Web Pages
    Debugging and Automated Testing
    Advanced Topics
    9. Development Reference
    OpenACS 4.6.3 Packages
    OpenACS 4.6.3 Data Models and the Object System
    The Request Processor
    The OpenACS Database Access API
    Using Templates in OpenACS 4.6.3
    Groups, Context, Permissions
    Writing OpenACS 4.6.3 Application Pages
    Parties in OpenACS 4.6.3
    OpenACS 4.x Permissions Tediously Explained
    Object Identity
    Programming with AOLserver
    10. Engineering Standards
    DocBook and Documentation
    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
    IV. For OpenACS Platform Developers
    11. 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 4.6.3 Package Manager Requirements
    OpenACS 4.6.3 Package Manager Design
    Database Access API
    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

    List of Tables

    9.1.
    9.2.
    9.3.
    9.4.
    9.5.
    9.6.
    9.7.
    9.8.
    9.9.
    9.10.
    9.11.
    9.12.
    View comments on this page at openacs.org
    +OpenACS Documentation

    OpenACS Documentation


    Table of Contents

    I. OpenACS For Everyone
    1. High level information: What is OpenACS?
    Overview
    OpenACS 4.6.3 Release Notes
    II. Administrator's Guide
    2. Prerequisite Software
    Individual Programs
    3. Installing on Unix/Linux
    Overview
    Install Linux and supporting software
    Install Oracle 8.1.7
    Install PostGreSQL 7.2.4
    Install AOLserver 3.3oacs1
    Install OpenACS 4.6.3
    Credits
    4. Installing on Windows
    OpenACS Installation Guide for Windows2000
    5. Installing on a Macintosh
    OpenACS Installation Guide for Mac OS X
    6. Upgrading
    Support for upgrades.
    Upgrading from OpenACS 4.5
    7. Maintenance
    Hosting Web Sites
    Database Management
    Backup and Recovery
    A. Install Red Hat 8.0
    III. For OpenACS Package Developers
    8. Development Tutorial
    Creating a Package
    Setting Up Database Objects
    Creating Web Pages
    Debugging and Automated Testing
    Advanced Topics
    9. Development Reference
    OpenACS 4.6.3 Packages
    OpenACS 4.6.3 Data Models and the Object System
    The Request Processor
    The OpenACS Database Access API
    Using Templates in OpenACS 4.6.3
    Groups, Context, Permissions
    Writing OpenACS 4.6.3 Application Pages
    Parties in OpenACS 4.6.3
    OpenACS 4.x Permissions Tediously Explained
    Object Identity
    Programming with AOLserver
    10. Engineering Standards
    DocBook and Documentation
    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
    IV. For OpenACS Platform Developers
    11. 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 4.6.3 Package Manager Requirements
    OpenACS 4.6.3 Package Manager Design
    Database Access API
    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

    List of Tables

    9.1.
    9.2.
    9.3.
    9.4.
    9.5.
    9.6.
    9.7.
    9.8.
    9.9.
    9.10.
    9.11.
    9.12.
    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 -r1.1.2.6 -r1.1.2.7 --- openacs-4/packages/acs-core-docs/www/individual-programs.html 29 Apr 2003 05:58:33 -0000 1.1.2.6 +++ openacs-4/packages/acs-core-docs/www/individual-programs.html 4 May 2003 06:30:02 -0000 1.1.2.7 @@ -72,7 +72,8 @@ work for binary files is available at sourceforge.net

  • The patch that makes AOLserver respect the - -g flag is available at sourceforge.net + -g flag is available at + sourceforge.net

  • AolServer startup wrapper Version 1, REQUIRED.�This file automates the startup of AOLserver. You need it to run AOLserver.

  • nsopenssl 2.1, OPTIONAL.�Provides SSL capabilities for AOLserver. It requires @@ -81,9 +82,7 @@ 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 DNS values, and produces a report. You need this if you - want to see how much traffic your site is getting.

  • Analog configuration file, OPTIONAL.�This file is an Analog configuration file set up for a standard - OpenACS installation. You need this file if you are using - Analog.

  • Database.�The data on your site (for example, user names and passwords, + 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. OpenACS seperates the database with an abstraction layer, which means that several different databases all function @@ -104,18 +103,13 @@ restarts that software if it fails. On Linux, we recommend using Daemontools to control AOLserver and qmail.

  • Mail Transport Agent.�A Mail Transport Agent is a program that handles all + automatically restarted if they fail.

  • Mail Transport Agent.�A Mail Transport Agent is a program that handles all 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.

    View comments on this page at openacs.org
    + to production, or get or contribute development code from openacs.org.

  • 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 -r1.7.2.7 -r1.7.2.8 --- openacs-4/packages/acs-core-docs/www/install-overview.html 29 Apr 2003 05:58:33 -0000 1.7.2.7 +++ openacs-4/packages/acs-core-docs/www/install-overview.html 4 May 2003 06:30:02 -0000 1.7.2.8 @@ -74,7 +74,7 @@ The basic steps to getting OpenACS up and running are:

    1. Install an OS

    2. Install a webserver (AOLServer)

    3. Install a database (Oracle or PostgreSQL)

    4. Install a database driver (allows the webserver to talk to the database) -

    5. Start the OpenACS installer, which will configure a database instance..

    How to use this guide

    How to use this guide

  • 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 @@ -60,7 +60,7 @@ 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 @@ -81,9 +81,9 @@ 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,
    @@ -96,7 +96,7 @@ 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),�
    @@ -124,7 +124,7 @@

  • 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. 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 @@ -153,4 +153,32 @@ 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]#

    View comments on this page at openacs.org
    +[root@yourserver root]#
  • 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
    +--20:39:00--  http://updates.redhat.com/7.1/en/os/i686/kernel-2.4.18-27.7.x.i686.rpm
    +           => `kernel-2.4.18-27.7.x.i686.rpm'
    +Resolving updates.redhat.com... done.
    +Connecting to updates.redhat.com[66.187.232.52]:80... connected.
    +HTTP request sent, awaiting response... 200 OK
    +Length: 12,736,430 [application/x-rpm]
    +
    +100%[======================================>] 12,736,430    78.38K/s    ETA 00:00
    +
    +20:41:39 (78.38 KB/s) - `kernel-2.4.18-27.7.x.i686.rpm' saved [12736430/12736430]
    +
    +root@yourserver tmp]# rpm -Uvh kernel-2.4.18-27.7.x.i686.rpm
    +warning: kernel-2.4.18-27.7.x.i686.rpm: V3 DSA signature: NOKEY, key ID db42a60e
    +Preparing...                ########################################### [100%]
    +   1:kernel                 ########################################### [100%]
    +[root@yourserver tmp]# reboot
    +
    +Broadcast message from root (pts/0) (Sat May  3 20:46:39 2003):
    +
    +The system is going down for reboot NOW!
    +[root@yourserver tmp]#
    +
    cd /tmp
    +wget http://updates.redhat.com/7.1/en/os/i686/kernel-2.4.18-27.7.x.i686.rpm
    +rpm -Uvh kernel-2.4.18-27.7.x.i686.rpm
    +reboot
  • View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/linux-installation.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/linux-installation.html,v diff -u -r1.1.2.6 -r1.1.2.7 --- openacs-4/packages/acs-core-docs/www/linux-installation.html 29 Apr 2003 05:58:33 -0000 1.1.2.6 +++ openacs-4/packages/acs-core-docs/www/linux-installation.html 4 May 2003 06:30:02 -0000 1.1.2.7 @@ -3,9 +3,9 @@ by Joel Aufrecht
    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

    Paths and Users

    Figure�3.1.�Assumptions in this section

    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/web/service0
    Location of source code tarballs for new software/tmp
    The OpenACS tarball contains some files which +

    Paths and Users

    Figure�3.1.�Assumptions in this section

    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/web/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-4.6.2/packages/acs-core-docs/www/files
    Database backup directory/web/service0/database-backup
    Service config files/web/service0/etc
    Service log files/web/service0/log
    Compile directory/usr/local/src
    PostGreSQL directory/usr/local/pgsql
    AOLServer directory/usr/local/aolserver

    + files are located at:

    /tmp/openacs-4.6.3/packages/acs-core-docs/www/files
    Database backup directory/web/service0/database-backup
    Service config files/web/service0/etc
    Service log files/web/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 @@ -24,28 +24,29 @@ you start in. Text instructions always precede the commands they refer to.

    Unpack the OpenACS tarball

    The OpenACS tarball contains sample configuration files for some of the packages listed below. In order to access those files, unpack the tarball now.

    [root@yourserver root]# cd /tmp
    -[root@yourserver tmp]# tar xzf openacs-4.6.2.tgz
    +[root@yourserver tmp]# tar xzf openacs-4.6.3.tgz
     
    cd /tmp
    -tar xzf openacs-4.6.2.tgz

    Initialize CVS (OPTIONAL)

    CVS is a source control system. Create and prepare a +tar xzf openacs-4.6.3.tgz

    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]#
     
    mkdir /cvsroot
    -cvs -d /cvsroot init

    Add PSGML commands to emacs init file (OPTIONAL)

    +cvs -d /cvsroot init

    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 fixes the backspace -> help mis-mapping that often occurs in - terminals.

    [root@yourserver tmp]# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/emacs.txt /etc/skel/.emacs
    +      terminals.

    [root@yourserver tmp]# cp /tmp/openacs-4.6.3/packages/acs-core-docs/www/files/emacs.txt /etc/skel/.emacs
    +cp: overwrite `/etc/skel/.emacs'? y
     [root@yourserver tmp]# 

    Install Daemontools (OPTIONAL)

    Daemontools is a collection of programs for controlling other processes. We use daemontools to run and monitor AOLServer. It is 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 + 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.)

            [root@yourserver root]# mkdir -p /package
            +              to be made as well.)

            (If you are using Red Hat 9.0, you need to 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
             [root@yourserver root]# chmod 1755 /package/
             [root@yourserver root]# cd /package/
             [root@yourserver package]# tar xzf /tmp/daemontools-0.76.tar.gz
            @@ -68,10 +69,11 @@
             root     13294  0.0  0.1  1352  272 ?        S    09:51   0:00 svscan /service
             root     13295  0.0  0.0  1304  208 ?        S    09:51   0:00 readproctitle service errors: .......................................
             [root@yourserver root]#
          • Install a script to grant non-root users permission to - control daemontools services.

            [root@yourserver root]# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup
            +        control daemontools services.

            [root@yourserver root]# cp /tmp/openacs-4.6.3/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup
             [root@yourserver root]# chmod 755 /usr/local/bin/svgroup
            -
            cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup 
            -chmod 755 /usr/local/bin/svgroup

      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.

        [root@yourserver root]# cd /usr/local/src
        +
        cp /tmp/openacs-4.6.3/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup 
        +chmod 755 /usr/local/bin/svgroup

      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.

        [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 ucspi-tcp-0.88]# make
        @@ -93,7 +95,7 @@
         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 @@ -104,10 +106,11 @@ Unless this mail is addressed to the same machine, qmail thinks that it's an attempt to relay mail, and rejects it. So these two commands set up an exception so that any mail sent from 127.0.0.1 is allowed to -send outgoing mail.

        [root@yourserver ucspi-tcp-0.88]# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp
        +send outgoing mail.

        [root@yourserver ucspi-tcp-0.88]# cp /tmp/openacs-4.6.3/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-4.6.2/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.�

        First, set up the standard supporting users and build the binaries:

        [root@yourserver root]# cd /usr/local/src
        +
        cp /tmp/openacs-4.6.3/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp 
        +tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp 
      3. Install Qmail.�

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

        (If you are using Red Hat 9.0, you need to 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]# mkdir /var/qmail
         [root@yourserver src]# groupadd nofiles
        @@ -140,7 +143,7 @@
         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
        +make setup check

        Replace sendmail with qmail's wrapper.

        [root@yourserver qmail-1.03]# rm -f /usr/bin/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 
        @@ -162,13 +165,13 @@
         
        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-4.6.2/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc
        +[root@yourserver alias]# cp /tmp/openacs-4.6.3/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc
         [root@yourserver alias]# chmod 755 /var/qmail/rc
         [root@yourserver alias]# 
         
        echo "./Maildir" > /var/qmail/bin/.qmail 
        -cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc 
        +cp /tmp/openacs-4.6.3/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc 
         chmod 755 /var/qmail/rc 
         

        Set up the skeleton directory so that new users will be configured for qmail.

        [root@localhost root]# /var/qmail/bin/maildirmake /etc/skel/Maildir
        @@ -183,14 +186,16 @@
         [1] 15865
         [root@yourserver alias]#
         
        /usr/local/bin/tcpserver -x /etc/tcp.smtp.cdb -v -u 502 -g 501 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 & 
        -csh -cf '/var/qmail/rc &'

        Verify that seven different qmail threads are running:

        [root@yourserver alias]# ps -auxw | grep qmail
        -qmaild   15862  0.0  0.1  1380  452 pts/1    S    10:26   0:00 /usr/local/bin/tcpserver -x /etc/tcp.smtp.cdb -v -u 502 -g 501 0 smtp
        -root     15863  0.0  0.1  1332  412 pts/1    S    10:26   0:00 /var/qmail/bin/splogger smtpd 3
        -qmails   15865  0.0  0.1  1360  316 pts/1    S    10:26   0:00 qmail-send
        -qmaill   15866  0.0  0.1  1328  408 pts/1    S    10:26   0:00 splogger qmail
        -root     15867  0.0  0.1  1328  268 pts/1    S    10:26   0:00 qmail-lspawn ./Maildir/
        -qmailr   15868  0.0  0.1  1324  268 pts/1    S    10:26   0:00 qmail-rspawn
        -qmailq   15869  0.0  0.1  1320  276 pts/1    S    10:26   0:00 qmail-clean
        +csh -cf '/var/qmail/rc &'

        Verify that seven different qmail threads are running:

        [root@yourserver alias]# ps -auxw | grep
        +          qmail
        +qmaild    4269  0.0  0.3  1384  452 pts/0    S    21:21   0:00 [tcpserver]
        +root      4270  0.0  0.3  1340  412 pts/0    S    21:21   0:00 /var/qmail/bin/splogger smtpd 3
        +qmails    4272  0.1  0.2  1364  320 pts/0    S    21:21   0:00 [qmail-send]
        +qmaill    4273  0.0  0.3  1332  408 pts/0    S    21:21   0:00 [splogger]
        +root      4274  0.0  0.2  1332  272 pts/0    S    21:21   0:00 qmail-lspawn ./Maildir/
        +qmailr    4275  0.0  0.2  1328  272 pts/0    S    21:21   0:00 [qmail-rspawn]
        +qmailq    4276  0.0  0.2  1324  280 pts/0    S    21:21   0:00 [qmail-clean]
        +root      4278  0.0  0.5  3280  632 pts/0    S    21:21   0:00 grep qmail
         [root@yourserver alias]#

        Further verify by sending and receiving email. Incoming mail for root is stored in /var/qmail/alias/Maildir. If it worked, make it permanent by putting the same commands in your startup scripts. (These instructions put the commands in rc.local, which means that they'll be run once, on boot. There will be no monitoring and no interface to start and stop and check status. We ought instead to either use full init scripts or daemontools.)

        [root@yourserver alias]# echo "/usr/local/bin/tcpserver -x /etc/tcp.smtp.cdb -v -u 502 -g 501 0 smtp /var/qmail/bin/qmail-smtpd \ " >> /etc/rc.local
         [root@yourserver alias]# echo "2>&1 | /var/qmail/bin/splogger smtpd 3 &  " >> /etc/rc.local
         [root@yourserver alias]# echo "csh -cf '/var/qmail/rc &' " >> /etc/rc.local
        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 -r1.8.2.7 -r1.8.2.8
        --- openacs-4/packages/acs-core-docs/www/objects.html	29 Apr 2003 05:58:33 -0000	1.8.2.7
        +++ openacs-4/packages/acs-core-docs/www/objects.html	4 May 2003 06:30:02 -0000	1.8.2.8
        @@ -81,7 +81,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  
        @@ -141,7 +141,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 @@ -166,7 +166,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: @@ -214,7 +214,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 -r1.6.2.9 -r1.6.2.10 --- openacs-4/packages/acs-core-docs/www/openacs.html 30 Apr 2003 02:55:29 -0000 1.6.2.9 +++ openacs-4/packages/acs-core-docs/www/openacs.html 4 May 2003 06:30:02 -0000 1.6.2.10 @@ -3,7 +3,7 @@ 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 +

        Set up the file system for an OpenACS Service

        1. The reference install stores all OpenACS services in /web, 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 /web
          @@ -72,8 +72,8 @@
           
           [root@yourserver root]#
        2. 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 /web
          -[service0@yourserver web]$ tar xzf /tmp/openacs-4.6.2.tgz
          -[service0@yourserver web]$ mv openacs-4.6.2 service0
          +[service0@yourserver web]$ tar xzf /tmp/openacs-4.6.3.tgz
          +[service0@yourserver web]$ mv openacs-4.6.3 service0
           [service0@yourserver web]$ chmod -R 700 service0
           [service0@yourserver web]$ ls -al
           total 3
          @@ -86,10 +86,10 @@
           [root@yourserver root]#
           
          su - service0
           cd /web
          -tar xzf /tmp/openacs-4.6.2.tgz
          -mv openacs-4.6.2 service0
          +tar xzf /tmp/openacs-4.6.3.tgz
          +mv openacs-4.6.3 service0
           chmod -R 700 service0/
          -exit
        3. Add the Service to CVS - OPTIONAL.�If this is a development server, you may want to add +exit

      4. Add the Service to CVS - OPTIONAL.�If this is a development server, you may want to 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
          @@ -108,11 +108,11 @@
                       plus this string,
                       i.e.
                       /cvsroot/service0.
          -            "OpenACS" is the vendor tag, and "openacs-4-6-2" is the
          +            "OpenACS" is the vendor tag, and "openacs-4-6-3" is the
                       release tag.  These tags will be useful in upgrading and
                       branching.  -m sets the version comment.

          [root@yourserver root]# su - service0
           [service0@yourserver service0]$ cd /web/service0
          -[service0@yourserver service0]$ cvs import -m "initial install" service0 OpenACS openacs-4-6-2
          +[service0@yourserver service0]$ cvs import -m "initial install" service0 OpenACS openacs-4-6-3
           N service0/license.txt
           N service0/readme.txt
           (many lines omitted)
          @@ -123,7 +123,7 @@
           [service0@yourserver service0]$
           
          su - service0
           cd /web/service0
          -cvs import -m "initial install" service0 OpenACS openacs-4-6-2

          Move the original directory to a temporary location, and check out the cvs repository in its place. If the service starts correctly, come back and remove the temporary copy of the uploaded files.

          [service0@yourserver service0]$ cd ..
          +cvs import -m "initial install" service0 OpenACS openacs-4-6-3

          Move the original directory to a temporary location, and check out the cvs repository in its place. If the service starts correctly, come back and remove the temporary copy of the uploaded files.

          [service0@yourserver service0]$ cd ..
           [service0@yourserver web]$ mv service0 service0.orig
           [service0@yourserver web]$ cvs checkout service0
           cvs checkout: Updating service0
          @@ -294,25 +294,25 @@
           CREATE DATABASE
           [service0@yourserver service0]$
           
          su - service0
          -createdb service0
        2. 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 service0
        3. Add Full Text Search Support - OPTIONAL

          If you are installing Full Text Search, add required packages to the new database.

          [service0@yourserver service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.3/contrib/tsearch/tsearch.sql
          +createdb service0
        4. 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
        5. Add Full Text Search Support - OPTIONAL

          If you are installing Full Text Search, add required packages to the new database.

          [service0@yourserver service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.4/contrib/tsearch/tsearch.sql
           BEGIN
           CREATE
           (many lines omitted)
           INSERT 0 1
           COMMIT
          -[service0@yourserver service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.3/contrib/pgsql_contrib_openfts/openfts.sql
          +[service0@yourserver service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.4/contrib/pgsql_contrib_openfts/openfts.sql
           CREATE
           CREATE
           [service0@yourserver service0]$
          -
          /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.3/contrib/tsearch/tsearch.sql
          -/usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.3/contrib/pgsql_contrib_openfts/openfts.sql
        6. [service0@yourserver service0]$ exit
          +
          /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.4/contrib/tsearch/tsearch.sql
          +/usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.4/contrib/pgsql_contrib_openfts/openfts.sql
        7. [service0@yourserver service0]$ exit
           logout
           
           [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. Copy it to the /web/service0/etc directory and open it in an editor to adjust the parameters.

        [root@yourserver root]# su - service0
        +	  need to configure a virtual server.  The Reference Platform uses a configuration file included in the OpenACS tarball.  Copy it to the /web/service0/etc directory and open it in an editor to adjust the parameters.

        [root@yourserver root]# su - service0
         [service0@yourserver service0]$ cd /web/service0/etc
         [service0@yourserver etc]# cp /web/service0/packages/acs-core-docs/www/files/config.tcl.txt config.tcl
         [service0@yourserver etc]# emacs config.tcl
        @@ -361,7 +361,7 @@
         S/Sd2MYA0JVmQuIt5bYowXR1KYKDka1d3DUgtoVTiFepIRUrMkZlCli08mWVjE6T
         (11 lines omitted)
         1MU24SHLgdTfDJprEdxZOnxajnbxL420xNVc5RRXlJA8Xxhx/HBKTw==
        ------END RSA PRIVATE KEY-----

    Verify AOLserver startup

    1. +-----END RSA PRIVATE KEY-----

    Verify AOLserver startup

    1. Kill any current running AOLserver processes and start a new one. (Note, if you are using Oracle, rather than PostgreSQL, replace nsd-postgres with @@ -520,7 +520,7 @@ line, click Install.

  • Restart the service.

    [service0@yourserver service0]$ svc -t /service/service0
    -[service0@yourserver service0]$
  • Test FTS. (INCOMPLETE). Add a package that supports search,like "note," add some content, and search for it.

  • Back up the New Service - OPTIONAL

    This is a very good time to back the service, even if it's not a production service. Making a backup now lets you roll back to this initial, clean setup at any point in the future, without repeating the install process. A full OpenACS service backup includes everything in the /web/service0/ directory. At this point it's probably sufficient to back up just the database, because you can recover the files from a tarball.

    Note that, if you did the CVS options in this document, the /web/service0/etc directory is not included in cvs and you may want to add it.

    Back up the New Service - OPTIONAL

    This is a very good time to back the service, even if it's not a production service. Making a backup now lets you roll back to this initial, clean setup at any point in the future, without repeating the install process. A full OpenACS service backup includes everything in the /web/service0/ directory. At this point it's probably sufficient to back up just the database, because you can recover the files from a tarball.

    Note that, if you did the CVS options in this document, the /web/service0/etc directory is not included in cvs and you may want to add it.

    Set up Automated Backup - OPTIONAL

    Backup can encompass all files in /web/service0. For a development server, putting the files in cvs is sufficient. (It's important then to back up the cvs repository!)

    A quick way to automate database backup is a cron job. This is not recommended for production and is not part of the Reference Platform, because it is not cross-platform and can fail silently. More thorough methods are documented in the section called “Backup Strategy”

    [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 /web/service0/database-backup/service0_$(date +%Y-%m-%d).dmp service0

    If you plan to back up the whole /web/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 /web/service0/database-backup/service0_nightly.dmp service0

    Set up Log Analysis Reports - OPTIONAL

    Analog is a program with processes webserver access logs, +ls -al /web/service0/database-backup

  • Oracle - INCOMPLETE.�

  • Set up Automated Backup - OPTIONAL

    Backup can encompass all files in /web/service0. For a development server, putting the files in cvs is sufficient. (It's important then to back up the cvs repository!)

    A quick way to automate database backup is a cron job. This is not recommended for production and is not part of the Reference Platform, because it is not cross-platform and can fail silently. More thorough methods are documented in the section called “Backup Strategy”

    [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 /web/service0/database-backup/service0_$(date +%Y-%m-%d).dmp service0

    If you plan to back up the whole /web/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 /web/service0/database-backup/service0_nightly.dmp service0

    Set up Log Analysis Reports - OPTIONAL

    Analog is a program with processes webserver access logs, performs DNS lookup, and outputs HTML reports. Analog should already be installed. A modified configuration file is included in @@ -561,4 +561,4 @@ [root@yourserver root]# emacs /etc/cron.daily/analog

    Put this into the file:

    #!/bin/sh
     
    -/usr/share/analog-5.31/analog -G -g/web/service0/etc/analog.cfg
    [root@yourserver root]# chmod 755 /etc/cron.daily/analog

    Test it by running the script.

    [root@yourserver root]# sh /etc/cron.daily/analog

    Browse to http://yourserver.test/log/traffic.html

    Next Steps

    ($Id$)
    View comments on this page at openacs.org
    +/usr/share/analog-5.31/analog -G -g/web/service0/etc/analog.cfg
    [root@yourserver root]# chmod 755 /etc/cron.daily/analog

    Test it by running the script.

    [root@yourserver root]# sh /etc/cron.daily/analog

    Browse to http://yourserver.test/log/traffic.html

    Next Steps

    ($Id$)
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/oracle.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/oracle.html,v diff -u -r1.8.2.9 -r1.8.2.10 --- openacs-4/packages/acs-core-docs/www/oracle.html 29 Apr 2003 05:58:34 -0000 1.8.2.9 +++ openacs-4/packages/acs-core-docs/www/oracle.html 4 May 2003 06:30:02 -0000 1.8.2.10 @@ -1,5 +1,5 @@ -Install Oracle 8.1.7

    Install Oracle 8.1.7

    +Install Oracle 8.1.7

    Install Oracle 8.1.7

    by Vinod Kurup
    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. @@ -1274,4 +1274,4 @@ authorized to do a connect internal within svrmgrl to gain full system - access to the Oracle system.

    ($Id$)
    View comments on this page at openacs.org
    + access to the Oracle system.
    ($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 -r1.1.2.8 -r1.1.2.9 --- openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 29 Apr 2003 05:58:34 -0000 1.1.2.8 +++ openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 4 May 2003 06:30:03 -0000 1.1.2.9 @@ -86,7 +86,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�9.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�9.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 @@ -101,7 +101,7 @@

    Context Hierarchy

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

    Table�9.2.�

    A

    +

    Table�9.2.�

    A

    object_id=10

    B

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

    Table�9.3.�

    object_idcontext_id
    2010
    3010
    4020
    5020
    6030

    +

    Table�9.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�9.4.�

    objectgranteeprivilege
    AJoeread

    +

    Table�9.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�9.5.�

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

    +

    Table�9.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 @@ -204,7 +204,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�9.6.�


    +

    Table�9.6.�


    A
    object_id=10
    readable�by�Joe
    @@ -232,7 +232,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�9.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�9.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, @@ -241,7 +241,7 @@ privilege to which the first four privileges are tied. To give a more detailed example, the Bboard privileges are structured as follows. -

    Table�9.8.�

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

    +

    Table�9.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:

    @@ -287,7 +287,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
    @@ -371,7 +371,7 @@
         

    The acs_rels table entries would look like so: -

    Table�9.10.�

    rel_typeobject_oneobject_two
    +

    Table�9.10.�

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

    The relevant entries in the acs_rels look like so. -

    Table�9.11.�

    rel_typeobject_oneobject_two
    +

    Table�9.11.�

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

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

    Table�9.12.�

    object_idgrantee_idprivilege
    +

    Table�9.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 -r1.6.2.7 -r1.6.2.8 --- openacs-4/packages/acs-core-docs/www/postgres.html 29 Apr 2003 05:58:34 -0000 1.6.2.7 +++ openacs-4/packages/acs-core-docs/www/postgres.html 4 May 2003 06:30:03 -0000 1.6.2.8 @@ -1,30 +1,32 @@ -Install PostgreSQL 7.2.3

    Install PostgreSQL 7.2.3

    +Install PostGreSQL 7.2.4

    Install PostGreSQL 7.2.4

    by Vinod Kurup
    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.

    This page assumes you have downloaded postgresql to -/tmp/postgresql-7.2.3.tar.gz. If not, +

    Skip this section if you will run only Oracle.

    OpenACS 4.6.3 will run with PostGreSQL 7.2.x or 7.3.2. It + has not been fully tested with 7.3.2; 7.2.4 is the recommended + version of PostgreSQL to use.

    This page assumes you have downloaded postgresql to +/tmp/postgresql-7.2.4.tar.gz. If not, get it.

    1. Unpack PostGreSQL.

      [root@yourserver root]# cd /usr/local/src
      -[root@yourserver src]# tar xzf /tmp/postgresql-7.2.3.tar.gz
      +[root@yourserver src]# tar xzf /tmp/postgresql-7.2.4.tar.gz
       [root@yourserver src]# 
       
      cd /usr/local/src
      -tar xzf /tmp/postgresql-7.2.3.tar.gz
    2. Create the Postgres user.� +tar xzf /tmp/postgresql-7.2.4.tar.gz

    3. Create the Postgres user.� Create a user and group (if you haven't done so before) for PostgreSQL. This is the account that PostgreSQL will run as since it will not run as root. Since nobody will log in directly as that user, we'll leave the password blank.

      [root@yourserver src]# groupadd web
       [root@yourserver src]# useradd -g web -d /usr/local/pgsql postgres
       [root@yourserver src]# mkdir -p /usr/local/pgsql
      -[root@yourserver src]# chown -R postgres.web /usr/local/pgsql /usr/local/src/postgresql-7.2.3
      +[root@yourserver src]# chown -R postgres.web /usr/local/pgsql /usr/local/src/postgresql-7.2.4
       [root@yourserver src]# chmod 750 /usr/local/pgsql
       [root@yourserver src]#
       
      groupadd web
       useradd -g web -d /usr/local/pgsql postgres
       mkdir -p /usr/local/pgsql
      -chown -R postgres.web /usr/local/pgsql /usr/local/src/postgresql-7.2.3
      +chown -R postgres.web /usr/local/pgsql /usr/local/src/postgresql-7.2.4
       chmod 750 /usr/local/pgsql
    4. Set up postgres's environment variables. They are necessary for the executable to find its supporting libraries. For convenience, we'll simply append the necessary @@ -42,29 +44,29 @@ 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.2.3
      -[postgres@yourserver postgresql-7.2.3]$ ./configure
      +[postgres@yourserver pgsql]$ cd /usr/local/src/postgresql-7.2.4
      +[postgres@yourserver postgresql-7.2.4]$ ./configure
       creating cache ./config.cache
       checking host system type... i686-pc-linux-gnu
       (many lines omitted>
       linking ./src/makefiles/Makefile.linux to src/Makefile.port
       linking ./src/backend/port/tas/dummy.s to src/backend/port/tas.s
      -[postgres@yourserver postgresql-7.2.3]$ make all
      +[postgres@yourserver postgresql-7.2.4]$ make all
       make -C doc all
      -make[1]: Entering directory `/usr/local/src/postgresql-7.2.3/doc'
      +make[1]: Entering directory `/usr/local/src/postgresql-7.2.4/doc'
       (many lines omitted)
      -make[1]: Leaving directory `/usr/local/src/postgresql-7.2.3/src'
      +make[1]: Leaving directory `/usr/local/src/postgresql-7.2.4/src'
       All of PostgreSQL successfully made. Ready to install.
      -[postgres@yourserver postgresql-7.2.3]$ make install
      +[postgres@yourserver postgresql-7.2.4]$ make install
       make -C doc install
      -make[1]: Entering directory `/usr/local/src/postgresql-7.2.3/doc'
      +make[1]: Entering directory `/usr/local/src/postgresql-7.2.4/doc'
       (many lines omitted)
       Thank you for choosing PostgreSQL, the most advanced open source database
       engine.
       
      su - postgres
      -cd /usr/local/src/postgresql-7.2.3
      +cd /usr/local/src/postgresql-7.2.4
       ./configure
       make all
       make install
    5. Start PostgreSQL.� @@ -138,13 +140,13 @@ changes runlevels, postgresql goes to the appropriate state. Red Hat and Debian and SuSE each work a little differently so three sets of instructions are provided. -

      • Red Hat:

        [root@yourserver src]# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
        +	

        • Red Hat:

          [root@yourserver src]# cp /tmp/openacs-4.6.3/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
           [root@yourserver src]# chown root.root /etc/rc.d/init.d/postgresql
          -[root@yourserver src]# chmod 700 /etc/rc.d/init.d/postgresql
          +[root@yourserver src]# chmod 755 /etc/rc.d/init.d/postgresql
           [root@yourserver src]# 
          -
          cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
          +
          cp /tmp/openacs-4.6.3/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
           chown root.root /etc/rc.d/init.d/postgresql
          -chmod 700 /etc/rc.d/init.d/postgresql

          Test the script.

          [root@yourserver root]# service postgresql stop
          +chmod 755 /etc/rc.d/init.d/postgresql

          Test the script.

          [root@yourserver root]# service postgresql stop
           Stopping PostgreSQL: ok
           [root@yourserver root]# 

          If PostgreSQL successfully stopped, then use the following command to make sure that the script is run appropriately at boot @@ -159,11 +161,11 @@ [root@yourserver root]#

          chkconfig --add postgresql
           chkconfig --list postgresql
          -service postgresql start
      • Debian:

        root:~# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
        +service postgresql start
      • Debian:

        root:~# cp /tmp/openacs-4.6.3/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
         root:~# chown root.root /etc/init.d/postgresql
         root:~# chmod 700 /etc/init.d/postgresql
         root:~# 
        -cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
        +cp /tmp/openacs-4.6.3/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
         chown root.root /etc/init.d/postgresql
         chmod 700 /etc/init.d/postgresql

        Test the script

        root:~# /etc/init.d/postgresql stop
         Stopping PostgreSQL: ok
        @@ -191,7 +193,7 @@
                     rc.d/ part in each of the
                     following commands.
         
        -          

      root:~# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/postgresql.txt /etc/rc.d/init.d/postgresql
      +          

    root:~# cp /tmp/openacs-4.6.3/packages/acs-core-docs/www/files/postgresql.txt /etc/rc.d/init.d/postgresql
     root:~# chown root.root /etc/rc.d/init.d/postgresql
     root:~# chmod 700 /etc/rc.d/init.d/postgresql

    @@ -233,13 +235,32 @@ start on runlevel 2 unless you alter the above commands a little. This usually isn't a problem as Red Hat defaults to runlevel 3) -

    Learn more about PostgreSQL

    • +

    • Tune postgres. OPTIONAL.�The default values for PostGreSQL are very conservative; we can safely change some of them and improve performance.

      1. Change the kernel parameter for maximum shared memory + segment size to 128Mb:

        [root@yourserver root]# echo 134217728 >/proc/sys/kernel/shmmax
        +[root@yourserver root]#

        Make that change permanent by editing + emacs /etc/sysctl.conf to + add these lines at the end:

        # increase shared memory limit for postgres
        +kernel.shmmax = 134217728
      2. Edit the PostGreSQL config file, /usr/local/pgsql/data/postgresql.conf to use more memory. These values should improve performance in most cases. (More information)

        #       Shared Memory Size
        +#
        +shared_buffers = 15200      # 2*max_connections, min 16
         
        +#       Non-shared Memory Sizes
        +#
        +sort_mem = 32168            # min 32
        +
        +
        +#       Write-ahead log (WAL)
        +#
        +wal_files = 3               # range 0-64
        +checkpoint_segments = 3     # in logfile segments (16MB each), min 1
        +

        Restart postgres (service postgres restart) so that the changes take effect.

    Learn more about PostgreSQL

    • + Official PostgreSQL Docs

    • + Migrating from 7.0 to 7.1 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 -r1.8.2.7 -r1.8.2.8 --- openacs-4/packages/acs-core-docs/www/request-processor.html 29 Apr 2003 05:58:34 -0000 1.8.2.7 +++ openacs-4/packages/acs-core-docs/www/request-processor.html 4 May 2003 06:30:03 -0000 1.8.2.8 @@ -38,7 +38,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 -r1.1.2.5 -r1.1.2.6 --- openacs-4/packages/acs-core-docs/www/tutorial-advanced.html 29 Apr 2003 05:58:34 -0000 1.1.2.5 +++ openacs-4/packages/acs-core-docs/www/tutorial-advanced.html 4 May 2003 06:30:03 -0000 1.1.2.6 @@ -3,15 +3,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

      Delete with confirmation

      We need a way to delete records. We'll create a + "does this look right" confirm page

    • APM package dependencies

    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.
     
    @@ -71,7 +71,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 @@ -92,13 +92,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 -r1.1.2.5 -r1.1.2.6 --- openacs-4/packages/acs-core-docs/www/tutorial-database.html 29 Apr 2003 05:58:34 -0000 1.1.2.5 +++ openacs-4/packages/acs-core-docs/www/tutorial-database.html 4 May 2003 06:30:03 -0000 1.1.2.6 @@ -3,7 +3,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 samplenote/sql/ directory. All database scripts are database-specific and are thus in either the samplenote/sql/oracle or @@ -40,7 +40,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 samplenote-create.sql

    Paste this into the file and save and close.

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

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

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

    Paste this into the file and save and close.

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

    --
     -- packages/samplenote/sql/postgresql/samplenote-create.sql
     --
     -- @author rhs@mit.edu
    @@ -50,7 +50,7 @@
     --
     
     \i samplenote-table-create.sql
    -\i samplenote-functions-create.sql

    Create the file to create the database table.

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

    Paste this into the file and save and close.

    Figure�8.3.�Database Creation Script - table

    --
    +\i samplenote-functions-create.sql

    Create the file to create the database table.

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

    Paste this into the file and save and close.

    Figure�8.3.�Database Creation Script - table

    --
     -- packages/samplenote/sql/postgresql/samplenote-table-create.sql
     --
     -- @author rhs@mit.edu
    @@ -101,7 +101,7 @@
     end;' language 'plpgsql';
     select inline_0 ();
     drop function inline_0 ();
    -

    Create the file to create the functions used to manipulate records.

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

    Paste this into the file and save and close.

    Figure�8.4.�Database Creation Script - functions

    --
    +

    Create the file to create the functions used to manipulate records.

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

    Paste this into the file and save and close.

    Figure�8.4.�Database Creation Script - functions

    --
     -- packages/samplenote/sql/postgresql/samplenote-functions-create.sql
     --
     -- @author rhs@mit.edu
    @@ -196,7 +196,7 @@
     end;
     ' language 'plpgsql';
     

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

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

    Figure�8.5.�Database deletion script

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

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

    Figure�8.5.�Database deletion script

    -- packages/samplenote/sql/samplenote-drop.sql
     -- drop script
     --
     -- @author rhs@mit.edu
    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 -r1.1.2.5 -r1.1.2.6
    --- openacs-4/packages/acs-core-docs/www/tutorial-debug.html	29 Apr 2003 05:58:34 -0000	1.1.2.5
    +++ openacs-4/packages/acs-core-docs/www/tutorial-debug.html	4 May 2003 06:30:03 -0000	1.1.2.6
    @@ -3,7 +3,7 @@
         by Joel Aufrecht
    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

    Debugging

    PostgreSQL.�You can work directly with the database to do debugging +

    Debugging

    PostgreSQL.�You can work directly with the database to do debugging steps like looking directly at tables and testing stored procedures. Start emacs. Type M-x sql-postgres. Press enter for @@ -19,10 +19,10 @@ ?�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

    (Forthcoming.)

    View comments on this page at openacs.org
    + Search for a note.

    Write automated tests

    (Forthcoming.)

    View comments on this page at openacs.org
    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 -r1.1.2.4 -r1.1.2.5 --- openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 29 Apr 2003 05:58:34 -0000 1.1.2.4 +++ openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 4 May 2003 06:30:03 -0000 1.1.2.5 @@ -3,19 +3,19 @@ by Joel Aufrecht
    OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

    Overview

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

    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 can be installed, upgraded, and removed. It communicates with other packages through an API. This chapter walks you through the minimum steps to create a useful package, including writing documentation, setting up database tables and procedures, writing web pages, debugging, and automatic regression testing. -

    Before you begin

    You will need:

    • A computer with a working installation of OpenACS +

    Before you begin

    You will need:

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

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

    Figure�8.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 keysamplenote

    Use the APM to initialize a new package

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

    Figure�8.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 keysamplenote

    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 @@ -43,7 +43,7 @@

    This creates a package rooted at /web/service0/packages/samplenote. 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 @@ -65,7 +65,7 @@ click New.

    By mounting the package, we've caused all requests to http://yourserver.test:8000/note - to be satisfied from the files at /web/service0/packages/samplenote/www.

    Write the Requirements and Design Specs

    It's time to document. For the tutorial we'll use + to be satisfied from the files at /web/service0/packages/samplenote/www.

    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 /web/openacs-dev/packages/acs-core-docs/xml/docs/xml/package-documentation-template.xml @@ -115,7 +115,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 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 -r1.1.2.5 -r1.1.2.6 --- openacs-4/packages/acs-core-docs/www/tutorial-pages.html 29 Apr 2003 05:58:34 -0000 1.1.2.5 +++ openacs-4/packages/acs-core-docs/www/tutorial-pages.html 4 May 2003 06:30:03 -0000 1.1.2.6 @@ -3,7 +3,7 @@ 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 @@ -69,7 +69,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>

    Add files to APM

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

    Add files to APM

    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

    • Click Scan the packages/samplenote directory for additional files in thispackage

    • Click add checked files

    • On the list of files, on the @@ -79,7 +79,7 @@ loaded when they're added.) Watching an xql file causes the APM 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 pages are in the APM, 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:

    +        watch will last until the server is restarted.

    Now that the pages are in the APM, 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 
     
    @@ -88,7 +88,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 the section called “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 the section called “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 @@ -167,7 +167,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-install.html
    ===================================================================
    RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/unix-install.html,v
    diff -u -r1.6.2.6 -r1.6.2.7
    --- openacs-4/packages/acs-core-docs/www/unix-install.html	29 Apr 2003 05:58:34 -0000	1.6.2.6
    +++ openacs-4/packages/acs-core-docs/www/unix-install.html	4 May 2003 06:30:03 -0000	1.6.2.7
    @@ -1,2 +1,2 @@
     
    -Chapter�3.�Installing on Unix/Linux
    View comments on this page at openacs.org
    +Chapter�3.�Installing on Unix/Linux
    View comments on this page at openacs.org
    Index: openacs-4/packages/acs-core-docs/www/xml/index.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/index.xml,v diff -u -r1.8.2.3 -r1.8.2.4 --- openacs-4/packages/acs-core-docs/www/xml/index.xml 29 Apr 2003 05:58:49 -0000 1.8.2.3 +++ openacs-4/packages/acs-core-docs/www/xml/index.xml 4 May 2003 06:30:32 -0000 1.8.2.4 @@ -3,6 +3,8 @@ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ + + + + + - + 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 -r1.6.2.6 -r1.6.2.7 --- openacs-4/packages/acs-core-docs/www/xml/install-guide/aolserver.xml 29 Apr 2003 05:59:41 -0000 1.6.2.6 +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/aolserver.xml 4 May 2003 06:30:45 -0000 1.6.2.7 @@ -41,7 +41,9 @@ postgresql to oracle, or to the word both if you want both drivers - installed. + installed. In order to get nsoracle to compile, you may + need to su - oracle, and then su (without the -) root to set + the environment variables properly. conf-inst should contain the @@ -52,22 +54,11 @@ conf-make should contain the name of the GNU Make command on your system. It defaults to - gmake. Verify that gmake is installed: - [root@yourserver aolserver]# gmake -v -GNU Make version 3.79.1, by Richard Stallman and Roland McGrath. -Built for i386-redhat-linux-gnu -Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000 - Free Software Foundation, Inc. -This is free software; see the source for copying conditions. -There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A -PARTICULAR PURPOSE. - -Report bugs to <bug-make@gnu.org>. - -[root@yourserver aolserver]# - If you don't get similar results, including an equal or higher version number to 3.79.1, install gmake or check your aliases. + gmake. Set an environment variable that the nspostgres driver - Makefile needs to compile correctly and run conf, which compiles AOLserver and the default modules and installs them. + Makefile needs to compile correctly and run + conf, which compiles + AOLserver, the default modules, and the database driver, and installs them. [root@yourserver aolserver]# export POSTGRES=/usr/local/pgsql; ./conf Building in /usr/local/aolserver with the following modules: @@ -106,27 +97,40 @@ Oracle [root@yourserver aolserver]# cd /usr/local/aolserver/bin -[root@yourserver bin]# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle +[root@yourserver bin]# cp /tmp/&tarballpath;/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle [root@yourserver bin]# chmod 750 nsd-oracle [root@yourserver bin]# cd /usr/local/aolserver/bin -cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle +cp /tmp/&tarballpath;/packages/acs-core-docs/www/files/nsd-oracle.txt ./nsd-oracle chmod 750 nsd-oracle PostGreSQL [root@yourserver aolserver]# cd /usr/local/aolserver/bin -[root@yourserver bin]# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres +[root@yourserver bin]# cp /tmp/&tarballpath;/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres [root@yourserver bin]# chmod 755 nsd-postgres [root@yourserver bin]# cd /usr/local/aolserver/bin -cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres +cp /tmp/&tarballpath;/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres chmod 755 nsd-postgres - OPTIONAL - 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 be different for each server service, you won't need those instructions until later. You will need the nsopenssl tarball in /tmp. + OPTIONAL - 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 + be different for each server service, you won't need those instructions until + later. You will need 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]# cd nsopenssl-2.1 @@ -143,6 +147,11 @@ make OPENSSL=/usr/local/ssl cp nsopenssl.so /usr/local/aolserver/bin cp https.tcl /usr/local/aolserver/modules/tcl/ + For Debian (more + information): +apt-get install libssl-dev +make OPENSSL=/usr/lib/ssl @@ -155,7 +164,7 @@ Install Tsearch. This is a PostGreSQL module that OpenFTS requires. [root@yourserver root]# su - postgres -[postgres@yourserver pgsql]$ cd /usr/local/src/postgresql-7.2.3/contrib/tsearch/ +[postgres@yourserver pgsql]$ cd /usr/local/src/postgresql-7.2.4/contrib/tsearch/ [postgres@yourserver tsearch]$ make sed 's,MODULE_PATHNAME,$libdir/tsearch,g' tsearch.sql.in >tsearch.sql /usr/bin/flex -8 -Ptsearch_yy -o'parser.c' parser.l @@ -172,7 +181,7 @@ [root@yourserver root]# su - postgres -cd /usr/local/src/postgresql-7.2.3/contrib/tsearch +cd /usr/local/src/postgresql-7.2.4/contrib/tsearch make make install exit @@ -215,8 +224,8 @@ Build some supplemental modules. [root@yourserver aolserver]# cd .. -[root@yourserver Search-OpenFTS-tcl-0.3.2]# cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.2.3/contrib -[root@yourserver Search-OpenFTS-tcl-0.3.2]# cd /usr/local/src/postgresql-7.2.3/contrib/pgsql_contrib_openfts +[root@yourserver Search-OpenFTS-tcl-0.3.2]# cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.2.4/contrib +[root@yourserver Search-OpenFTS-tcl-0.3.2]# cd /usr/local/src/postgresql-7.2.4/contrib/pgsql_contrib_openfts [root@yourserver pgsql_contrib_openfts]# make sed 's,MODULE_PATHNAME,$libdir/openfts,g' openfts.sql.in >openfts.sql gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -fpic -I. -I../../src/include -c -o openfts.o openfts.c @@ -230,8 +239,8 @@ [postgres@yourserver pgsql_contrib_openfts]$ exit [root@yourserver pgsql_contrib_openfts]# cd .. -cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.2.3/contrib -cd /usr/local/src/postgresql-7.2.3/contrib/pgsql_contrib_openfts +cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.2.4/contrib +cd /usr/local/src/postgresql-7.2.4/contrib/pgsql_contrib_openfts make su postgres make install 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 -r1.5.2.7 -r1.5.2.8 --- openacs-4/packages/acs-core-docs/www/xml/install-guide/openacs.xml 29 Apr 2003 05:59:41 -0000 1.5.2.7 +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/openacs.xml 4 May 2003 06:30:45 -0000 1.5.2.8 @@ -121,8 +121,8 @@ 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 /web -[service0@yourserver web]$ tar xzf /tmp/openacs-4.6.2.tgz -[service0@yourserver web]$ mv openacs-4.6.2 service0 +[service0@yourserver web]$ tar xzf /tmp/&tarballpath;.tgz +[service0@yourserver web]$ mv &tarballpath; service0 [service0@yourserver web]$ chmod -R 700 service0 [service0@yourserver web]$ ls -al total 3 @@ -135,8 +135,8 @@ [root@yourserver root]# su - service0 cd /web -tar xzf /tmp/openacs-4.6.2.tgz -mv openacs-4.6.2 service0 +tar xzf /tmp/&tarballpath;.tgz +mv &tarballpath; service0 chmod -R 700 service0/ exit @@ -148,7 +148,10 @@ cvs setup - If this is a development server, you may want to add it to your local CVS repository. + If this is a development server, you may want to add + it to a CVS + repository.. + @@ -180,12 +183,12 @@ plus this string, i.e. /cvsroot/service0. - "OpenACS" is the vendor tag, and "openacs-4-6-2" is the + "OpenACS" is the vendor tag, and "&cvsversiontag;" is the release tag. These tags will be useful in upgrading and branching. -m sets the version comment. [root@yourserver root]# su - service0 [service0@yourserver service0]$ cd /web/service0 -[service0@yourserver service0]$ cvs import -m "initial install" service0 OpenACS openacs-4-6-2 +[service0@yourserver service0]$ cvs import -m "initial install" service0 OpenACS &cvsversiontag; N service0/license.txt N service0/readme.txt (many lines omitted) @@ -196,7 +199,7 @@ [service0@yourserver service0]$ su - service0 cd /web/service0 -cvs import -m "initial install" service0 OpenACS openacs-4-6-2 +cvs import -m "initial install" service0 OpenACS &cvsversiontag; Move the original directory to a temporary location, and check out the cvs repository in its place. If the service starts correctly, come back and remove the temporary copy of the uploaded files. [service0@yourserver service0]$ cd .. [service0@yourserver web]$ mv service0 service0.orig @@ -444,7 +447,7 @@ [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 service0 + 0 1 * * * /usr/local/pgsql/bin/vacuumdb --analyze service0 Add Full Text Search Support - OPTIONAL @@ -453,18 +456,18 @@ installation If you are installing Full Text Search, add required packages to the new database. - [service0@yourserver service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.3/contrib/tsearch/tsearch.sql + [service0@yourserver service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.4/contrib/tsearch/tsearch.sql BEGIN CREATE (many lines omitted) INSERT 0 1 COMMIT -[service0@yourserver service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.3/contrib/pgsql_contrib_openfts/openfts.sql +[service0@yourserver service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.4/contrib/pgsql_contrib_openfts/openfts.sql CREATE CREATE [service0@yourserver service0]$ -/usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.3/contrib/tsearch/tsearch.sql -/usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.3/contrib/pgsql_contrib_openfts/openfts.sql +/usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.4/contrib/tsearch/tsearch.sql +/usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.2.4/contrib/pgsql_contrib_openfts/openfts.sql [service0@yourserver service0]$ exit Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/os.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/os.xml,v diff -u -r1.6.2.3 -r1.6.2.4 --- openacs-4/packages/acs-core-docs/www/xml/install-guide/os.xml 19 Apr 2003 20:42:59 -0000 1.6.2.3 +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/os.xml 4 May 2003 06:30:45 -0000 1.6.2.4 @@ -47,7 +47,7 @@ The OpenACS tarball contains some files which are useful while setting up other software. Those files are located at: - /tmp/openacs-4.6.2/packages/acs-core-docs/www/files + /tmp/&tarballpath;/packages/acs-core-docs/www/files Database backup directory @@ -130,9 +130,9 @@ for some of the packages listed below. In order to access those files, unpack the tarball now. [root@yourserver root]# cd /tmp -[root@yourserver tmp]# tar xzf openacs-4.6.2.tgz +[root@yourserver tmp]# tar xzf &tarballpath;.tgz cd /tmp -tar xzf openacs-4.6.2.tgz +tar xzf &tarballpath;.tgz @@ -141,7 +141,7 @@ cvs initializing - CVS is a source control system. Create and prepare a + 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 @@ -162,11 +162,11 @@ fixes the backspace -> help mis-mapping that often occurs in terminals. - [root@yourserver tmp]# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/emacs.txt /etc/skel/.emacs + [root@yourserver tmp]# cp /tmp/&tarballpath;/packages/acs-core-docs/www/files/emacs.txt /etc/skel/.emacs +cp: overwrite `/etc/skel/.emacs'? y [root@yourserver tmp]# - Install Daemontools (OPTIONAL) Daemontools is a collection of programs for controlling @@ -190,6 +190,7 @@ linkend="daemontools-download">download it. (The -p flag in mkdir causes all implied directories in the path to be made as well.) + (If you are using Red Hat 9.0, you need to 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 [root@yourserver root]# chmod 1755 /package/ [root@yourserver root]# cd /package/ @@ -227,9 +228,9 @@ Install a script to grant non-root users permission to control daemontools services. - [root@yourserver root]# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup + [root@yourserver root]# cp /tmp/&tarballpath;/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup [root@yourserver root]# chmod 755 /usr/local/bin/svgroup -cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup +cp /tmp/&tarballpath;/packages/acs-core-docs/www/files/svgroup.txt /usr/local/bin/svgroup chmod 755 /usr/local/bin/svgroup @@ -241,7 +242,8 @@ Install ucspi - This program handles incoming tcp connections. + This program handles incoming tcp connections. + Download ucspi and install it. [root@yourserver root]# cd /usr/local/src [root@yourserver src]# tar xzf /tmp/ucspi-tcp-0.88.tar.gz @@ -283,9 +285,9 @@ it's an attempt to relay mail, and rejects it. So these two commands set up an exception so that any mail sent from 127.0.0.1 is allowed to send outgoing mail. - [root@yourserver ucspi-tcp-0.88]# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp + [root@yourserver ucspi-tcp-0.88]# cp /tmp/&tarballpath;/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-4.6.2/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp +cp /tmp/&tarballpath;/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp @@ -297,7 +299,9 @@ - First, set up the standard supporting users and build the binaries: + Download qmail, + set up the standard supporting users and build the binaries: + (If you are using Red Hat 9.0, you need to 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]# mkdir /var/qmail @@ -371,11 +375,11 @@ 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-4.6.2/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc +[root@yourserver alias]# cp /tmp/&tarballpath;/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc [root@yourserver alias]# chmod 755 /var/qmail/rc [root@yourserver alias]# echo "./Maildir" > /var/qmail/bin/.qmail -cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc +cp /tmp/&tarballpath;/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc chmod 755 /var/qmail/rc Set up the skeleton directory so that new users will @@ -397,14 +401,16 @@ /usr/local/bin/tcpserver -x /etc/tcp.smtp.cdb -v -u 502 -g 501 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd 3 & csh -cf '/var/qmail/rc &' Verify that seven different qmail threads are running: - [root@yourserver alias]# ps -auxw | grep qmail -qmaild 15862 0.0 0.1 1380 452 pts/1 S 10:26 0:00 /usr/local/bin/tcpserver -x /etc/tcp.smtp.cdb -v -u 502 -g 501 0 smtp -root 15863 0.0 0.1 1332 412 pts/1 S 10:26 0:00 /var/qmail/bin/splogger smtpd 3 -qmails 15865 0.0 0.1 1360 316 pts/1 S 10:26 0:00 qmail-send -qmaill 15866 0.0 0.1 1328 408 pts/1 S 10:26 0:00 splogger qmail -root 15867 0.0 0.1 1328 268 pts/1 S 10:26 0:00 qmail-lspawn ./Maildir/ -qmailr 15868 0.0 0.1 1324 268 pts/1 S 10:26 0:00 qmail-rspawn -qmailq 15869 0.0 0.1 1320 276 pts/1 S 10:26 0:00 qmail-clean + [root@yourserver alias]# ps -auxw | grep + qmail +qmaild 4269 0.0 0.3 1384 452 pts/0 S 21:21 0:00 [tcpserver] +root 4270 0.0 0.3 1340 412 pts/0 S 21:21 0:00 /var/qmail/bin/splogger smtpd 3 +qmails 4272 0.1 0.2 1364 320 pts/0 S 21:21 0:00 [qmail-send] +qmaill 4273 0.0 0.3 1332 408 pts/0 S 21:21 0:00 [splogger] +root 4274 0.0 0.2 1332 272 pts/0 S 21:21 0:00 qmail-lspawn ./Maildir/ +qmailr 4275 0.0 0.2 1328 272 pts/0 S 21:21 0:00 [qmail-rspawn] +qmailq 4276 0.0 0.2 1324 280 pts/0 S 21:21 0:00 [qmail-clean] +root 4278 0.0 0.5 3280 632 pts/0 S 21:21 0:00 grep qmail [root@yourserver alias]# Further verify by sending and receiving email. Incoming mail for root is stored in /var/qmail/alias/Maildir. If it worked, make it permanent by putting the same commands in your startup scripts. (These instructions put the commands in rc.local, which means that they'll be run once, on boot. There will be no monitoring and no interface to start and stop and check status. We ought instead to either use full init scripts or daemontools.) [root@yourserver alias]# echo "/usr/local/bin/tcpserver -x /etc/tcp.smtp.cdb -v -u 502 -g 501 0 smtp /var/qmail/bin/qmail-smtpd \ " >> /etc/rc.local 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 -r1.5.2.3 -r1.5.2.4 --- openacs-4/packages/acs-core-docs/www/xml/install-guide/postgres.xml 19 Apr 2003 20:42:59 -0000 1.5.2.3 +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/postgres.xml 4 May 2003 06:30:45 -0000 1.5.2.4 @@ -1,25 +1,29 @@ - Install PostgreSQL 7.2.3 + Install PostGreSQL 7.2.4 by Vinod Kurup Skip this section if you will run only Oracle. + OpenACS &version; will run with PostGreSQL 7.2.x or 7.3.2. It + has not been fully tested with 7.3.2; 7.2.4 is the recommended + version of PostgreSQL to use. + This page assumes you have downloaded postgresql to -/tmp/postgresql-7.2.3.tar.gz. If not, +/tmp/postgresql-7.2.4.tar.gz. If not, get it. Unpack PostGreSQL. [root@yourserver root]# cd /usr/local/src -[root@yourserver src]# tar xzf /tmp/postgresql-7.2.3.tar.gz +[root@yourserver src]# tar xzf /tmp/postgresql-7.2.4.tar.gz [root@yourserver src]# cd /usr/local/src -tar xzf /tmp/postgresql-7.2.3.tar.gz +tar xzf /tmp/postgresql-7.2.4.tar.gz @@ -34,13 +38,13 @@ [root@yourserver src]# groupadd web [root@yourserver src]# useradd -g web -d /usr/local/pgsql postgres [root@yourserver src]# mkdir -p /usr/local/pgsql -[root@yourserver src]# chown -R postgres.web /usr/local/pgsql /usr/local/src/postgresql-7.2.3 +[root@yourserver src]# chown -R postgres.web /usr/local/pgsql /usr/local/src/postgresql-7.2.4 [root@yourserver src]# chmod 750 /usr/local/pgsql [root@yourserver src]# groupadd web useradd -g web -d /usr/local/pgsql postgres mkdir -p /usr/local/pgsql -chown -R postgres.web /usr/local/pgsql /usr/local/src/postgresql-7.2.3 +chown -R postgres.web /usr/local/pgsql /usr/local/src/postgresql-7.2.4 chmod 750 /usr/local/pgsql @@ -73,27 +77,27 @@ [root@yourserver src]# su - postgres -[postgres@yourserver pgsql]$ cd /usr/local/src/postgresql-7.2.3 -[postgres@yourserver postgresql-7.2.3]$ ./configure +[postgres@yourserver pgsql]$ cd /usr/local/src/postgresql-7.2.4 +[postgres@yourserver postgresql-7.2.4]$ ./configure creating cache ./config.cache checking host system type... i686-pc-linux-gnu (many lines omitted> linking ./src/makefiles/Makefile.linux to src/Makefile.port linking ./src/backend/port/tas/dummy.s to src/backend/port/tas.s -[postgres@yourserver postgresql-7.2.3]$ make all +[postgres@yourserver postgresql-7.2.4]$ make all make -C doc all -make[1]: Entering directory `/usr/local/src/postgresql-7.2.3/doc' +make[1]: Entering directory `/usr/local/src/postgresql-7.2.4/doc' (many lines omitted) -make[1]: Leaving directory `/usr/local/src/postgresql-7.2.3/src' +make[1]: Leaving directory `/usr/local/src/postgresql-7.2.4/src' All of PostgreSQL successfully made. Ready to install. -[postgres@yourserver postgresql-7.2.3]$ make install +[postgres@yourserver postgresql-7.2.4]$ make install make -C doc install -make[1]: Entering directory `/usr/local/src/postgresql-7.2.3/doc' +make[1]: Entering directory `/usr/local/src/postgresql-7.2.4/doc' (many lines omitted) Thank you for choosing PostgreSQL, the most advanced open source database engine. su - postgres -cd /usr/local/src/postgresql-7.2.3 +cd /usr/local/src/postgresql-7.2.4 ./configure make all make install @@ -190,13 +194,13 @@ Red Hat: - [root@yourserver src]# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql + [root@yourserver src]# cp /tmp/&tarballpath;/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql [root@yourserver src]# chown root.root /etc/rc.d/init.d/postgresql -[root@yourserver src]# chmod 700 /etc/rc.d/init.d/postgresql +[root@yourserver src]# chmod 755 /etc/rc.d/init.d/postgresql [root@yourserver src]# -cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql +cp /tmp/&tarballpath;/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql chown root.root /etc/rc.d/init.d/postgresql -chmod 700 /etc/rc.d/init.d/postgresql +chmod 755 /etc/rc.d/init.d/postgresql Test the script. @@ -222,11 +226,11 @@ service postgresql start Debian: - root:~# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql + root:~# cp /tmp/&tarballpath;/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql root:~# chown root.root /etc/init.d/postgresql root:~# chmod 700 /etc/init.d/postgresql root:~# -cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql +cp /tmp/&tarballpath;/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql chown root.root /etc/init.d/postgresql chmod 700 /etc/init.d/postgresql Test the script @@ -270,7 +274,7 @@ - root:~# cp /tmp/openacs-4.6.2/packages/acs-core-docs/www/files/postgresql.txt /etc/rc.d/init.d/postgresql + root:~# cp /tmp/&tarballpath;/packages/acs-core-docs/www/files/postgresql.txt /etc/rc.d/init.d/postgresql root:~# chown root.root /etc/rc.d/init.d/postgresql root:~# chmod 700 /etc/rc.d/init.d/postgresql @@ -329,7 +333,44 @@ + + + Tune postgres. OPTIONAL + The default values for PostGreSQL are very conservative; we can safely change some of them and improve performance. + + + + Change the kernel parameter for maximum shared memory + segment size to 128Mb: + [root@yourserver root]# echo 134217728 >/proc/sys/kernel/shmmax +[root@yourserver root]# + Make that change permanent by editing + emacs /etc/sysctl.conf to + add these lines at the end: +# increase shared memory limit for postgres +kernel.shmmax = 134217728 + + + Edit the PostGreSQL config file, /usr/local/pgsql/data/postgresql.conf to use more memory. These values should improve performance in most cases. (More information) + # Shared Memory Size +# +shared_buffers = 15200 # 2*max_connections, min 16 +# Non-shared Memory Sizes +# +sort_mem = 32168 # min 32 + + +# Write-ahead log (WAL) +# +wal_files = 3 # range 0-64 +checkpoint_segments = 3 # in logfile segments (16MB each), min 1 + + Restart postgres (service postgres restart) so that the changes take effect. + + + + @@ -345,6 +386,7 @@ + Migrating from 7.0 to 7.1 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 -r1.1.2.1 -r1.1.2.2 --- openacs-4/packages/acs-core-docs/www/xml/install-guide/red-hat.xml 30 Mar 2003 05:56:18 -0000 1.1.2.1 +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/red-hat.xml 4 May 2003 06:30:46 -0000 1.1.2.2 @@ -258,9 +258,42 @@ Password: [root@yourserver root]# - - + + 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 +--20:39:00-- http://updates.redhat.com/7.1/en/os/i686/kernel-2.4.18-27.7.x.i686.rpm + => `kernel-2.4.18-27.7.x.i686.rpm' +Resolving updates.redhat.com... done. +Connecting to updates.redhat.com[66.187.232.52]:80... connected. +HTTP request sent, awaiting response... 200 OK +Length: 12,736,430 [application/x-rpm] +100%[======================================>] 12,736,430 78.38K/s ETA 00:00 + +20:41:39 (78.38 KB/s) - `kernel-2.4.18-27.7.x.i686.rpm' saved [12736430/12736430] + +root@yourserver tmp]# rpm -Uvh kernel-2.4.18-27.7.x.i686.rpm +warning: kernel-2.4.18-27.7.x.i686.rpm: V3 DSA signature: NOKEY, key ID db42a60e +Preparing... ########################################### [100%] + 1:kernel ########################################### [100%] +[root@yourserver tmp]# reboot + +Broadcast message from root (pts/0) (Sat May 3 20:46:39 2003): + +The system is going down for reboot NOW! +[root@yourserver tmp]# +cd /tmp +wget http://updates.redhat.com/7.1/en/os/i686/kernel-2.4.18-27.7.x.i686.rpm +rpm -Uvh kernel-2.4.18-27.7.x.i686.rpm +reboot + + + + Individual Programs - <ulink url="http://openacs.org/projects/openacs/download/one-revision?revision_id=92178">OpenACS &version;</ulink> + <ulink + url="http://openacs.org/projects/openacs/download/one-revision?revision_id=92178">OpenACS &version;</ulink> The OpenACS tarball comprises the core packages and many useful additional packages. This includes a full set of documentation. The tarball works with both PostGreSQL @@ -49,25 +50,24 @@ - - Operating System - OpenACS is designed for a Unix-like system. It is + + Operating System + OpenACS is designed for a Unix-like system. It is developed primarily in Linux. It can be run on Mac OS X, and in Windows within VMWare. - - - - - - Linux - . The installation assumes a linux kernel of 2.2.22 or newer, or 2.4.14 or newer. - - - - + + + + + + Linux + . The installation assumes a linux kernel of 2.2.22 or newer, or 2.4.14 or newer. + + + + FreeBSD - FreeBSD + FreeBSD guide. The Reference Platform uses bash, which is the standard Linux shell. If you are using a different shell, you will need to substitute your shell's @@ -78,13 +78,13 @@ Mac OS X - + Windows/VMWare - The only + The only way to run OpenACS on Windows is through the VMWare emulator. (Please let me know if you have OpenACS running directly in Windows.) @@ -150,11 +150,11 @@ queries in XML files, so we use an AOLserver module called nsxml to parse these files. libxml2-devel is required to compile nsxml. Libxml2 is available from http://xmlsoft.org). On Debian, + url="http://xmlsoft.org">http://xmlsoft.org). On Debian, this can be installed by doing apt-get install libxml2-dev. Users of other distributions can download rpms from rpmfind.net. + url="http://rpmfind.net/linux/rpm2html/search.php?query=libxml2">rpmfind.net. @@ -165,7 +165,7 @@ database, sends out HTTP responses, and logs requests and errors. OpenACS uses AOLserver; some people have had success running Apache with mod_nsd - see this + url="http://openacs.org/forums/message-view?message_id=21461">this post. @@ -174,7 +174,7 @@ <ulink - url="http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz">AOLserver 3.3oacs1</ulink>, REQUIRED + url="http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz">AOLserver 3.3oacs1, REQUIRED Mat Kovach's source distribution of AOLserver, including all of the patches listed below. @@ -193,8 +193,7 @@ - AOLserver is available at aolserver.com + AOLserver is available at aolserver.com @@ -218,7 +217,7 @@ nsxml is available at http://acs-misc.sourceforge.net. + url="http://acs-misc.sourceforge.net/dl/nsxml.tgz">http://acs-misc.sourceforge.net. @@ -235,7 +234,8 @@ The patch that makes AOLserver respect the - -g flag is available at -g flag is available at + sourceforge.net @@ -253,7 +253,8 @@ - <ulink url="http://www.scottg.net/download/nsopenssl-2.1.tar.gz">nsopenssl 2.1</ulink>, OPTIONAL + <ulink + url="http://www.scottg.net/download/nsopenssl-2.1.tar.gz">nsopenssl 2.1</ulink>, OPTIONAL Provides SSL capabilities for AOLserver. It requires OpenSSL. You need this if you want users to make secure (https) connections to your webserver. @@ -270,23 +271,16 @@ - <ulink url="http://www.analog.cx/analog-5.31.tar.gz">Analog 5.31</ulink>, OPTIONAL + <ulink + url="http://www.analog.cx/analog-5.31.tar.gz">Analog 5.31</ulink>, 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. - - - <ulink url="files/analog-dev.cfg.txt">Analog configuration file</ulink>, OPTIONAL - This file is an Analog configuration file set up for a standard - OpenACS installation. You need this file if you are using - Analog. - - - + Database The data on your site (for example, user names and passwords, @@ -297,9 +291,9 @@ Oracle 8.1.7. While you can run the core OpenACS on any supported database, not all contributed packages support all databases. - - - + + + Oracle 8.1.7 (Either this or PostGreSQL is REQUIRED) @@ -311,17 +305,18 @@ - <ulink url="http://www.ca.postgresql.org/ftpsite/source/v7.2.3/postgresql-7.2.3.tar.gz">PostGreSQL 7.2.3</ulink> (Either this or Oracle is REQUIRED) + <ulink + url="http://www.ca.postgresql.org/ftpsite/source/v7.2.3/postgresql-7.2.3.tar.gz">PostGreSQL 7.2.3</ulink> (Either this or Oracle is REQUIRED) You need this if you want to use a PostGreSQL database. PostGreSQL 7.3 is not backwards-compatible, and OpenACS does not yet support it. If you are not in the United - States, select a closer mirror + States, select a closer mirror - <ulink - url="files/postgresql.txt">PostgreSQL Init script Version 1</ulink>, OPTIONAL + <ulink url="files/postgresql.txt">PostgreSQL Init script Version 1</ulink>, OPTIONAL A script for automating the starting and stopping of postgresql, for Unix-like environments that support System V-style scripts. (Most Linux flavors, including @@ -350,17 +345,6 @@ - - - <ulink - url="files/svgroup.txt">AolServer - restart permissions script version 1</ulink>, OPTIONAL - If you are running daemontools, you need this file to - set the permissions of the control files for new OpenACS instances. - - - - Mail Transport Agent @@ -372,34 +356,17 @@ - + <ulink url="http://cr.yp.to/software/qmail-1.03.tar.gz">Qmail 1.03</ulink>, OPTIONAL - You need this if you want your webserver to send or + You need this (or a different Mail Transport + Agent) if you want your webserver to send and receive email. - + <ulink - url="files/qmail.rc.txt">qmail startup script version 1</ulink>, OPTIONAL - This file is used to start qmail. You need this if - you are running qmail. - - - - - <ulink - url="files/tcp.smtp.txt">Qmail relay filter version 1</ulink>, OPTIONAL - This file is used to tell ucspi that SMTP connections from - programs on the same computer (such as AOLserver) are - allowed to relay mail to other computers. You need this - file if you are running qmail. - - - - - <ulink url="http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz">ucspi-tcp 0.88</ulink>, OPTIONAL This program listens for incoming TCP connections and hands them to a program. We use it instead of inetd, @@ -426,27 +393,29 @@ files. You can use any source control system; the Reference Platform and the OpenACS.org repository (where you can get patched and development code in between releases) use cvs. - - - - - cvs 1.11.2, OPTIONAL - cvs is included in most unix distributions. You + + + + + cvs 1.11.2, OPTIONAL + cvs is included in most unix distributions. You 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$) + Local Variables: + sgml-parent-document: ("../index.xml" "book" "part") + End: + -->