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.30 -r1.31 --- openacs-4/packages/acs-core-docs/www/acs-admin.html 5 May 2004 12:36:02 -0000 1.30 +++ openacs-4/packages/acs-core-docs/www/acs-admin.html 11 Jun 2004 10:17:35 -0000 1.31 @@ -1 +1 @@ -
Table of Contents
Table of Contents
Tutorials and reference material for creating new OpenACS packages. -
Table of Contents
Tutorials and reference material for creating new OpenACS packages. +
Table of Contents
Table of Contents
Prev | Home | Next |
Appendix�D.�Using CVS with an OpenACS Site | Up | Chapter�15.�Kernel Documentation |
Table of Contents
Prev | Home | Next |
Appendix�D.�Using CVS with an OpenACS Site | Up | Chapter�15.�Kernel Documentation |
Download the Analog source tarball in +
Download the Analog source tarball in /tmp. Unpack, compile, and install analog.
[root aolserver]# cd /usr/local/src [root src]# tar xzf /tmp/analog-5.32.tar.gz [root src]# cd analog-5.32 Index: openacs-4/packages/acs-core-docs/www/analog-setup.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/analog-setup.html,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/analog-setup.html 5 May 2004 12:36:03 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/analog-setup.html 11 Jun 2004 10:17:36 -0000 1.5 @@ -1,32 +1,32 @@ -Set up Log Analysis Reports Analog is a program with processes webserver access logs, +
Set up Log Analysis Reports 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 - the OpenACS tarball.
[root src]# su - service0 -[service0 service0]$ cd /var/lib/aolserver/service0 -[service0 service0]$ cp /var/lib/aolserver/service0/packages/acs-core-docs/www/files/analog.cfg.txt etc/analog.cfg -[service0 service0]$ mkdir www/log -[service0 service0]$ cp -r /usr/share/analog-5.31/images www/log/ -[service0 service0]$ -su - service0 -cd /var/lib/aolserver/service0 -cp /var/lib/aolserver/service0/packages/acs-core-docs/www/files/analog.cfg.txt etc/analog.cfg + the OpenACS tarball.
[root src]# su - $OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/analog.cfg.txt etc/analog.cfg +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ mkdir www/log +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cp -r /usr/share/analog-5.31/images www/log/ +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ +su - $OPENACS_SERVICE_NAME +cd /var/lib/aolserver/$OPENACS_SERVICE_NAME +cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/analog.cfg.txt etc/analog.cfg mkdir www/log cp -r /usr/share/analog-5.31/images www/log/
Edit -/var/lib/aolserver/service0/etc/analog.cfg and change the variable in HOSTNAME "[my +/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/analog.cfg and change the variable in HOSTNAME "[my organisation]" to reflect your website title. If you don't want the traffic log to be publicly visible, change -OUTFILE /var/lib/aolserver/service0/www/log/traffic.html to use a private -directory.
Run it.
[service0 service0]$ /usr/share/analog-5.31/analog -G -g/var/lib/aolserver/service0/etc/analog.cfg +OUTFILE /var/lib/aolserver/$OPENACS_SERVICE_NAME/www/log/traffic.html to use a private +directory.Run it.
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ /usr/share/analog-5.31/analog -G -g/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/analog.cfg /usr/share/analog-5.31/analog: analog version 5.31/Unix /usr/share/analog-5.31/analog: Warning F: Failed to open DNS input file - /home/service0/dnscache: ignoring it + /home/$OPENACS_SERVICE_NAME/dnscache: ignoring it (For help on all errors and warnings, see docs/errors.html) /usr/share/analog-5.31/analog: Warning R: Turning off empty Search Word Report -[service0 service0]$Verify that it works by browing to http://yourserver.test:8000/log/traffic.html
Automate this by creating a file in - /etc/cron.daily.
[service0 service0]$ exit +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$Verify that it works by browing to http://yourserver.test:8000/log/traffic.html
Automate this by creating a file in + /etc/cron.daily.
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit logout [root root]# emacs /etc/cron.daily/analogPut this into the file:
#!/bin/sh -/usr/share/analog-5.31/analog -G -g/var/lib/aolserver/service0/etc/analog.cfg
[root root]# chmod 755 /etc/cron.daily/analogTest it by running the script.
[root root]# sh /etc/cron.daily/analogBrowse to http://yourserver.test/log/traffic.html
Prev Home Next Installing SSL Support for an OpenACS service Up External uptime validation
docs@openacs.orgView comments on this page at openacs.org +/usr/share/analog-5.31/analog -G -g/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/analog.cfg[root root]# chmod 755 /etc/cron.daily/analogTest it by running the script.
[root root]# sh /etc/cron.daily/analogBrowse to http://yourserver.test/log/traffic.html
Prev Home Next Installing SSL Support for an OpenACS service Up External uptime validation
docs@openacs.orgView 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.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/aolserver.html 5 May 2004 12:36:03 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/aolserver.html 11 Jun 2004 10:17:36 -0000 1.37 @@ -1,4 +1,4 @@ -Install AOLserver 3.3oacs1 by Vinod Kurup
+Install AOLserver 3.3oacs1 by Vinod Kurup
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.We recommend the use of AOLserver 4.0.1 or later. These instructions are retained as a resource.
Index: openacs-4/packages/acs-core-docs/www/aolserver4.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/aolserver4.html,v diff -u -r1.12 -r1.13 --- openacs-4/packages/acs-core-docs/www/aolserver4.html 5 May 2004 12:36:03 -0000 1.12 +++ openacs-4/packages/acs-core-docs/www/aolserver4.html 11 Jun 2004 10:17:37 -0000 1.13 @@ -1,4 +1,4 @@ -
Install AOLserver 4 +Install AOLserver 4 OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
Retrieve TCL 8.4 (or higher).�Download and install TCL 8.4
If you have not installed TCL already, download the latest TCL version from Sourceforge
Remember that you have to be root if you want to follow these instructions. On Mac OS X type sudo su - to become root.
Alternatively use curl -L -O instead of wget (especially on Mac OS X.
[root root]# cd /usr/local/src @@ -59,7 +59,7 @@ // typedef unsigned char u_int8_t;
Now install nssha1:
[root nssha1]# make install [root nssha1]# cd ../tDOM-0.7.8/unixEdit the CONFIG file. Uncomment the instructions meant for AOLserver 4, but edit it to look like this:
../configure --enable-threads --disable-tdomalloc --prefix=/usr/local/aolserver40r2 --with-tcl=/usr/local/libNow you can compile and configure tDOM
[root unix]# sh CONFIG [root unix]# make install-
Add a database-specific wrapper script.�This script +
Add a database-specific wrapper script.�This script sets database environment variables before starting AOLserver; this allows the AOLserver instance can communicate with the database. There is one script each for @@ -77,4 +77,4 @@ cd /usr/local/aolserver40r2/bin cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres chmod 755 nsd-postgres
You may need to edit these scripts if you are not using - /usr/local/aolserver as the directory of Aolserver4.
Change startup script (optional).�If you want to run AOLserver on a port below 1024 (normally, for a webserver you will use 80), you will have to change the /var/lib/aolserver/service0/etc/daemontools/run script according to the documentation found there (namely: Add the -b yourip:yourport switch)
($Id$)View comments on this page at openacs.org + /usr/local/aolserver as the directory of Aolserver4.Change startup script (optional).�If you want to run AOLserver on a port below 1024 (normally, for a webserver you will use 80), you will have to change the /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools/run script according to the documentation found there (namely: Add the -b yourip:yourport switch)
($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.28 -r1.29 --- openacs-4/packages/acs-core-docs/www/apm-design.html 5 May 2004 12:36:03 -0000 1.28 +++ openacs-4/packages/acs-core-docs/www/apm-design.html 11 Jun 2004 10:17:37 -0000 1.29 @@ -1,4 +1,4 @@ -Package Manager Design By Bryan Quinn
+Package Manager Design By Bryan Quinn
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
Tcl API
Index: openacs-4/packages/acs-core-docs/www/apm-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-requirements.html,v diff -u -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/apm-requirements.html 5 May 2004 12:36:03 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/apm-requirements.html 11 Jun 2004 10:17:37 -0000 1.24 @@ -1,4 +1,4 @@ -
Package Manager Requirements By Bryan Quinn and Todd Nightingale
+Package Manager Requirements By Bryan Quinn and Todd Nightingale
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.The following is a requirements document for the OpenACS Package Manager Index: openacs-4/packages/acs-core-docs/www/automated-backup.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/automated-backup.html,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/automated-backup.html 5 May 2004 12:36:03 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/automated-backup.html 11 Jun 2004 10:17:37 -0000 1.4 @@ -1,3 +1,3 @@ -
Automated Backup The recommended backup strategy for a production sit is to use an automated script which first backs up the database to a file in /var/lib/aolserver/service0/database-backup and then backs up all of /var/lib/aolserver/service0 to a single zip file, and then copies that zip file to another computer.
Make sure that the manual backup process described above works.
Customize the default backup script. Edit /var/lib/aolserver/service0/etc/backup.sh with your specific parameters.
+
Automated Backup The recommended backup strategy for a production sit is to use an automated script which first backs up the database to a file in /var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup and then backs up all of /var/lib/aolserver/$OPENACS_SERVICE_NAME to a single zip file, and then copies that zip file to another computer.
Make sure that the manual backup process described above works.
Customize the default backup script. Edit /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/backup.sh with your specific parameters.
Make sure the file is executable:
chmod +x backup.sh- Set this file to run automatically by adding a line to root's crontab. (Typically, with export EDITOR=emacs; crontab -e.) This example runs the backup script at 1:30 am every day.
30 1 * * * * sh /var/lib/aolserver/service0/etc/backup.sh
View comments on this page at openacs.org + Set this file to run automatically by adding a line to root's crontab. (Typically, with export EDITOR=emacs; crontab -e.) This example runs the backup script at 1:30 am every day.30 1 * * * * sh /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/backup.sh
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.html,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.html 5 May 2004 12:36:03 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/automated-testing-best-practices.html 11 Jun 2004 10:17:37 -0000 1.15 @@ -1,4 +1,4 @@ -Automated Testing By Jeff Davis
+Automated Testing By Jeff Davis
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Best practices in writing OpenACS automated tests
Special characters in Tcl.� 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.29 -r1.30 --- openacs-4/packages/acs-core-docs/www/backup-recovery.html 5 May 2004 12:36:03 -0000 1.29 +++ openacs-4/packages/acs-core-docs/www/backup-recovery.html 11 Jun 2004 10:17:37 -0000 1.30 @@ -1,4 +1,4 @@ -
Chapter�8.�Backup and Recovery Table of Contents
By Don Baccus with additions +
Chapter�8.�Backup and Recovery Table of Contents
By Don Baccus with additions by Joel Aufrecht
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. @@ -7,4 +7,4 @@ probably need to create your own backup strategies (in particular full dumps from oracle, while easy to set up, are far from the best solution).There are three basic things which need to be backed up, the database data, the server - source tree, and the acs-content-repository (which is in the server source tree).
($Id$)View comments on this page at openacs.org + source tree, and the acs-content-repository (which is in the server source tree).($Id$)View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/backups-with-cvs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/backups-with-cvs.html,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/backups-with-cvs.html 5 May 2004 12:36:03 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/backups-with-cvs.html 11 Jun 2004 10:17:37 -0000 1.4 @@ -1,30 +1,30 @@ -Using CVS for backup-recovery CVS-only backup is often appropriate for development sites. If you are already using CVS and your data is not important, you probably don't +
Using CVS for backup-recovery CVS-only backup is often appropriate for development sites. If you are already using CVS and your data is not important, you probably don't need to do anything to back up your files. Just make sure that your current work is checked into the system. You can then roll back based on date - note the current system time, down to the minute. For maximum safety, you can apply a tag to your current - files. You will still need to back up your database.
Note that, if you did the CVS options in this document, the /var/lib/aolserver/service0/etc directory is not included in cvs and you may want to add it.
[root root]# su - service0 -[service0 service0]$ cd /var/lib/aolserver/service0 -[service0 service0]$ cvs commit -m "last-minute commits before upgrade to 4.6" + files. You will still need to back up your database.Note that, if you did the CVS options in this document, the /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc directory is not included in cvs and you may want to add it.
[root root]# su - $OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cvs commit -m "last-minute commits before upgrade to 4.6" cvs commit: Examining . cvs commit: Examining bin (many lines omitted) -[service0 service0]$ cvs tag before_upgrade_to_4_6 +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cvs tag before_upgrade_to_4_6 cvs server: Tagging bin T bin/acs-4-0-publish.sh T bin/ad-context-server.pl (many lines omitted) -[service0 service0]$ exit +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit [root root]# -su - service0 -cd /var/lib/aolserver/service0 +su - $OPENACS_SERVICE_NAME +cd /var/lib/aolserver/$OPENACS_SERVICE_NAME cvs commit -m "last-minute commits before upgrade to 4.6" cvs tag before_upgrade_to_4_6 -exitTo restore files from a cvs tag such as the one used above:
[root root]# su - service0 -[service0 service0]$ cd /var/lib/aolserver/service0 -[service0 service0]$ cvs up -r current -[service0 service0]$ exit -su - service0 -cd /var/lib/aolserver/service0 +exitTo restore files from a cvs tag such as the one used above:
[root root]# su - $OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cvs up -r current +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit +su - $OPENACS_SERVICE_NAME +cd /var/lib/aolserver/$OPENACS_SERVICE_NAME cvs up -r currentView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/bootstrap-acs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/bootstrap-acs.html,v diff -u -r1.35 -r1.36 --- openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 5 May 2004 12:36:03 -0000 1.35 +++ openacs-4/packages/acs-core-docs/www/bootstrap-acs.html 11 Jun 2004 10:17:37 -0000 1.36 @@ -1,4 +1,4 @@ -Bootstrapping OpenACS By Jon Salz
+Bootstrapping OpenACS By Jon Salz
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
Tcl code: /tcl/0-acs-init.tcl and /packages/acs-kernel/bootstrap.tcl
This document describes the startup (bootstrapping) process for an AOLserver Fisheye: Tag 1.2 refers to a dead (removed) revision in file `openacs-4/packages/acs-core-docs/www/ch08s06.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 1.10 refers to a dead (removed) revision in file `openacs-4/packages/acs-core-docs/www/ch10s06.html'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-core-docs/www/complete-install.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/complete-install.html,v diff -u -r1.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/complete-install.html 5 May 2004 12:36:03 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/complete-install.html 11 Jun 2004 10:17:37 -0000 1.14 @@ -1 +1 @@ -
Chapter�3.�Complete Installation
Prev Home Next Prerequisite Software Up Install a Unix-like system and supporting software
docs@openacs.orgView comments on this page at openacs.org +Chapter�3.�Complete Installation
Prev Home Next Prerequisite Software Up Install a Unix-like system and supporting software
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/configuring-new-site.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/configuring-new-site.html,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/configuring-new-site.html 5 May 2004 12:36:03 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/configuring-new-site.html 11 Jun 2004 10:17:37 -0000 1.5 @@ -1,4 +1,4 @@ -Chapter�4.�Configuring a new OpenACS Site Table of Contents
+Chapter�4.�Configuring a new OpenACS Site Table of Contents
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.In this chapter, Configuring refers to making changes to a new OpenACS site through the web interface. In crude terms, these changes happen in the database, and are upgrade-safe. Customizing refers to changes that touch the file system, and require some planning if easy upgradability is to be maintained.
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/credits.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/credits.html,v diff -u -r1.34 -r1.35 --- openacs-4/packages/acs-core-docs/www/credits.html 5 May 2004 12:36:03 -0000 1.34 +++ openacs-4/packages/acs-core-docs/www/credits.html 11 Jun 2004 10:17:37 -0000 1.35 @@ -1,4 +1,4 @@ -Appendix�C.�Credits Table of Contents
By Vinod Kurup
+Appendix�C.�Credits Table of Contents
By Vinod Kurup
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Vinod Kurup put Index: openacs-4/packages/acs-core-docs/www/cvs-tips.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/cvs-tips.html,v diff -u -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/cvs-tips.html 5 May 2004 12:36:03 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/cvs-tips.html 11 Jun 2004 10:17:37 -0000 1.20 @@ -1,62 +1,62 @@ -
Appendix�D.�Using CVS with an OpenACS Site +Appendix�D.�Using CVS with an OpenACS Site OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -Add the Service to CVS - OPTIONAL.�These steps take an existing OpenACS directory and add +
Add the Service to CVS - OPTIONAL.�These steps take an existing OpenACS directory and add it to a CVS - repository.
Create and set permissions on a subdirectory in the local cvs repository.
[root root]# mkdir /cvsroot/service0 -[root root]# chown service0.service0 /cvsroot/service0 + repository.
Create and set permissions on a subdirectory in the local cvs repository.
[root root]# mkdir /cvsroot/$OPENACS_SERVICE_NAME +[root root]# chown $OPENACS_SERVICE_NAME.$OPENACS_SERVICE_NAME /cvsroot/$OPENACS_SERVICE_NAME [root root]# -mkdir /cvsroot/service0 -chown service0.service0 /cvsroot/service0Add the repository location to the user environment. On some systems, you may get better results with .bash_profile instead of .bashrc.
[root root]# su - service0 -[service0 service0]$ emacs .bashrc
Put this string into /home/service0/.bashrc:
export CVSROOT=/cvsroot[service0 service0]$ exit +mkdir /cvsroot/$OPENACS_SERVICE_NAME +chown $OPENACS_SERVICE_NAME.$OPENACS_SERVICE_NAME /cvsroot/$OPENACS_SERVICE_NAME
Add the repository location to the user environment. On some systems, you may get better results with .bash_profile instead of .bashrc.
[root root]# su - $OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ emacs .bashrc
Put this string into /home/$OPENACS_SERVICE_NAME/.bashrc:
export CVSROOT=/cvsroot[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit logout [root root]#Import all files into cvs. In order to work on files with source control, the files must be checked out from cvs. So we will import, move aside, and then check out all of the files. In the cvs import command, - service0 + $OPENACS_SERVICE_NAME refers to the cvs repository to use; it uses the CVSROOT plus this string, i.e. - /cvsroot/service0. + /cvsroot/$OPENACS_SERVICE_NAME. "OpenACS" is the vendor tag, and "HEAD" is the release tag. These tags will be useful in upgrading and - branching. -m sets the version comment.
[root root]# su - service0 -[service0 service0]$ cd /var/lib/aolserver/service0 -[service0 service0]$ cvs import -m "initial install" service0 OpenACS HEAD -N service0/license.txt -N service0/readme.txt + branching. -m sets the version comment.[root root]# su - $OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cvs import -m "initial install" $OPENACS_SERVICE_NAME OpenACS HEAD +N $OPENACS_SERVICE_NAME/license.txt +N $OPENACS_SERVICE_NAME/readme.txt (many lines omitted) -N service0/www/SYSTEM/flush-memoized-statement.tcl +N $OPENACS_SERVICE_NAME/www/SYSTEM/flush-memoized-statement.tcl No conflicts created by this import -[service0 service0]$ exit +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit [root root]# -su - service0 -cd /var/lib/aolserver/service0 -cvs import -m "initial install" service0 OpenACS HEAD -exitMove the original directory to a temporary location, and check out the cvs repository in its place.
[root root]# mv /var/lib/aolserver/service0 /var/tmp -[root root]# mkdir /var/lib/aolserver/service0 -[root root]# chown service0.service0 /var/lib/aolserver/service0 -[root root]# su - service0 -[service0 service0]$ cd /var/lib/aolserver -[service0 aolserver]$ cvs checkout service0 -cvs checkout: Updating service0 -U service0/license.txt +su - $OPENACS_SERVICE_NAME +cd /var/lib/aolserver/$OPENACS_SERVICE_NAME +cvs import -m "initial install" $OPENACS_SERVICE_NAME OpenACS HEAD +exitMove the original directory to a temporary location, and check out the cvs repository in its place.
[root root]# mv /var/lib/aolserver/$OPENACS_SERVICE_NAME /var/tmp +[root root]# mkdir /var/lib/aolserver/$OPENACS_SERVICE_NAME +[root root]# chown $OPENACS_SERVICE_NAME.$OPENACS_SERVICE_NAME /var/lib/aolserver/$OPENACS_SERVICE_NAME +[root root]# su - $OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver +[$OPENACS_SERVICE_NAME aolserver]$ cvs checkout $OPENACS_SERVICE_NAME +cvs checkout: Updating $OPENACS_SERVICE_NAME +U $OPENACS_SERVICE_NAME/license.txt (many lines omitted) -U service0/www/SYSTEM/dbtest.tcl -U service0/www/SYSTEM/flush-memoized-statement.tcl -[service0 aolserver]$ exit +U $OPENACS_SERVICE_NAME/www/SYSTEM/dbtest.tcl +U $OPENACS_SERVICE_NAME/www/SYSTEM/flush-memoized-statement.tcl +[$OPENACS_SERVICE_NAME aolserver]$ exit logout [root root]# -mv /var/lib/aolserver/service0 /var/tmp -mkdir /var/lib/aolserver/service0 -chown service0.service0 /var/lib/aolserver/service0 -su - service0 +mv /var/lib/aolserver/$OPENACS_SERVICE_NAME /var/tmp +mkdir /var/lib/aolserver/$OPENACS_SERVICE_NAME +chown $OPENACS_SERVICE_NAME.$OPENACS_SERVICE_NAME /var/lib/aolserver/$OPENACS_SERVICE_NAME +su - $OPENACS_SERVICE_NAME cd /var/lib/aolserver -cvs checkout service0 +cvs checkout $OPENACS_SERVICE_NAME exitIf the service starts correctly, come back and remove the temporary copy of the uploaded files.
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/database-management.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/database-management.html,v diff -u -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/database-management.html 5 May 2004 12:36:03 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/database-management.html 11 Jun 2004 10:17:37 -0000 1.21 @@ -1,4 +1,4 @@ -Chapter�7.�Database Management Table of Contents
+Chapter�7.�Database Management Table of Contents
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
Prev Home Next Diagnosing Performance Problems Up Running a PostgreSQL database on another server
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/db-api-detailed.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/db-api-detailed.html,v diff -u -r1.35 -r1.36 --- openacs-4/packages/acs-core-docs/www/db-api-detailed.html 5 May 2004 12:36:03 -0000 1.35 +++ openacs-4/packages/acs-core-docs/www/db-api-detailed.html 11 Jun 2004 10:17:37 -0000 1.36 @@ -1,4 +1,4 @@ -Database Access API By Jon Salz. Revised and expanded by Roberto Mello (rmello at fslc dot usu dot edu), July 2002.
+Database Access API By Jon Salz. Revised and expanded by Roberto Mello (rmello at fslc dot usu dot edu), July 2002.
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
Tcl procedures: /packages/acs-kernel/10-database-procs.tcl
Tcl initialization: /packages/acs-kernel/database-init.tcl
Index: openacs-4/packages/acs-core-docs/www/db-api.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/db-api.html,v diff -u -r1.35 -r1.36 --- openacs-4/packages/acs-core-docs/www/db-api.html 5 May 2004 12:36:03 -0000 1.35 +++ openacs-4/packages/acs-core-docs/www/db-api.html 11 Jun 2004 10:17:37 -0000 1.36 @@ -1,4 +1,4 @@ -
The OpenACS Database Access API +
The OpenACS Database Access API By Pete Su and Jon Salz. Modified by Roberto Mello.
One of OpenACS's great strengths is that code written for it is Index: openacs-4/packages/acs-core-docs/www/dev-guide.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/dev-guide.html,v diff -u -r1.24 -r1.25 --- openacs-4/packages/acs-core-docs/www/dev-guide.html 5 May 2004 12:36:03 -0000 1.24 +++ openacs-4/packages/acs-core-docs/www/dev-guide.html 11 Jun 2004 10:17:37 -0000 1.25 @@ -1 +1 @@ -
Chapter�11.�Development Reference Table of Contents
- OpenACS Packages
- OpenACS Data Models and the Object System
- The Request Processor
- The OpenACS Database Access API
- Using Templates in OpenACS
- Groups, Context, Permissions
- Writing OpenACS Application Pages
- Parties in OpenACS
- OpenACS Permissions Tediously Explained
- Object Identity
- Programming with AOLserver
- Using HTML Forms
View comments on this page at openacs.org +Chapter�11.�Development Reference Table of Contents
- OpenACS Packages
- OpenACS Data Models and the Object System
- The Request Processor
- The OpenACS Database Access API
- Using Templates in OpenACS
- Groups, Context, Permissions
- Writing OpenACS Application Pages
- Parties in OpenACS
- OpenACS Permissions Tediously Explained
- Object Identity
- Programming with AOLserver
- Using HTML Forms
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/doc-standards.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/doc-standards.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/doc-standards.html 5 May 2004 12:36:03 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/doc-standards.html 11 Jun 2004 10:17:37 -0000 1.7 @@ -1 +1 @@ -Chapter�13.�Documentation Standards View comments on this page at openacs.org +Chapter�13.�Documentation Standards View comments on this page at openacs.org 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.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/docbook-primer.html 5 May 2004 12:36:03 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/docbook-primer.html 11 Jun 2004 10:17:37 -0000 1.37 @@ -1,4 +1,4 @@ -OpenACS Documentation Guide +
OpenACS Documentation Guide By Claus Rasmussen, with additions by Roberto Mello and the OpenACS Community
@@ -36,7 +36,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. @@ -57,7 +57,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 @@ -106,7 +106,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 @@ -130,20 +130,20 @@ sources of these DocBook documents to get an idea of how they are tied together.- + 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.
@@ -158,7 +158,7 @@ </sect1>
- + Inside this container your document will be split up into <sect2>'s, each with the same requirements - id and xreflabel @@ -167,7 +167,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.
- + 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>. @@ -177,12 +177,12 @@ <programlisting> is used. Just wrap your code block in it; mono-spacing, indents and all that stuff is taken care of automatically.
- + 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:
Put this in your XML:
+Check out how I link to a subsection of the Developer's Guide:
Put this in your XML:
- Find information about creating a package in <xref linkend="packages-making-a-package"></xref>.And the output is:
@@ -206,7 +206,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 @@ -227,7 +227,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>, @@ -253,7 +253,7 @@ Put your graphics in a separate directory ("images") and link to them only with relative paths.
- + 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 @@ -298,7 +298,7 @@ </variablelist>
- + DocBook supports several types of tables, but in most cases, the <informaltable> is enough: @@ -335,7 +335,7 @@ <table> for an example.
- + Our documentation uses two flavors of emphasis - italics and bold type. DocBook uses one - <emphasis>.
Index: openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html,v diff -u -r1.34 -r1.35 --- openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html 5 May 2004 12:36:03 -0000 1.34 +++ openacs-4/packages/acs-core-docs/www/eng-standards-constraint-naming.html 11 Jun 2004 10:17:37 -0000 1.35 @@ -1,4 +1,4 @@ -
Constraint naming standard By Michael Bryzek
+Constraint naming standard By Michael Bryzek
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Index: openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html,v diff -u -r1.34 -r1.35 --- openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html 5 May 2004 12:36:03 -0000 1.34 +++ openacs-4/packages/acs-core-docs/www/eng-standards-filenaming.html 11 Jun 2004 10:17:37 -0000 1.35 @@ -1,4 +1,4 @@ -
ACS File Naming and Formatting Standards By Michael Yoon and Aurelius Prochazka
+ACS File Naming and Formatting Standards By Michael Yoon and Aurelius Prochazka
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Index: openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html,v diff -u -r1.35 -r1.36 --- openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html 5 May 2004 12:36:03 -0000 1.35 +++ openacs-4/packages/acs-core-docs/www/eng-standards-plsql.html 11 Jun 2004 10:17:37 -0000 1.36 @@ -1,4 +1,4 @@ -
PL/SQL Standards +
PL/SQL Standards By Richard Li and Yon Feldman
OpenACS docs are written by the named authors, and may be edited Index: openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html,v diff -u -r1.35 -r1.36 --- openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html 5 May 2004 12:36:03 -0000 1.35 +++ openacs-4/packages/acs-core-docs/www/eng-standards-versioning.html 11 Jun 2004 10:17:37 -0000 1.36 @@ -1,4 +1,4 @@ -Release Version Numbering By Ron Henderson
Revised by Joel Aufrecht
+Release Version Numbering By Ron Henderson
Revised by Joel Aufrecht
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Index: openacs-4/packages/acs-core-docs/www/eng-standards.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/eng-standards.html,v diff -u -r1.20 -r1.21 --- openacs-4/packages/acs-core-docs/www/eng-standards.html 5 May 2004 12:36:03 -0000 1.20 +++ openacs-4/packages/acs-core-docs/www/eng-standards.html 11 Jun 2004 10:17:37 -0000 1.21 @@ -1 +1 @@ -
Chapter�12.�Engineering Standards View comments on this page at openacs.org +Chapter�12.�Engineering Standards View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html,v diff -u -r1.24 -r1.25 --- openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 5 May 2004 12:36:03 -0000 1.24 +++ openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 11 Jun 2004 10:17:37 -0000 1.25 @@ -1,4 +1,4 @@ -External Authentication Requirements People have plenty of usernames and passwords already, we +
External Authentication Requirements People have plenty of usernames and passwords already, we don't want them to have yet another. We want people to be able to log in to OpenACS with the same password they use to log in to any other system.
Besides, administrators have better things to do than create @@ -44,7 +44,7 @@ only one implementation of the authentication API, namly the one included in OpenACS Core.
Authentication Driver API: The service contract which authentication drivers implement.
Authentication:
-
Account Management (NO PICTURE YET)
Batch Synchronization (NO PICTURE YET)
Feature Status Description EXT-AUTH-01 A Extend Authentication/Acct Status API EXT-AUTH-03 A Account Creation API EXT-AUTH-05 A Password Management API EXT-AUTH-30 A Authority Management API
Feature Status Description EXT-AUTH-04 A Rewrite login, register, and admin pages to use APIs EXT-AUTH-38 A ad_form complain feature EXT-AUTH-19 A Rewrite password recovery to use API EXT-AUTH-21 A Rewrite email verification with API EXT-AUTH-28 A Username is email switch Users will log in using a username, a authority, and a +
Account Management (NO PICTURE YET)
Batch Synchronization (NO PICTURE YET)
Feature Status Description EXT-AUTH-01 A Extend Authentication/Acct Status API EXT-AUTH-03 A Account Creation API EXT-AUTH-05 A Password Management API EXT-AUTH-30 A Authority Management API
Feature Status Description EXT-AUTH-04 A Rewrite login, register, and admin pages to use APIs EXT-AUTH-38 A ad_form complain feature EXT-AUTH-19 A Rewrite password recovery to use API EXT-AUTH-21 A Rewrite email verification with API EXT-AUTH-28 A Username is email switch Users will log in using a username, a authority, and a password. The authority is the source for user/password verification. OpenACS can be an authority itself.
Each user in OpenACS will belong to exactly one authority, which can either be the "local" OpenACS users table, in which case the Index: openacs-4/packages/acs-core-docs/www/filename.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/filename.html,v diff -u -r1.35 -r1.36 --- openacs-4/packages/acs-core-docs/www/filename.html 5 May 2004 12:36:03 -0000 1.35 +++ openacs-4/packages/acs-core-docs/www/filename.html 11 Jun 2004 10:17:37 -0000 1.36 @@ -1,4 +1,4 @@ -
Detailed Design Documentation Template By You
+
Detailed Design Documentation Template By You
NOTE: Some of the sections of this template may not apply to your package, e.g. there may be no user-visible UI elements for a component of the OpenACS Core. Furthermore, it may be easier in some circumstances Index: openacs-4/packages/acs-core-docs/www/for-everyone.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/for-everyone.html,v diff -u -r1.17 -r1.18 --- openacs-4/packages/acs-core-docs/www/for-everyone.html 5 May 2004 12:36:03 -0000 1.17 +++ openacs-4/packages/acs-core-docs/www/for-everyone.html 11 Jun 2004 10:17:37 -0000 1.18 @@ -1 +1 @@ -
Part�I.�OpenACS For Everyone
Prev Home Next OpenACS Core Documentation Up Chapter�1.�High level information: What is OpenACS?
docs@openacs.orgView comments on this page at openacs.org +Part�I.�OpenACS For Everyone
Prev Home Next OpenACS Core Documentation Up Chapter�1.�High level information: What is OpenACS?
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/form-builder.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/form-builder.html,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/form-builder.html 5 May 2004 12:36:03 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/form-builder.html 11 Jun 2004 10:17:37 -0000 1.15 @@ -1,4 +1,4 @@ -Using HTML Forms Some elements have more than one choice, or can submit more than one value.
Creating the form element.�Populate a list of lists with values for the option list.
set foo_options [db_list_of_lists foo_option_list " +Using HTML Forms Some elements have more than one choice, or can submit more than one value.
Creating the form element.�Populate a list of lists with values for the option list.
set foo_options [db_list_of_lists foo_option_list " select foo, foo_id from foos @@ -9,6 +9,39 @@ {options $foo_options} }This will result in a single name/value pair coming back in the submitted form. Handle this within the same ad_form structure, in the -new_data and -edit_data. In the example, it is available as $foo
See also the W3C spec for "The SELECT, OPTGROUP, and OPTION elements". -
Here are some common errors and what to do when you - encounter them:
A situation you may run into often is where you want to pull + in form items from a sub-category when the first category is + selected. Ad_form makes this fairly easy to do. In the definition + of your form element, include an html section
{pm_task_id:integer(select),optional + {label "Subject"} + {options {$task_options}} + {html {onChange "document.form_name.__refreshing_p.value='1';submit()"}} + {value $pm_task_id} + } +What this will do is set the value for pm_task_id and all the + other form elements, and resubmit the form. If you then include a + block that extends the form, you'll have the opportunity to add in + subcategories: +
if {[exists_and_not_null pm_task_id]} { + db_1row get_task_values { } + ad_form -extend -name form_name -form { ... } +Note that you will get strange results when you try to set + the values for the form. You'll need to set them explicitly in an + -on_refresh section of your ad_form. In that section, you'll get + the values from the database, and set the values as so:
db_1row get_task_values { } + template::element set_value form_name estimated_hours_work $estimated_hours_work +A good way to troubleshoot when you're using ad_form is to + add the following code at the top of the .tcl page (thanks Jerry + Asher):
+ns_log notice it's my page! +set mypage [ns_getform] +if {[string equal "" $mypage]} { + ns_log notice no form was submitted on my page +} else { + ns_log notice the following form was submitted on my page + ns_set print $mypage +} +Here are some common errors and what to do when you + encounter them:
($Id$)View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/general-documents.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/general-documents.html,v diff -u -r1.17 -r1.18 --- openacs-4/packages/acs-core-docs/www/general-documents.html 5 May 2004 12:36:03 -0000 1.17 +++ openacs-4/packages/acs-core-docs/www/general-documents.html 11 Jun 2004 10:17:37 -0000 1.18 @@ -1 +1 @@ -Chapter�1.�High level information: What is OpenACS? Table of Contents
View comments on this page at openacs.org +Chapter�1.�High level information: What is OpenACS? Table of Contents
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/groups-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/groups-design.html,v diff -u -r1.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/groups-design.html 5 May 2004 12:36:03 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/groups-design.html 11 Jun 2004 10:17:37 -0000 1.23 @@ -1,4 +1,4 @@ -Groups Design By Rafael H. Schloming and Mark Thomas
+Groups Design By Rafael H. Schloming and Mark Thomas
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
User directory
Sitewide administrator directory
Subsite administrator directory
TCL script directory
Data model
PL/SQL file
Index: openacs-4/packages/acs-core-docs/www/groups-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/groups-requirements.html,v diff -u -r1.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/groups-requirements.html 5 May 2004 12:36:03 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/groups-requirements.html 11 Jun 2004 10:17:37 -0000 1.23 @@ -1,4 +1,4 @@ -
Groups Requirements By Rafael H. Schloming, Mark Thomas
+Groups Requirements By Rafael H. Schloming, Mark Thomas
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Almost all database-backed websites have users, and need to model the Index: openacs-4/packages/acs-core-docs/www/high-avail.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/high-avail.html,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/high-avail.html 5 May 2004 12:36:03 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/high-avail.html 11 Jun 2004 10:17:37 -0000 1.10 @@ -1 +1 @@ -
High Availability/High Performance Configurations
Prev Home Next Running multiple services on one machine Up Staged Deployment for Production Networks
docs@openacs.orgView comments on this page at openacs.org +High Availability/High Performance Configurations
Prev Home Next Running multiple services on one machine Up Staged Deployment for Production Networks
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/how-do-I.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/how-do-I.html,v diff -u -r1.12 -r1.13 --- openacs-4/packages/acs-core-docs/www/how-do-I.html 5 May 2004 12:36:03 -0000 1.12 +++ openacs-4/packages/acs-core-docs/www/how-do-I.html 11 Jun 2004 10:17:37 -0000 1.13 @@ -1,8 +1,6 @@ -How Do I? The easiest way is to install the Edit-This-Page package.
Log in to the web site as an administrator.
Click on Admin > Install Software > Install from OpenACS Repository / Install new application
- - Choose Edit This Page and install -
Follow the instructions within Edit This Page (the link will only work after Edit This Page is installed).
Go to /admin/permissions and grant Create to Registered Users
Suppose you install a new site and install Weblogger, and you want all visitors to see weblogger automatically.
On the front page, click the Admin button.
On the administration page, click Parameters link.
Change the parameter IndexRedirectUrl to be the URI of the desired application. For a default weblogger installation, this would be weblogger/. Note the trailing slash.
Every page within an OpenACS site is part of a subsite More information). The home page of the entire site is the front page is a special, default instance of a subsite, served from /var/lib/aolserver/service0/www. If an index page is not found there, the default index page for all subsites is used. To customize the code on the front page, copy the default index page from the Subsite package to the Main site and edit it:
cp /var/lib/aolserver/service0/packages/acs-subsite/www/index* /var/lib/aolserver/service0/wwwEdit the new index.adp to change the text; you shouldn't need to edit index.tcl unless you are adding new functionality.
Almost all pages on an OpenACS site use ACS Templating, and so their appearance is driven by a layer of different files. Let's examine how this works:
+
How Do I? The easiest way is to install the Edit-This-Page package.
Log in to the web site as an administrator.
Click on Admin > Install Software > Install from OpenACS Repository / Install new application
Choose Edit This Page and install
Follow the instructions within Edit This Page (the link will only work after Edit This Page is installed).
Go to /admin/permissions and grant Create to Registered Users
Suppose you install a new site and install Weblogger, and you want all visitors to see weblogger automatically.
On the front page, click the Admin button.
On the administration page, click Parameters link.
Change the parameter IndexRedirectUrl to be the URI of the desired application. For a default weblogger installation, this would be weblogger/. Note the trailing slash.
Every page within an OpenACS site is part of a subsite More information). The home page of the entire site is the front page is a special, default instance of a subsite, served from /var/lib/aolserver/$OPENACS_SERVICE_NAME/www. If an index page is not found there, the default index page for all subsites is used. To customize the code on the front page, copy the default index page from the Subsite package to the Main site and edit it:
cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-subsite/www/index* /var/lib/aolserver/$OPENACS_SERVICE_NAME/wwwEdit the new index.adp to change the text; you shouldn't need to edit index.tcl unless you are adding new functionality.
Almost all pages on an OpenACS site use ACS Templating, and so their appearance is driven by a layer of different files. Let's examine how this works:
A templated page uses an ADP/TCL pair. The first line in the ADP file is usually: -
<master>If it appears exactly like this, without any arguments, the template processer uses default-master for that subsite. For pages in /var/lib/aolserver/service0/www, this is /var/lib/aolserver/service0/www/default-master.adp and the associated .tcl file. -
The default-master is itself a normal ADP page. It draws the subsite navigation elements and invokes site-master (/var/lib/aolserver/service0/www/site-master.adp and .tcl)
The site-master draws site-wide navigation elements and invokes blank-master (/var/lib/aolserver/service0/www/blank-master.adp and .tcl).
Blank-master does HTML housekeeping and provides a framework for special sitewide navigation "meta" elements such as Translator widgets and Admin widgets.
Steps to Reproduce.�The events package does not allow users to register for new events.
Go to the http://yourserver.net/events as a visitor (ie, log out and, if necessary, clear cookies). This in on a 4.6.3 site with events version 0.1d3.
Select an available event
A link such as Registration: Deadline is 03/15/2004 10:00am. +
<master>If it appears exactly like this, without any arguments, the template processer uses default-master for that subsite. For pages in /var/lib/aolserver/$OPENACS_SERVICE_NAME/www, this is /var/lib/aolserver/$OPENACS_SERVICE_NAME/www/default-master.adp and the associated .tcl file. +
The default-master is itself a normal ADP page. It draws the subsite navigation elements and invokes site-master (/var/lib/aolserver/$OPENACS_SERVICE_NAME/www/site-master.adp and .tcl)
The site-master draws site-wide navigation elements and invokes blank-master (/var/lib/aolserver/$OPENACS_SERVICE_NAME/www/blank-master.adp and .tcl).
Blank-master does HTML housekeeping and provides a framework for special sitewide navigation "meta" elements such as Translator widgets and Admin widgets.
Steps to Reproduce.�The events package does not allow users to register for new events.
Go to the http://yourserver.net/events as a visitor (ie, log out and, if necessary, clear cookies). This in on a 4.6.3 site with events version 0.1d3.
Select an available event
A link such as Registration: Deadline is 03/15/2004 10:00am. � Login or sign up to register for this event. is visible. Click on "Login or sign up" -
Complete a new registration. Afterwards, you should be redirected back to the same page.
Actual Results: The page says "You do not have permission to register for this event."
Expected results: A link or form to sign up for the event is shown.
Finding the problem.�We start with the page that has the error. In the URL it's http://myserver.net/events/event-info.tcl, so open the file /var/lib/aolserver/service0/packages/events/www/event-info.tcl. It contains this line:
set can_register_p [events::security::can_register_for_event_p -event_id $event_id]We need to know what that procedure does, so go to /api-doc, paste events::security::can_register_for_event_p into the ACS Tcl API Search box, and click Feeling Lucky. The next pages shows the proc, and we click "show source" to see more information. The body of the proc is simply
return [permission::permission_p -party_id $user_id -object_id $event_id -privilege write]This means that a given user must have the write privilige on the event in order to register. Let's assume that the priviliges inherit, so that if a user has the write privilige on the whole package, they will have the write privilege on the event.
Setting Permissions.�A permission has three parts: the privilige, the object of the privilige, and the subject being granted the privilige. In this case the privilige is "write," the object is the Events package, and the subject is all Registered Users.
To grant permissions on a package, start at the site map. Find the event package and click "Set permissions".
Click "Grant Permission"
Grant the write permission to Registered Users.
OpenACS 5.0 offers a prettier version at /admin/applications.
View comments on this page at openacs.org +Complete a new registration. Afterwards, you should be redirected back to the same page.
Actual Results: The page says "You do not have permission to register for this event."
Expected results: A link or form to sign up for the event is shown.
Finding the problem.�We start with the page that has the error. In the URL it's http://myserver.net/events/event-info.tcl, so open the file /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/events/www/event-info.tcl. It contains this line:
set can_register_p [events::security::can_register_for_event_p -event_id $event_id]We need to know what that procedure does, so go to /api-doc, paste events::security::can_register_for_event_p into the ACS Tcl API Search box, and click Feeling Lucky. The next pages shows the proc, and we click "show source" to see more information. The body of the proc is simply
return [permission::permission_p -party_id $user_id -object_id $event_id -privilege write]This means that a given user must have the write privilige on the event in order to register. Let's assume that the priviliges inherit, so that if a user has the write privilige on the whole package, they will have the write privilege on the event.
Setting Permissions.�A permission has three parts: the privilige, the object of the privilige, and the subject being granted the privilige. In this case the privilige is "write," the object is the Events package, and the subject is all Registered Users.
To grant permissions on a package, start at the site map. Find the event package and click "Set permissions".
Click "Grant Permission"
Grant the write permission to Registered Users.
OpenACS 5.0 offers a prettier version at /admin/applications.
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/i18n-convert.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-convert.html,v diff -u -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/i18n-convert.html 5 May 2004 12:36:03 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/i18n-convert.html 11 Jun 2004 10:17:37 -0000 1.11 @@ -1,4 +1,4 @@ -How to Internationalize a Package Tip
+
How to Internationalize a Package Tip
For multilingual websites we recommend using the UTF8 charset. In order for AOLserver to use utf8 you need to set the config parameters OutputCharset and @@ -63,14 +63,15 @@ are always is done with one of the valid lookups described above. The script further assumes that you have perl installed and in your path. Run the script like this: -
- acs-lang/bin/check-catalog.sh package_key -+ + acs-lang/bin/check-catalog.sh package_key + +
where package_key is the key of the package that you want to test. If you don't provide the package_key argument then all packages with catalog files will be checked. The script will run its checks primarily on en_US xml catalog files. -
Replace complicated keys with longer, simpler keys.�When writing in one language, it is possible to create clever code to make correct text. In English, for example, you can put an if command at the end of a word which adds "s" if a count is anything but 1. This pluralizes nouns correctly based on the data. However, it is confusing to read and, when internationalized, may result in message keys that are both confusing and impossible to set correctly in some languages. While internationalizing, watch out that the automate converter does not create such keys. Also, refactor compound text as you encounter it.
The automated system can easily get confused by tags within message texts, so that it tries to create two or three message keys for one long string with a tag in the middle. In these cases, uncheck those keys during the conversion and then edit the files directly. For example, this code:
<p class="form-help-text"><b>Invitations</b> are sent, +
Replace complicated keys with longer, simpler keys.�When writing in one language, it is possible to create clever code to make correct text. In English, for example, you can put an if command at the end of a word which adds "s" if a count is anything but 1. This pluralizes nouns correctly based on the data. However, it is confusing to read and, when internationalized, may result in message keys that are both confusing and impossible to set correctly in some languages. While internationalizing, watch out that the automate converter does not create such keys. Also, refactor compound text as you encounter it.
The automated system can easily get confused by tags within message texts, so that it tries to create two or three message keys for one long string with a tag in the middle. In these cases, uncheck those keys during the conversion and then edit the files directly. For example, this code:
<p class="form-help-text"><b>Invitations</b> are sent, when this wizard is completed and casting begins.</p>has a bold tag which confuses the converter into thinking there are two message keys for the text beginning "Invitations ..." where there should be one:
Instead, we cancel those keys, edit the file manually, and put in a single temporary message tag:
<p class="form-help-text"> <#Invitations_are_sent <b>Invitations</b> are sent, when this wizard is completed and casting begins.#> </p>Complex if statements may produce convoluted message keys that are very hard to localize. Rewrite these if statements. For example:
Select which case <if @simulation.casting_type@ eq "open">and @@ -155,6 +156,6 @@ <msg key="Fix_1">for</msg> <msg key="Fix_2">for Bugs</msg>Another example: Bug-tracker component maintainer" was converted to "[_ bug-tracker.Bug-tracker]". Instead, it should be bug_tracker_component_maintainer.
Translations in Avoid "clever" message reuse.�Translations may need to differ depending on the context in which the message appears. -
Quoting in the message catalog for tcl.�Watch out for quoting and escaping when editing text that is also code. For example, the original string
set title "Patch \"$patch_summary\" is nice."breaks if the message text retains all of the escaping that was in the tcl command:
<msg>Patch \"$patch_summary\" is nice.</msg>When it becomes a key, it should be:
<msg>Patch "$patch_summary" is nice.</msg>Also, some keys had %var;noquote%, which is not needed since those +
Avoid plurals.�Different languages create plurals differently. Try to avoid keys which will change based on the value of a number. OpenACS does not currently support internationalization of plurals. If you use two different keys, a plural and a singular form, your application will not localize properly for locales which use different rules or have more than two forms of plurals.
Quoting in the message catalog for tcl.�Watch out for quoting and escaping when editing text that is also code. For example, the original string
set title "Patch \"$patch_summary\" is nice."breaks if the message text retains all of the escaping that was in the tcl command:
<msg>Patch \"$patch_summary\" is nice.</msg>When it becomes a key, it should be:
<msg>Patch "$patch_summary" is nice.</msg>Also, some keys had %var;noquote%, which is not needed since those variables are not quoted (and in fact the variable won't even be recognized so you get the literal %var;noquote% in the output).
Be careful with curly brackets.�Code within curly brackets isn't evaluated. TCL uses curly brackets as an alternative way to build lists. But TCL also uses curly brackets as an alternative to quotation marks for quoting text. So this original code
array set names { key "Pretty" ...}... if converted to
array set names { key "[_bug-tracker.Pretty]" ...}... won't work since the _ func will not be called. Instead, it should be
array set names [list key [_bug-tracker.Pretty] ...]
Prev Home Next How Internationalization/Localization works in OpenACS Up Design Notes
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/i18n-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-design.html,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/i18n-design.html 5 May 2004 12:36:03 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/i18n-design.html 11 Jun 2004 10:17:37 -0000 1.5 @@ -1,2 +1,2 @@ -Design Notes User locale is a property of ad_conn, ad_conn locale. The request processor sets this by calling lang::conn::locale, which looks for the following in order of precedence:
Use user preference for this package (stored in ad_locale_user_prefs)
Use system preference for the package (stored in apm_packages)
Use user's general preference (stored in user_preferences)
Use Browser header (Accept-Language HTTP header)
Use system locale (an APM parameter for acs_lang)
default to en_US
For ADP pages, message key lookup occurs in the templating engine. For TCL pages, message key lookup happens with the _ function. In both cases, if the requested locale is not found but a locale which is the default for the language which matches your locale's language is +
Design Notes User locale is a property of ad_conn, ad_conn locale. The request processor sets this by calling lang::conn::locale, which looks for the following in order of precedence:
Use user preference for this package (stored in ad_locale_user_prefs)
Use system preference for the package (stored in apm_packages)
Use user's general preference (stored in user_preferences)
Use Browser header (Accept-Language HTTP header)
Use system locale (an APM parameter for acs_lang)
default to en_US
For ADP pages, message key lookup occurs in the templating engine. For TCL pages, message key lookup happens with the _ function. In both cases, if the requested locale is not found but a locale which is the default for the language which matches your locale's language is found, then that locale is offered instead.
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/i18n-introduction.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-introduction.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/i18n-introduction.html 5 May 2004 12:36:03 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/i18n-introduction.html 11 Jun 2004 10:17:37 -0000 1.7 @@ -1,4 +1,4 @@ -How Internationalization/Localization works in OpenACS +
How Internationalization/Localization works in OpenACS This document describes how to develop internationalized OpenACS packages, including writing new packages with internationalization and converting old packages. Text that @@ -22,7 +22,7 @@ database must use internationalized functions. All displayed dates must use internationalized functions. All displayed numbers must use internationalized functions. -
OpenACS does not have a general system for supporting multiple, localized versions of user-input content. This document currently refers only to internationalizing the text in the package user interface.
+
Localizable text must be handled in ADP files, in TCL files, and in APM Parameters. OpenACS provides two approaches, message keys and localized ADP files. For ADP pages which are mostly @@ -32,7 +32,7 @@ which are static and mostly text, it may be easier to create a new ADP page for each language. In this case, the pages are distinguished by a file naming convention. -
If the request processor finds a file named filename.locale.adp, where locale matches the user's locale, it will process that file instead of filename.adp. For example, for a user with locale tl_PH, the file index.tl_PH.adp, if found, will be used instead of index.adp. The locale-specific file should thus contain text in the language appropriate for that locale. The code in the page, however, should still be in English. Message keys are processed normally.
+
OpenACS does not have a general system for supporting multiple, localized versions of user-input content. This document currently refers only to internationalizing the text in the package user interface.
If the request processor finds a file named filename.locale.adp, where locale matches the user's locale, it will process that file instead of filename.adp. For example, for a user with locale tl_PH, the file index.tl_PH.adp, if found, will be used instead of index.adp. The locale-specific file should thus contain text in the language appropriate for that locale. The code in the page, however, should still be in English. Message keys are processed normally.
Internationalizing templates is about replacing human readable text in a certain language with internal message keys, which can then be dynamically replaced with real human language in @@ -90,13 +90,14 @@
Typical static key lookup: [_ package_key.message_key] - The message key and package key used here must be string literals, they can't result from variable evaluation.
Static key lookup with non-default locale: [lang::message::lookup $locale package_key.message_key] - The message key and package key used here must be string literals, they can't result from variable evaluation.
Dynamic key lookup: [lang::util::localize $var_with_embedded_message_keys] - In this case the message keys in the variable var_with_embedded_message_keys must appear as string literals \#package_key.message_key\# somewhere in the code. Here is an example of a dynamic lookup: -
set message_key_array { + set message_key_array { dynamic_key_1 \#package_key.message_key1\# dynamic_key_2 \#package_key.message_key2\# } set my_text [lang::util::localize $message_key_array([get_dynamic_key])] -+ +
Translatable texts in page TCL scripts are often found in page titles, context bars, and form labels and options. Many times the texts are @@ -122,24 +123,26 @@ variables and or procedure calls in it you should in most cases try to turn the whole text into one message in the catalog (remember that translators is made easier the longer the phrases to translate are). In those cases, follow these steps: -
- For each message call in the text, decide on a variable name and replace +
+ For each message call in the text, decide on a variable name and replace the procedure call with a variable lookup on the syntax %var_name%. Remember - to initialize a tcl variable with the same name on some line above the text.
- If the text is in a tcl file you must replace variable lookups - (occurences of $var_name or ${var_name}) with %var_name%
- You are now ready to follow the normal procedure and mark up the text using a + to initialize a tcl variable with the same name on some line above the text.
If the text is in a tcl file you must replace variable lookups + (occurences of $var_name or ${var_name}) with %var_name%
You are now ready to follow the normal procedure and mark up the text using a tempoarary message tag (<#_ text_with_percentage_vars#>) and run the action - replace tags with keys in the APM.
+ replace tags with keys in the APM.
The variable values in the message are usually fetched with upvar, here is an example from dotlrn: -
+ ad_return_complaint 1 "Error: A [parameter::get -parameter classes_pretty_name] must have <em>no</em>[parameter::get -parameter class_instances_pretty_plural] to be deleted" -+ was replaced by: -
+ set subject [parameter::get -localize -parameter classes_pretty_name] set class_instances [parameter::get -localize -parameter class_instances_pretty_plural] ad_return_complaint 1 [_ dotlrn.class_may_not_be_deleted] -+ +
This kind of interpolation also works in adp files where adp variable values will be inserted into the message.
Alternatively, you may pass in an array list of the variable values to be interpolated into the message so that @@ -206,4 +209,4 @@
Developers are responsible for creating the keys in the message catalog, which is available at /acs-lang/admin/ -
View comments on this page at openacs.org +
Prev Home Next Internationalization and Localization Up How to Internationalize a Package
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/i18n-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-overview.html,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/i18n-overview.html 5 May 2004 12:36:04 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/i18n-overview.html 11 Jun 2004 10:17:37 -0000 1.5 @@ -1 +1 @@ -Table�14.1.�Internationalization and Localization
Stage Task Who Internationalization Package Developer uses the acs-lang tools to replace all visible text in a package with message keys. (More information) Package Developer Release Management The newly internationalized package is released. Package Developer The translation server is updated with the new package. Translation server maintainers Localization Translators work in their respective locales to write text for each message key. (More information) Translators Release Management The translated text in the database of the translation server is compared to the current translations in the OpenACS code base, conflicts are resolved, and the new text is written to catalog files on the translation server. Translation server maintainers The catalog files are committed to the OpenACS code base. Translation server maintainers A new version of OpenACS core and/or affected packages is released and published in the OpenACS.org repository. Release Manager Upgrading Site Administrators upgrade their OpenACS sites, either via the automatic upgrade from the Repository or via tarball or CVS Site Administrators Site Administrators import the new translations. Existing local translations, if they exist, are not overwritten. Site Administrators
Prev Home Next Chapter�14.�Internationalization Up How Internationalization/Localization works in OpenACS
docs@openacs.orgView comments on this page at openacs.org +Internationalization and Localization Table�14.1.�Internationalization and Localization
Stage Task Who Internationalization Package Developer uses the acs-lang tools to replace all visible text in a package with message keys. (More information) Package Developer Release Management The newly internationalized package is released. Package Developer The translation server is updated with the new package. Translation server maintainers Localization Translators work in their respective locales to write text for each message key. (More information) Translators Release Management The translated text in the database of the translation server is compared to the current translations in the OpenACS code base, conflicts are resolved, and the new text is written to catalog files on the translation server. Translation server maintainers The catalog files are committed to the OpenACS code base. Translation server maintainers A new version of OpenACS core and/or affected packages is released and published in the OpenACS.org repository. Release Manager Upgrading Site Administrators upgrade their OpenACS sites, either via the automatic upgrade from the Repository or via tarball or CVS Site Administrators Site Administrators import the new translations. Existing local translations, if they exist, are not overwritten. Site Administrators
Prev Home Next Chapter�14.�Internationalization Up How Internationalization/Localization works in OpenACS
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/i18n-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-requirements.html,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/i18n-requirements.html 5 May 2004 12:36:04 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/i18n-requirements.html 11 Jun 2004 10:17:37 -0000 1.15 @@ -1,4 +1,4 @@ -OpenACS Internationalization Requirements by Henry Minsky, +
OpenACS Internationalization Requirements by Henry Minsky, Yon Feldman, Lars Pind, Peter Marklund, Index: openacs-4/packages/acs-core-docs/www/i18n-translators.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-translators.html,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/i18n-translators.html 5 May 2004 12:36:04 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/i18n-translators.html 11 Jun 2004 10:17:37 -0000 1.5 @@ -1 +1 @@ -
Translator's Guide Most translators use the OpenACS Public Translation Server, because the process of getting new message keys onto the server and getting new translations back into the distribution are handled by the maintainers of that machine. You can also do translation work on your own OpenACS site; this makes your own translations more readily available to you but also means that your work will not be shared with other users unless you take extra steps (contacting an OpenACS core developer or submitting a patch) to get your work back to the OpenACS core.
The basic steps for translators:
Go to the Localization page and choose the locale that you are translating to. If the locale is not present you need to visit Administration of Localization and create the locale.
Translating with Translator Mode.�To translate messages in the pages they appear, Toggle Translator Mode and then browse to the page you want to translate. Untranslated messages will have a yellow background and a red star that you click to translate the message. Translated messages have a green star next to them that is a hyperlink to editing your translation. There is a history mechanism that allows you to see previous translations in case you would want to revert a translation.
While in Translator mode, a list of all message keys appears at the bottom of each page.
Batch translation.�To translate many messages at once, go to Administration of Localization, click on the locale to translate, then click on a package, and then click Batch edit these messages.
View comments on this page at openacs.org +Translator's Guide Most translators use the OpenACS Public Translation Server, because the process of getting new message keys onto the server and getting new translations back into the distribution are handled by the maintainers of that machine. You can also do translation work on your own OpenACS site; this makes your own translations more readily available to you but also means that your work will not be shared with other users unless you take extra steps (contacting an OpenACS core developer or submitting a patch) to get your work back to the OpenACS core.
The basic steps for translators:
Go to the Localization page and choose the locale that you are translating to. If the locale is not present you need to visit Administration of Localization and create the locale.
Translating with Translator Mode.�To translate messages in the pages they appear, Toggle Translator Mode and then browse to the page you want to translate. Untranslated messages will have a yellow background and a red star that you click to translate the message. Translated messages have a green star next to them that is a hyperlink to editing your translation. There is a history mechanism that allows you to see previous translations in case you would want to revert a translation.
While in Translator mode, a list of all message keys appears at the bottom of each page.
Batch translation.�To translate many messages at once, go to Administration of Localization, click on the locale to translate, then click on a package, and then click Batch edit these messages.
When creating a new locale based on an existing one, such as creating the Guatamalan version of Spanish, you can copy the existing locale's catalog files using the script /packages/acs-core-docs/www/files/create-new-catalog.sh.
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/i18n.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n.html,v diff -u -r1.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/i18n.html 5 May 2004 12:36:04 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/i18n.html 11 Jun 2004 10:17:37 -0000 1.23 @@ -1,7 +1,7 @@ -Chapter�14.�Internationalization Table of Contents
+
Chapter�14.�Internationalization Table of Contents
By Peter Marklund and Lars Pind
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -View comments on this page at openacs.org +
Prev Home Next System/Application Requirements Template Up Internationalization and Localization
docs@openacs.orgView comments on this page at openacs.org 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.37 -r1.38 --- openacs-4/packages/acs-core-docs/www/index.html 5 May 2004 12:36:04 -0000 1.37 +++ openacs-4/packages/acs-core-docs/www/index.html 11 Jun 2004 10:17:37 -0000 1.38 @@ -1 +1 @@ -OpenACS Core Documentation Table of Contents
- I. OpenACS For Everyone
- II. Administrator's Guide
- 2. Installation Overview
- 3. Complete Installation
- 4. Configuring a new OpenACS Site
- 5. Upgrading
- 6. Production Environments
- Starting and Stopping an OpenACS instance.
- AOLserver keepalive with inittab
- Running multiple services on one machine
- High Availability/High Performance Configurations
- Staged Deployment for Production Networks
- Installing SSL Support for an OpenACS service
- Set up Log Analysis Reports
- External uptime validation
- Diagnosing Performance Problems
- 7. Database Management
- 8. Backup and Recovery
- A. Install Red Hat 8/9
- B. Install additional supporting software
- Unpack the OpenACS tarball
- Initialize CVS (OPTIONAL)
- Add PSGML commands to emacs init file (OPTIONAL)
- Install Daemontools (OPTIONAL)
- Install qmail (OPTIONAL)
- Install Analog web file analyzer
- Install nspam
- Install Full Text Search
- Install nsopenssl
- Install tclwebtest.
- Install PHP for use in AOLserver
- Install Squirrelmail for use as a webmail system for OpenACS
- Install AOLserver 3.3oacs1
- A. Credits
- III. For OpenACS Package Developers
- 1. Development Tutorial
- 2. Advanced Topics
- 3. Development Reference
- OpenACS Packages
- OpenACS Data Models and the Object System
- The Request Processor
- The OpenACS Database Access API
- Using Templates in OpenACS
- Groups, Context, Permissions
- Writing OpenACS Application Pages
- Parties in OpenACS
- OpenACS Permissions Tediously Explained
- Object Identity
- Programming with AOLserver
- Using HTML Forms
- 4. Engineering Standards
- 5. Documentation Standards
- 6. Internationalization
- B. Using CVS with an OpenACS Site
- IV. For OpenACS Platform Developers
- 7. Kernel Documentation
- Overview
- Object Model Requirements
- Object Model Design
- Permissions Requirements
- Permissions Design
- Groups Requirements
- Groups Design
- Subsites Requirements
- Subsites Design Document
- Package Manager Requirements
- Package Manager Design
- Database Access API
- OpenACS Internationalization Requirements
- Security Requirements
- Security Design
- Security Notes
- Request Processor Requirements
- Request Processor Design
- Documenting Tcl Files: Page Contracts and Libraries
- Bootstrapping OpenACS
- External Authentication Requirements
- 8. Releasing OpenACS
- Index
List of Figures
- 4.1. Site Templates
- 4.2. Granting Permissions
- 4.3. Granting Permissions in 5.0
- 5.1. Upgrading with the APM
- 5.2. Upgrading a local CVS repository
- 6.1. Multiple-server configuration
- 6.2. Simple A/B Deployment - Step 1
- 6.3. Simple A/B Deployment - Step 2
- 6.4. Simple A/B Deployment - Step 3
- 6.5. Complex A/B Deployment - Step 1
- 6.6. Complex A/B Deployment - Step 2
- 6.7. Complex A/B Deployment - Step 3
- 6.8. Query Analysis example
- 8.1. Backup and Recovery Strategy
- 1.1. Assumptions in this section
- 1.2. Tutorial Data Model
- 1.3. The Database Creation Script
- 1.4. Database Deletion Script
- 1.5. Page Map
- 2.1. Upgrading a local CVS repository
List of Tables
List of Examples
View comments on this page at openacs.org +OpenACS Core Documentation Table of Contents
- I. OpenACS For Everyone
- II. Administrator's Guide
- 2. Installation Overview
- 3. Complete Installation
- 4. Configuring a new OpenACS Site
- 5. Upgrading
- 6. Production Environments
- Starting and Stopping an OpenACS instance.
- AOLserver keepalive with inittab
- Running multiple services on one machine
- High Availability/High Performance Configurations
- Staged Deployment for Production Networks
- Installing SSL Support for an OpenACS service
- Set up Log Analysis Reports
- External uptime validation
- Diagnosing Performance Problems
- 7. Database Management
- 8. Backup and Recovery
- A. Install Red Hat 8/9
- B. Install additional supporting software
- Unpack the OpenACS tarball
- Initialize CVS (OPTIONAL)
- Add PSGML commands to emacs init file (OPTIONAL)
- Install Daemontools (OPTIONAL)
- Install qmail (OPTIONAL)
- Install Analog web file analyzer
- Install nspam
- Install Full Text Search
- Install nsopenssl
- Install tclwebtest.
- Install PHP for use in AOLserver
- Install Squirrelmail for use as a webmail system for OpenACS
- Install AOLserver 3.3oacs1
- A. Credits
- III. For OpenACS Package Developers
- 1. Development Tutorial
- 2. Advanced Topics
- 3. Development Reference
- OpenACS Packages
- OpenACS Data Models and the Object System
- The Request Processor
- The OpenACS Database Access API
- Using Templates in OpenACS
- Groups, Context, Permissions
- Writing OpenACS Application Pages
- Parties in OpenACS
- OpenACS Permissions Tediously Explained
- Object Identity
- Programming with AOLserver
- Using HTML Forms
- 4. Engineering Standards
- 5. Documentation Standards
- 6. Internationalization
- B. Using CVS with an OpenACS Site
- IV. For OpenACS Platform Developers
- 7. Kernel Documentation
- Overview
- Object Model Requirements
- Object Model Design
- Permissions Requirements
- Permissions Design
- Groups Requirements
- Groups Design
- Subsites Requirements
- Subsites Design Document
- Package Manager Requirements
- Package Manager Design
- Database Access API
- OpenACS Internationalization Requirements
- Security Requirements
- Security Design
- Security Notes
- Request Processor Requirements
- Request Processor Design
- Documenting Tcl Files: Page Contracts and Libraries
- Bootstrapping OpenACS
- External Authentication Requirements
- 8. Releasing OpenACS
- Index
List of Figures
- 4.1. Site Templates
- 4.2. Granting Permissions
- 4.3. Granting Permissions in 5.0
- 5.1. Upgrading with the APM
- 5.2. Upgrading a local CVS repository
- 6.1. Multiple-server configuration
- 6.2. Simple A/B Deployment - Step 1
- 6.3. Simple A/B Deployment - Step 2
- 6.4. Simple A/B Deployment - Step 3
- 6.5. Complex A/B Deployment - Step 1
- 6.6. Complex A/B Deployment - Step 2
- 6.7. Complex A/B Deployment - Step 3
- 6.8. Query Analysis example
- 8.1. Backup and Recovery Strategy
- 1.1. Assumptions in this section
- 1.2. Tutorial Data Model
- 1.3. The Database Creation Script
- 1.4. Database Deletion Script
- 1.5. Page Map
- 2.1. Upgrading a local CVS repository
List of Tables
List of Examples
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.21 -r1.22 --- openacs-4/packages/acs-core-docs/www/individual-programs.html 5 May 2004 12:36:04 -0000 1.21 +++ openacs-4/packages/acs-core-docs/www/individual-programs.html 11 Jun 2004 10:17:37 -0000 1.22 @@ -1,4 +1,4 @@ -Prerequisite Software +Prerequisite Software OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Index: openacs-4/packages/acs-core-docs/www/install-cvs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-cvs.html,v diff -u -r1.25 -r1.26 --- openacs-4/packages/acs-core-docs/www/install-cvs.html 5 May 2004 12:36:04 -0000 1.25 +++ openacs-4/packages/acs-core-docs/www/install-cvs.html 11 Jun 2004 10:17:37 -0000 1.26 @@ -1,4 +1,4 @@ -
Initialize CVS (OPTIONAL) CVS is a source control system. Create and initialize a +
Initialize CVS (OPTIONAL) CVS is a source control system. Create and initialize a directory for a local cvs repository.
[root tmp]# mkdir /cvsroot [root tmp]# cvs -d /cvsroot init [root tmp]# Index: openacs-4/packages/acs-core-docs/www/install-daemontools.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-daemontools.html,v diff -u -r1.26 -r1.27 --- openacs-4/packages/acs-core-docs/www/install-daemontools.html 5 May 2004 12:36:04 -0000 1.26 +++ openacs-4/packages/acs-core-docs/www/install-daemontools.html 11 Jun 2004 10:17:37 -0000 1.27 @@ -1,9 +1,9 @@ -Install Daemontools (OPTIONAL) Daemontools is a collection of programs for controlling +
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.
Install Daemontools
download daemontools and install it.
Red Hat 8
[root root]# mkdir -p /package + services.
Install Daemontools
download daemontools and install it.
Red Hat 8
[root root]# mkdir -p /package [root root]# chmod 1755 /package/ [root root]# cd /package/ [root package]# tar xzf /tmp/daemontools-0.76.tar.gz Index: openacs-4/packages/acs-core-docs/www/install-full-text-search.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/install-full-text-search.html,v diff -u -r1.24 -r1.25 --- openacs-4/packages/acs-core-docs/www/install-full-text-search.html 5 May 2004 12:36:04 -0000 1.24 +++ openacs-4/packages/acs-core-docs/www/install-full-text-search.html 11 Jun 2004 10:17:37 -0000 1.25 @@ -1,7 +1,7 @@ -Install Full Text Search By Joel Aufrecht and Malte Sussdorff
+Install Full Text Search By Joel Aufrecht and Malte Sussdorff
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -If you want full text search, and you are running PostgreSQL, install this module to support FTS. Do this step after you have installed both PostgreSQL and +
If you want full text search, and you are running PostgreSQL, install this module to support FTS. Do this step after you have installed both PostgreSQL and AOLserver. You will need the openfts tarball in /tmp.
Install Tsearch. This is a PostgreSQL module that OpenFTS requires.
[root root]# su - postgres @@ -76,24 +76,30 @@ make su postgres make install -exitIf you are installing Full Text Search, add required packages to the new database. (In order for full text search to work, you must also install the PostgreSQL - OpenFTS module and prerequisites.)
[service0 service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql + OpenFTS module and prerequisites.)[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ /usr/local/pgsql/bin/psql $OPENACS_SERVICE_NAME -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql BEGIN CREATE (many lines omitted) INSERT 0 1 COMMIT -[service0 service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts/openfts.sql +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ /usr/local/pgsql/bin/psql $OPENACS_SERVICE_NAME -f /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts/openfts.sql CREATE CREATE -[service0 service0]$ -/usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql -/usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts/openfts.sqlIf you have installed OpenFTS, you can enable it for this service. Uncomment this line from config.tcl. (To uncomment a line in a tcl file, remove the # at the beginning of the line.)
#ns_param nsfts ${bindir}/nsfts.so
Click Admin on the top of the default home page. If prompted, log in with the account and password you entered during install.
Click on the Install +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ +/usr/local/pgsql/bin/psql $OPENACS_SERVICE_NAME -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql +/usr/local/pgsql/bin/psql $OPENACS_SERVICE_NAME -f /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts/openfts.sql
Note
+ If you get the error + ERROR: could not access file "$libdir/tsearch": no such file or directory + It is probably because PostgreSQL's libdir configuration variable points to a diffent directory than where tsearch is. + You can find out where PostgreSQL expects to find tsearch via +
pg_config --pkglibdir+
If you have installed OpenFTS, you can enable it for this service. Uncomment this line from config.tcl. (To uncomment a line in a tcl file, remove the # at the beginning of the line.)
#ns_param nsfts ${bindir}/nsfts.so
Click Admin on the top of the default home page. If prompted, log in with the account and password you entered during install.
Click on the Install software link.
Click on the Install -new service link.
Click on the Install link next to OpenFTS Driver.
Restart the service.
[service0 service0]$ svc -t /service/service0 -[service0 service0]$
Wait a minute, then browse back to the home page.
Click on Admin on the top of the screen.
Click on Main Site Administration in the "Subsite Administration" section.
Click on Site Map in the "Advanced Features" section.
Mount the OpenFTS Full Text Search Engine in the site map.
Click the new sub folder link on the "/" line, the first line under Main Site:/.
Type openfts +new service link.
Click on the Install link next to OpenFTS Driver.
Restart the service.
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ svc -t /service/$OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$
Wait a minute, then browse back to the home page.
Click on Admin on the top of the screen.
Click on Main Site Administration in the "Subsite Administration" section.
Click on Site Map in the "Advanced Features" section.
Mount the OpenFTS Full Text Search Engine in the site map.
Click the new sub folder link on the "/" line, the first line under Main Site:/.
Type openfts and click New.
On the new openfts line, click the mount link.
Click OpenFTS Driver.
On the openfts line, click set parameters.
Change openfts_tcl_src_path to /usr/local/src/Search-OpenFTS-tcl-0.3.2/ and click Set Parameters
Mount the Search interface in the site map.
Click the @@ -107,17 +113,17 @@ search from the drop-down list, and click New. -
Restart the service.
[service0 service0]$ svc -t /service/service0 -[service0 service0]$
Wait a minute, then click on Main Site at the top of the page.
Initialize the OpenFTS Engine. This creates a set of tables in the database to support FTS.
Near the bottom of the page, click on the OpenFTS Driver link. Click on Administration. +
Restart the service.
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ svc -t /service/$OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$
Wait a minute, then click on Main Site at the top of the page.
Initialize the OpenFTS Engine. This creates a set of tables in the database to support FTS.
Near the bottom of the page, click on the OpenFTS Driver link. Click on Administration. Click on Initialize OpenFTS Engine. Click Initialize OpenFTS Engine.
Add the FTS Engine service contract
Click on the DevAdmin.
Click on the Service Contract link.
On the FtsEngineDriver line, click Install. -
Restart the service.
[service0 service0]$ svc -t /service/service0 -[service0 service0]$
Enabling Full Text Search in packages at the moment is not trivial. It involves a couple of steps, which I will illustrate taking lars-blogger as an example package
Install the package. +
Restart the service.
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ svc -t /service/$OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$
Enabling Full Text Search in packages at the moment is not trivial. It involves a couple of steps, which I will illustrate taking lars-blogger as an example package
Install the package.
Click Admin on the top of the default home page. If prompted, log in with the account and password you entered during install.
Click on the Install software link.
Click on the Install new application link.
Click on the Install link next to Weblogger.
Install all required packages as well (always say okay until you shall restart the server)
-
Load the service contracts datamodell and enable the service contract
[service0 service0]$ cd packages/lars-blogger/sql/postgresql -[service0 postgresql]$ psql service0 -f lars-blogger-sc-create.sql
Note: Usually this script is called package_name-sc-create.sql
Restart the service.
[service0 postgresql]$ svc -t /service/service0 - [service0 postgresl]$
If you are lucky, Full Text Search is enabled now, if not consult http://openacs.org/forums/message-view?message_id=154759. This link also contains some hints on how to make sure it is enabled.
View comments on this page at openacs.org +Load the service contracts datamodell and enable the service contract
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd packages/lars-blogger/sql/postgresql +[$OPENACS_SERVICE_NAME postgresql]$ psql $OPENACS_SERVICE_NAME -f lars-blogger-sc-create.sql
Note: Usually this script is called package_name-sc-create.sql
Restart the service.
[$OPENACS_SERVICE_NAME postgresql]$ svc -t /service/$OPENACS_SERVICE_NAME + [$OPENACS_SERVICE_NAME postgresl]$
If you are lucky, Full Text Search is enabled now, if not consult http://openacs.org/forums/message-view?message_id=154759. This link also contains some hints on how to make sure it is enabled.
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/install-more-software.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-more-software.html,v diff -u -r1.11 -r1.12 --- openacs-4/packages/acs-core-docs/www/install-more-software.html 5 May 2004 12:36:04 -0000 1.11 +++ openacs-4/packages/acs-core-docs/www/install-more-software.html 11 Jun 2004 10:17:37 -0000 1.12 @@ -1,4 +1,4 @@ -Appendix�B.�Install additional supporting software Table of Contents
- Unpack the OpenACS tarball
- Initialize CVS (OPTIONAL)
- Add PSGML commands to emacs init file (OPTIONAL)
- Install Daemontools (OPTIONAL)
- Install qmail (OPTIONAL)
- Install Analog web file analyzer
- Install nspam
- Install Full Text Search
- Install nsopenssl
- Install tclwebtest.
- Install PHP for use in AOLserver
- Install Squirrelmail for use as a webmail system for OpenACS
- Install AOLserver 3.3oacs1
+Appendix�B.�Install additional supporting software Table of Contents
- Unpack the OpenACS tarball
- Initialize CVS (OPTIONAL)
- Add PSGML commands to emacs init file (OPTIONAL)
- Install Daemontools (OPTIONAL)
- Install qmail (OPTIONAL)
- Install Analog web file analyzer
- Install nspam
- Install Full Text Search
- Install nsopenssl
- Install tclwebtest.
- Install PHP for use in AOLserver
- Install Squirrelmail for use as a webmail system for OpenACS
- Install AOLserver 3.3oacs1
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.This section assumes that the source tarballs for supporting Index: openacs-4/packages/acs-core-docs/www/install-next-add-server.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-next-add-server.html,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/install-next-add-server.html 5 May 2004 12:36:04 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/install-next-add-server.html 11 Jun 2004 10:17:37 -0000 1.5 @@ -1,6 +1,6 @@ -
Running multiple services on one machine Services on different ports.�To run a different service on another port but the same +
Running multiple services on one machine Services on different ports.�To run a different service on another port but the same ip, simply repeat Install OpenACS 5.2.0d1 replacing - service0, and change the + $OPENACS_SERVICE_NAME, and change the
set httpport 8000 set httpsport 8443to different values.
Services on different host names.�For example, suppose you want to support Index: openacs-4/packages/acs-core-docs/www/install-next-backups.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-next-backups.html,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-core-docs/www/install-next-backups.html 5 May 2004 12:36:04 -0000 1.2 +++ openacs-4/packages/acs-core-docs/www/install-next-backups.html 11 Jun 2004 10:17:37 -0000 1.3 @@ -1,4 +1,4 @@ -
Backup Strategy +
Backup Strategy The purpose of backup is to enable recovery. Backup and recovery are always risky; here are some steps that minimize the chance recovery is necessary: @@ -27,9 +27,9 @@ OpenACS installations comprise files and database contents. If you follow the reference install and put all files, including configuration files, in - /var/lib/aolserver/service0/, + /var/lib/aolserver/$OPENACS_SERVICE_NAME/, and back up the database nightly to a file in - /var/lib/aolserver/service0/database-backup, + /var/lib/aolserver/$OPENACS_SERVICE_NAME/database-backup, then you can apply standard file-based backup strategies to - /var/lib/aolserver/service0 + /var/lib/aolserver/$OPENACS_SERVICE_NAME
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html 5 May 2004 12:36:04 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/install-next-nightly-vacuum.html 11 Jun 2004 10:17:37 -0000 1.10 @@ -1,4 +1,4 @@ -Vacuum Postgres nightly +
Vacuum Postgres nightly The "vacuum" command must be run periodically to reclaim space in versions of PostgreSQL before 7.4. The "vacuum analyze" form additionally collects statistics on the @@ -15,4 +15,4 @@ step.
Edit your crontab:
[joeuser ~]$ crontab -eWe'll set vacuum up to run nightly at 1 AM. Add the following line:
-0 1 * * * /usr/local/pgsql/bin/vacuumdb service0
($Id$)View comments on this page at openacs.org +0 1 * * * /usr/local/pgsql/bin/vacuumdb $OPENACS_SERVICE_NAME($Id$)View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/install-nsopenssl.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-nsopenssl.html,v diff -u -r1.15 -r1.16 --- openacs-4/packages/acs-core-docs/www/install-nsopenssl.html 5 May 2004 12:36:04 -0000 1.15 +++ openacs-4/packages/acs-core-docs/www/install-nsopenssl.html 11 Jun 2004 10:17:37 -0000 1.16 @@ -1,4 +1,4 @@ -Install nsopenssl By Joel Aufrecht and Malte Sussdorff
+Install nsopenssl By Joel Aufrecht and Malte Sussdorff
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.This AOLserver module is required if you want people to connect to your site via Index: openacs-4/packages/acs-core-docs/www/install-nspam.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-nspam.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/install-nspam.html 5 May 2004 12:36:04 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/install-nspam.html 11 Jun 2004 10:17:37 -0000 1.7 @@ -1 +1 @@ -
Install nspam View comments on this page at openacs.org +Install nspam View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/install-openacs-delete-tablespace.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-openacs-delete-tablespace.html,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-core-docs/www/install-openacs-delete-tablespace.html 5 May 2004 12:36:04 -0000 1.2 +++ openacs-4/packages/acs-core-docs/www/install-openacs-delete-tablespace.html 11 Jun 2004 10:17:37 -0000 1.3 @@ -1,24 +1,24 @@ -Deleting a tablespace Skip down for instructions on Deleting a PostgreSQL tablespace. +
Deleting a tablespace Skip down for instructions on Deleting a PostgreSQL tablespace.
Should it become necessary to rebuild a tablespace from scratch, you can use the drop user command in SVRMGRL with the cascade option. This command will drop the user and every database object - the user owns.
SVRMGR> drop user service0 cascade;
+ the user owns.
SVRMGR> drop user $OPENACS_SERVICE_NAME cascade;
If this does not work because svrmgrl "cannot drop a user that is currently connected", make sure to kill the AOLserver using - this user. If it still does not work, do:
SVRMGR> select username, sid, serial# from v$session where lower(username)='service0';
and then
SVRMGR> alter system kill session 'sid, serial#';
+ this user. If it still does not work, do:
SVRMGR> select username, sid, serial# from v$session where lower(username)='$OPENACS_SERVICE_NAME';
and then
SVRMGR> alter system kill session 'sid, serial#';
where sid and serial# are replaced with the corresponding values for the open session.
Use with caution!
If you feel the need to delete everything - related to the service, you can also issue the following:
SVRMGR> drop tablespace service0 including contents cascade constraints;
+ related to the service, you can also issue the following:
SVRMGR> drop tablespace $OPENACS_SERVICE_NAME including contents cascade constraints;
Dropping a PostgreSQL tablespace is easy. You have to stop any AOLserver instances that are using the database that you wish to drop. If you're using daemontools, this is simple, just use the 'down' flag (-d). If you're using inittab, you have to comment out your server in /etc/inittab, reread the inittab with /sbin/init q, and then restart-aolserver - service0.
Then, to drop the db, just do:
-[service0 ~]$ dropdb service0 + $OPENACS_SERVICE_NAME.Then, to drop the db, just do:
+[$OPENACS_SERVICE_NAME ~]$ dropdb $OPENACS_SERVICE_NAME DROP DATABASE
Prev Home Next Running a PostgreSQL database on another server Up Vacuum Postgres nightly
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/install-openacs-inittab.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-openacs-inittab.html,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-core-docs/www/install-openacs-inittab.html 5 May 2004 12:36:04 -0000 1.2 +++ openacs-4/packages/acs-core-docs/www/install-openacs-inittab.html 11 Jun 2004 10:17:37 -0000 1.3 @@ -1,4 +1,4 @@ -AOLserver keepalive with inittab This is an alternative method for keeping the AOLserver +
AOLserver keepalive with inittab This is an alternative method for keeping the AOLserver process running. The recommended method is to run AOLserver supervised.
This step should be completed as root. This can break every service Index: openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html 5 May 2004 12:36:04 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/install-openacs-keepalive.html 11 Jun 2004 10:17:37 -0000 1.10 @@ -1,4 +1,4 @@ -
Starting and Stopping an OpenACS instance. The simplest way to start and stop and OpenACS site is to run the startup shell script provided, /var/lib/aolserver/service0/etc/daemontools/run. This runs as a regular task, and logs to the logfile. To stop the site, kill the script.
A more stable way to run OpenACS is with a "keepalive" mechanism of some sort, so that whenever the server halts or is stopped for a reset, it restarts automatically. This is recommended for development and production servers.
The Reference Platform uses Daemontools to control AOLserver. A simpler method, using init, is here.
Daemontools must already be installed. If not, install it.
Each service controlled by daemontools must have a +
Starting and Stopping an OpenACS instance. The simplest way to start and stop and OpenACS site is to run the startup shell script provided, /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools/run. This runs as a regular task, and logs to the logfile. To stop the site, kill the script.
A more stable way to run OpenACS is with a "keepalive" mechanism of some sort, so that whenever the server halts or is stopped for a reset, it restarts automatically. This is recommended for development and production servers.
The Reference Platform uses Daemontools to control AOLserver. A simpler method, using init, is here.
Daemontools must already be installed. If not, install it.
Each service controlled by daemontools must have a directory in /service. That directory must have a file called run. It works like this:
The init program starts every @@ -11,58 +11,58 @@ looks for a file in the subdirectory called run. If it finds a run file, it creates a supervise process
supervise executes the run script. Whenever the run script stops, supervise executes it again. It also creates additional control files in the same directory.
Hence, the AOLserver instance for your development server is started by the file - /service/service0/run. + /service/$OPENACS_SERVICE_NAME/run. But we use a symlink to make it easier to add and remove stuff from the /service, so the actual location is - /var/lib/aolserver/service0etc/daemontools/run.
Daemontools creates additional files and directories to track status and + /var/lib/aolserver/$OPENACS_SERVICE_NAMEetc/daemontools/run.
Daemontools creates additional files and directories to track status and log. A daemontools directory is included in the OpenACS tarball at - /var/lib/aolserver/service0/etc/daemontools. To use it, first ill any existing AOLserver instances. As root, link the daemontools directory into the /service directory. Daemontools' svscan process checks this directory every five seconds, and will quickly execute run.
[service0 etc]$ killall nsd + /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools. To use it, first ill any existing AOLserver instances. As root, link the daemontools directory into the /service directory. Daemontools' svscan process checks this directory every five seconds, and will quickly execute run.[$OPENACS_SERVICE_NAME etc]$ killall nsd nsd: no process killed -[service0 etc]$ emacs /var/lib/aolserver/service0/etc/daemontools/run -[service0 etc]$ exit +[$OPENACS_SERVICE_NAME etc]$ emacs /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools/run +[$OPENACS_SERVICE_NAME etc]$ exit -[root root]# ln -s /var/lib/aolserver/service0/etc/daemontools/ /service/service0Verify that AOLserver is running.
[root root]# ps -auxw | grep nsd -service0 5562 14.2 6.2 22436 15952 ? S 11:55 0:04 /usr/local/aolserver/bin/nsd -it /var/lib/aolserver/service0/etc/config.tcl -u serve +[root root]# ln -s /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/daemontools/ /service/$OPENACS_SERVICE_NAMEVerify that AOLserver is running.
[root root]# ps -auxw | grep nsd +$OPENACS_SERVICE_NAME 5562 14.2 6.2 22436 15952 ? S 11:55 0:04 /usr/local/aolserver/bin/nsd -it /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/config.tcl -u serve root 5582 0.0 0.2 3276 628 pts/0 S 11:55 0:00 grep nsd -[root root]#The user service0 can now control the service service0 with these commands:
+[root root]#
The user $OPENACS_SERVICE_NAME can now control the service $OPENACS_SERVICE_NAME with these commands:
- svc -d /service/service0 - + svc -d /service/$OPENACS_SERVICE_NAME - Bring the server down
- svc -u /service/service0 - + svc -u /service/$OPENACS_SERVICE_NAME - Start the server up and leave it in keepalive mode.
- svc -o /service/service0 - + svc -o /service/$OPENACS_SERVICE_NAME - Start the server up once. Do not restart it if it stops.
- svc -t /service/service0 - + svc -t /service/$OPENACS_SERVICE_NAME - Stop and immediately restart the server.
- svc -k /service/service0 - + svc -k /service/$OPENACS_SERVICE_NAME - Sends the server a KILL signal. This is like KILL -9. AOLserver exits immediately. If svc -t fails to fully kill AOLserver, use this option. This does not take the server out of keepalive mode, so it should still bounce back up immediately.
Install a script to automate the stopping and starting - of AOLserver services via daemontools. You can then restart a service via restart-aolserver service0
[root root]# cp /var/lib/aolserver/service0/packages/acs-core-docs/www/files/restart-aolserver-daemontools.txt /usr/local/bin/restart-aolserver + of AOLserver services via daemontools. You can then restart a service via restart-aolserver $OPENACS_SERVICE_NAME[root root]# cp /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/acs-core-docs/www/files/restart-aolserver-daemontools.txt /usr/local/bin/restart-aolserver [root root]# chmod 755 /usr/local/bin/restart-aolserver [root root]#
At this point, these commands will work only for the - root user. Grant permission for the web group to use svc commands on the service0 server.
[root root]# svgroup web /service/service0 -[root root]#
Verify that the controls work. You may want to tail -f /var/lib/aolserver/service0/log/service0-error.log in another window, so you can see what happens when you type these commands. + root user. Grant permission for the web group to use svc commands on the $OPENACS_SERVICE_NAME server.
[root root]# svgroup web /service/$OPENACS_SERVICE_NAME +[root root]#
Verify that the controls work. You may want to tail -f /var/lib/aolserver/$OPENACS_SERVICE_NAME/log/$OPENACS_SERVICE_NAME-error.log in another window, so you can see what happens when you type these commands.
Most of this information comes from Tom Jackson's AOLserver+Daemontools Mini-HOWTO. -
Table�6.1.�How it Works
Program Invoked by this program ... ... using this file Where to find errors Log goes to Use these commands to control it svscanboot - init /etc/inittab ps -auxw | grep readproctitle n/a � aolserver supervise -(a child of svscanboot) /service/service0/run /var/lib/aolserver/service0/log/error.log /var/lib/aolserver/service0/log/service0.log svc -k /service/service0 postgresql Redhat init scripts during boot /etc/init.d/postgresql /usr/local/pgsql/data/server.log � service postgresql start (Red Hat), /etc/init.d/postgresql start (Debian)
Prev Home Next Chapter�6.�Production Environments Up AOLserver keepalive with inittab
docs@openacs.orgView comments on this page at openacs.org +Table�6.1.�How it Works
Program Invoked by this program ... ... using this file Where to find errors Log goes to Use these commands to control it svscanboot + init /etc/inittab ps -auxw | grep readproctitle n/a � aolserver supervise +(a child of svscanboot) /service/$OPENACS_SERVICE_NAME/run /var/lib/aolserver/$OPENACS_SERVICE_NAME/log/error.log /var/lib/aolserver/$OPENACS_SERVICE_NAME/log/$OPENACS_SERVICE_NAME.log svc -k /service/$OPENACS_SERVICE_NAME postgresql Redhat init scripts during boot /etc/init.d/postgresql /usr/local/pgsql/data/server.log � service postgresql start (Red Hat), /etc/init.d/postgresql start (Debian)
Prev Home Next Chapter�6.�Production Environments Up AOLserver keepalive with inittab
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/install-origins.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-origins.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/install-origins.html 5 May 2004 12:36:04 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/install-origins.html 11 Jun 2004 10:17:37 -0000 1.7 @@ -1,4 +1,4 @@ -Where did this document come from? +
Where did this document come from? This document was created by Vinod Kurup, but it's really just plagiarism from a number of documents that came before it. If I've used something that you've written without proper credit, let me 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.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/install-overview.html 5 May 2004 12:36:04 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/install-overview.html 11 Jun 2004 10:17:37 -0000 1.23 @@ -1,4 +1,4 @@ -
Chapter�2.�Installation Overview Table of Contents
by Vinod Kurup
+Chapter�2.�Installation Overview Table of Contents
by Vinod Kurup
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/install-php.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-php.html,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/install-php.html 5 May 2004 12:36:04 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/install-php.html 11 Jun 2004 10:17:37 -0000 1.5 @@ -1,4 +1,4 @@ -Install PHP for use in AOLserver +Install PHP for use in AOLserver OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.To be able to use PHP software with AOLserver (and OpenACS), you have to install PHP with AOLserver support. Get the latest version from www.php.net. For convenience we get version 4.3.4 from a mirror
[root root]# cd /usr/local/src Index: openacs-4/packages/acs-core-docs/www/install-qmail.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-qmail.html,v diff -u -r1.26 -r1.27 --- openacs-4/packages/acs-core-docs/www/install-qmail.html 5 May 2004 12:36:04 -0000 1.26 +++ openacs-4/packages/acs-core-docs/www/install-qmail.html 11 Jun 2004 10:17:37 -0000 1.27 @@ -1,4 +1,4 @@ -Install qmail (OPTIONAL) Qmail is a Mail Transfer Agent. It handles incoming and +
Install qmail (OPTIONAL) Qmail is a Mail Transfer Agent. It handles incoming and outgoing mail. Install qmail if you want your OpenACS server to send and receive mail, and you don't want to use an alternate MTA.
Red Hat 9: all djb tools (qmail, daemontools, ucspi) will @@ -29,7 +29,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 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 @@ -43,7 +43,7 @@ send outgoing mail.
[root ucspi-tcp-0.88]# cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp [root ucspi-tcp-0.88]# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp -tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
Download qmail, +tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
Download qmail, set up the standard supporting users and build the binaries:
[root root]# cd /usr/local/src [root src]# wget http://www.qmail.org/netqmail-1.04.tar.gz [root src]# tar xzf netqmail-1.04.tar.gz @@ -102,7 +102,7 @@ cd netqmail-1.04 ./collate.sh cd netqmail-1.04 -make setup checkReplace sendmail with qmail's wrapper.
[root qmail-1.03]# rm -f /usr/bin/sendmail /usr/sbin/sendmail +make setup checkReplace sendmail with qmail's wrapper.
[root qmail-1.03]# rm -f /usr/bin/sendmail /usr/sbin/sendmail [root qmail-1.03]# ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail [root qmail-1.03]# rm -f /usr/bin/sendmail /usr/sbin/sendmail @@ -124,7 +124,7 @@ cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root chmod 644 ~alias/.qmail* /var/qmail/bin/maildirmake ~alias/Maildir/ -chown -R alias.nofiles /var/qmail/alias/Maildir
Configure qmail to use the Maildir delivery format +chown -R alias.nofiles /var/qmail/alias/Maildir
Configure qmail to use the Maildir delivery format (instead of mbox), and install a version of the qmail startup script modified to use Maildir.
[root alias]# echo "./Maildir" > /var/qmail/bin/.qmail [root alias]# cp /tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc [root alias]# chmod 755 /var/qmail/rc Index: openacs-4/packages/acs-core-docs/www/install-redhat.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-redhat.html,v diff -u -r1.26 -r1.27 --- openacs-4/packages/acs-core-docs/www/install-redhat.html 5 May 2004 12:36:04 -0000 1.26 +++ openacs-4/packages/acs-core-docs/www/install-redhat.html 11 Jun 2004 10:17:37 -0000 1.27 @@ -1,4 +1,4 @@ -Appendix�A.�Install Red Hat 8/9 +Appendix�A.�Install Red Hat 8/9 OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.This section takes a blank PC and sets up some supporting @@ -26,7 +26,7 @@
Unplug the network cable from your computer. We don't want to connect to the network until we're sure the computer is secure. - + (Wherever you see the word secure, you should always read it as, "secure enough for our purposes, given the amount of work we're @@ -54,7 +54,7 @@ Review (and modify if needed) the partitions created and click Next
On the pop-up window asking "Are you sure you want to do this?" click Yes - IF YOU ARE WIPING YOUR HARD DRIVE.
Click Next on the boot loader screen
Click Next on the boot loader screen
Configure Networking. Again, if you know what you're doing, do this step yourself, being sure to note the firewall holes. Otherwise, follow the instructions in this step to set up a computer directly connected to the internet with a dedicated IP address.
DHCP is a system by which a computer that @@ -75,7 +75,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.
On the Package selection page, we're going to @@ -87,13 +87,13 @@ 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. -
At the bottom, check Select Individual Packages and click Next
We need to fine-tune the exact list of packages. +
At the bottom, check Select Individual Packages and click Next
We need to fine-tune the exact list of packages. The same rules apply as in the last step - you can add more stuff, but you shouldn't remove anything the guide adds. We're going to go through all the packages in one big list, so select Flat View and wait. In a minute, a -list of packages will appear.
Red Hat isn't completely happy with the combination +list of packages will appear.
Red Hat isn't completely happy with the combination of packages we've selected, and wants to satisfy some dependencies. Don't let it. On the next screen, choose Ignore Package @@ -119,7 +119,7 @@ upgrading all of that. Since you are upgrading the kernel, reboot after this step.
Lock down SSH
- + 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 Index: openacs-4/packages/acs-core-docs/www/install-resources.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-resources.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/install-resources.html 5 May 2004 12:36:04 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/install-resources.html 11 Jun 2004 10:17:37 -0000 1.7 @@ -1,4 +1,4 @@ -
Resources +
Resources Here are some resources that OpenACS users have found useful.
Index: openacs-4/packages/acs-core-docs/www/install-squirrelmail.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-squirrelmail.html,v diff -u -r1.5 -r1.6 --- openacs-4/packages/acs-core-docs/www/install-squirrelmail.html 5 May 2004 12:36:04 -0000 1.5 +++ openacs-4/packages/acs-core-docs/www/install-squirrelmail.html 11 Jun 2004 10:17:37 -0000 1.6 @@ -1,10 +1,10 @@ -
Install Squirrelmail for use as a webmail system for OpenACS +Install Squirrelmail for use as a webmail system for OpenACS OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -This section is work in progress. It will detail how you can install Squirrelmail as a webmail frontend for OpenACS, thereby neglecting the need to have a seperate webmail package within OpenACS
[service0 service0]# cd www -[service0 www]# wget http://cesnet.dl.sourceforge.net/sourceforge/squirrelmail/squirrelmail-1.4.2.tar.gz -[service0 www]# tar xfz squirrelmail-1.4.2.tar.gz -[service0 www]# mv squirrelmail-1.4.2 mail -[service0 www]# cd mail/config -[service0 www]# ./conf.pl +This section is work in progress. It will detail how you can install Squirrelmail as a webmail frontend for OpenACS, thereby neglecting the need to have a seperate webmail package within OpenACS
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]# cd www +[$OPENACS_SERVICE_NAME www]# wget http://cesnet.dl.sourceforge.net/sourceforge/squirrelmail/squirrelmail-1.4.2.tar.gz +[$OPENACS_SERVICE_NAME www]# tar xfz squirrelmail-1.4.2.tar.gz +[$OPENACS_SERVICE_NAME www]# mv squirrelmail-1.4.2 mail +[$OPENACS_SERVICE_NAME www]# cd mail/config +[$OPENACS_SERVICE_NAME www]# ./conf.plNow you are about to configure Squirrelmail. The configuration heavily depends on your setup, so no instructions are given here.
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/install-ssl.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-ssl.html,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/install-ssl.html 5 May 2004 12:36:04 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/install-ssl.html 11 Jun 2004 10:17:37 -0000 1.5 @@ -1,21 +1,21 @@ -Installing SSL Support for an OpenACS service Debian Users: apt-get install openssl before proceeding.
Make sure nsopenssl.so is installed for AOLserver.
Uncomment this line from config.tcl.
#ns_param nsopenssl ${bindir}/nsopenssl.so -Prepare a certificate directory for the service.
[service0 etc]$ mkdir /var/lib/aolserver/service0/etc/certs -[service0 etc]$ chmod 700 /var/lib/aolserver/service0/etc/certs -[service0 etc]$ -mkdir /var/lib/aolserver/service0/etc/certs -chmod 700 /var/lib/aolserver/service0/etc/certsIt takes two files to support an SSL connection. The certificate is the public half of the key pair - the server sends the certificate to browser requesting ssl. The key is the private half of the key pair. In addition, the certificate must be signed by Certificate Authority or browsers will protest. Each web browser ships with a built-in list of acceptable Certificate Authorities (CAs) and their keys. Only a site certificate signed by a known and approved CA will work smoothly. Any other certificate will cause browsers to produce some messages or block the site. Unfortunately, getting a site certificate signed by a CA costs money. In this section, we'll generate an unsigned certificate which will work in most browsers, albeit with pop-up messages.
Use an OpenSSL perl script to generate a certificate and key.
[service0 service0]$ cd /var/lib/aolserver/service0/etc/certs -[service0 certs]$ perl /usr/share/ssl/misc/CA -newcert +Installing SSL Support for an OpenACS service Debian Users: apt-get install openssl before proceeding.
Make sure nsopenssl.so is installed for AOLserver.
Uncomment this line from config.tcl.
#ns_param nsopenssl ${bindir}/nsopenssl.so +Prepare a certificate directory for the service.
[$OPENACS_SERVICE_NAME etc]$ mkdir /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/certs +[$OPENACS_SERVICE_NAME etc]$ chmod 700 /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/certs +[$OPENACS_SERVICE_NAME etc]$ +mkdir /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/certs +chmod 700 /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/certsIt takes two files to support an SSL connection. The certificate is the public half of the key pair - the server sends the certificate to browser requesting ssl. The key is the private half of the key pair. In addition, the certificate must be signed by Certificate Authority or browsers will protest. Each web browser ships with a built-in list of acceptable Certificate Authorities (CAs) and their keys. Only a site certificate signed by a known and approved CA will work smoothly. Any other certificate will cause browsers to produce some messages or block the site. Unfortunately, getting a site certificate signed by a CA costs money. In this section, we'll generate an unsigned certificate which will work in most browsers, albeit with pop-up messages.
Use an OpenSSL perl script to generate a certificate and key.
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/certs +[$OPENACS_SERVICE_NAME certs]$ perl /usr/share/ssl/misc/CA -newcert Using configuration from /usr/share/ssl/openssl.cnf Generating a 1024 bit RSA private key ...++++++ .......++++++ writing new private key to 'newreq.pem' Enter PEM pass phrase:Enter a pass phrase for the CA certificate. Then, answer the rest of the questions. At the end you should see this:
Certificate (and private key) is in newreq.pem -[service0 certs]$newreq.pem contains our certificate and private key. The key is protected by a passphrase, which means that we'll have to enter the pass phrase each time the server starts. This is impractical and unnecessary, so we create an unprotected version of the key. Security implication: if anyone gets access to the file keyfile.pem, they effectively own the key as much as you do. Mitigation: don't use this key/cert combo for anything besides providing ssl for the web site.
[root misc]# openssl rsa -in newreq.pem -out keyfile.pem +[$OPENACS_SERVICE_NAME certs]$newreq.pem contains our certificate and private key. The key is protected by a passphrase, which means that we'll have to enter the pass phrase each time the server starts. This is impractical and unnecessary, so we create an unprotected version of the key. Security implication: if anyone gets access to the file keyfile.pem, they effectively own the key as much as you do. Mitigation: don't use this key/cert combo for anything besides providing ssl for the web site.
[root misc]# openssl rsa -in newreq.pem -out keyfile.pem read RSA key Enter PEM pass phrase: writing RSA key -[service0 certs]$To create the certificate file, we take the combined file, copy it, and strip out the key.
[service0 certs]$ cp newreq.pem certfile.pem +[$OPENACS_SERVICE_NAME certs]$To create the certificate file, we take the combined file, copy it, and strip out the key.
[$OPENACS_SERVICE_NAME certs]$ cp newreq.pem certfile.pem [root misc]# emacs certfile.pemStrip out the section that looks like
-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,F3EDE7CA1B404997 Index: openacs-4/packages/acs-core-docs/www/install-steps.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-steps.html,v diff -u -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/install-steps.html 5 May 2004 12:36:04 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/install-steps.html 11 Jun 2004 10:17:37 -0000 1.20 @@ -1,6 +1,6 @@ -Basic Steps +
Basic Steps The basic steps for getting OpenACS installed are: -
Install an OS and supporting software (see Install a Unix-like OS or Appendix�A, Install Red Hat 8/9 for more details). See the Table�2.2, “Version Compatibility Matrix”.
Install a database (see Install Oracle or +
Install an OS and supporting software (see Install a Unix-like OS or Appendix�A, Install Red Hat 8/9 for more details). See the Table�2.2, “Version Compatibility Matrix”.
Install a database (see the section called “Install Oracle 8.1.7” or Install PostgreSQL).
Install AOLserver (Install AOLserver 4) .
Create a unique database and system user. Install the OpenACS tarball, start and AOLserver instance, and use the OpenACS web pages to complete installation @@ -27,19 +27,19 @@ }
This is text that you will see and type in a command shell, including text you may have to change. It is followed by a list of just the commands, - which you can copy and paste. The command prompt varies by system; in the examples we use the form[service0 aolserver]$, where service0 is the current user and aolserver is the current directory. The root prompt is shown ending in # and all other prompts in $.
-[root root]# su - service0 -[service0 aolserver]$ svc -d /service/service0 -[service0 aolserver]$ dropdb service0 + which you can copy and paste. The command prompt varies by system; in the examples we use the form[$OPENACS_SERVICE_NAME aolserver]$, where $OPENACS_SERVICE_NAME is the current user and aolserver is the current directory. The root prompt is shown ending in # and all other prompts in $.+[root root]# su - $OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME aolserver]$ svc -d /service/$OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME aolserver]$ dropdb $OPENACS_SERVICE_NAME DROP DATABASE -[service0 aolserver]$ createdb service0 +[$OPENACS_SERVICE_NAME aolserver]$ createdb $OPENACS_SERVICE_NAME CREATE DATABASE -su - service0 -svc -d /service/service0 -dropdb service0 -createdb service0Table�2.1.�Default directories for a standard install
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 Index: openacs-4/packages/acs-core-docs/www/install-tclwebtest.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-tclwebtest.html,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/install-tclwebtest.html 5 May 2004 12:36:04 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/install-tclwebtest.html 11 Jun 2004 10:17:38 -0000 1.10 @@ -1,4 +1,4 @@ -
Install tclwebtest. Download the tclwebtest +
Install tclwebtest. Download the tclwebtest source, unpack it, and put it an appropriate place. (tclwebtest 1.0 will be required for auto-tests in OpenACS 5.1. When it exists, the cvs command here will be replaced with http://prdownloads.sourceforge.net/tclwebtest/tclwebtest-0.3.tar.gz?download.) As root:
cd /tmp cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/tclwebtest co tclwebtest Index: openacs-4/packages/acs-core-docs/www/ix01.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/ix01.html,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/ix01.html 5 May 2004 12:36:04 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/ix01.html 11 Jun 2004 10:17:38 -0000 1.15 @@ -1,2 +1,2 @@ -
Index A
- AOLserver
- configuration, Installation Option 2: Install from tarball
- Automated tests, Write automated tests
C
- computeroutput
- code, Code
- cvs
- initializing, Initialize CVS (OPTIONAL)
- setup, Using CVS with an OpenACS Site
D
- daemontools
- installation, Install Daemontools (OPTIONAL)
- docbook
- installation, Install Red Hat 8/9
- DocBook
- DTD, Why DocBook?
- emacs configuration for, Add PSGML commands to emacs init file (OPTIONAL)
- Document structure, Document Structure
E
- emacs
- installation, Install Red Hat 8/9
- emphasis
- bold, italics, Emphasis
F
- full text search
G
- Graphics
- Images, Graphics
I
- informaltable
- table, Tables
L
- language
- installation, Install Red Hat 8/9
- Linking, Links
- lists, Lists
O
- OpenACS Package, What a Package Looks Like
P
- photo-album
- installation (see ImageMagick)
- Postgres
- Vacuuming, Installation Option 2: Install from tarball
Q
- qmail
- installation, Install qmail (OPTIONAL)
- Maildir, Install qmail (OPTIONAL)
- rcpthosts error message, Install qmail (OPTIONAL)
S
- sect1, Headlines, Sections
- sect2, Headlines, Sections
- Sections
- Headlines, Headlines, Sections
- security
- definition, Install Red Hat 8/9
- firewall, Install Red Hat 8/9
- sendmail
- removing, Install qmail (OPTIONAL)
- service0, Paths and Users
- ssh, Install Red Hat 8/9
T
- The publish point for new packages should be +
Index Symbols
- $OPENACS_SERVICE_NAME, Paths and Users
A
- AOLserver
- configuration, Installation Option 2: Install from tarball
- Automated tests, Write automated tests
C
- computeroutput
- code, Code
- cvs
- initializing, Initialize CVS (OPTIONAL)
- setup, Using CVS with an OpenACS Site
D
- daemontools
- installation, Install Daemontools (OPTIONAL)
- docbook
- installation, Install Red Hat 8/9
- DocBook
- DTD, Why DocBook?
- emacs configuration for, Add PSGML commands to emacs init file (OPTIONAL)
- Document structure, Document Structure
E
- emacs
- installation, Install Red Hat 8/9
- emphasis
- bold, italics, Emphasis
F
- full text search
G
- Graphics
- Images, Graphics
I
- informaltable
- table, Tables
L
- language
- installation, Install Red Hat 8/9
- Linking, Links
- lists, Lists
O
- OpenACS Package, What a Package Looks Like
P
- photo-album
- installation (see ImageMagick)
- Postgres
- Vacuuming, Installation Option 2: Install from tarball
Q
- qmail
- installation, Install qmail (OPTIONAL)
- Maildir, Install qmail (OPTIONAL)
- rcpthosts error message, Install qmail (OPTIONAL)
S
- sect1, Headlines, Sections
- sect2, Headlines, Sections
- Sections
- Headlines, Headlines, Sections
- security
- definition, Install Red Hat 8/9
- firewall, Install Red Hat 8/9
- sendmail
- removing, Install qmail (OPTIONAL)
- ssh, Install Red Hat 8/9
T
- The publish point for new packages should be fixed., Prepare the package for distribution.
U
- ulink, Links
- Unicode
- in PostgreSQL, Install PostgreSQL
- upgrade
- OpenACS 4.5 to 4.6.x
- Linux/Unix, Upgrading 4.5 or higher to 4.6.3
X
- XML guidelines, Why DocBook?
- xref
- linkend, Links
- xreflabel, Headlines, Sections
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/kernel-doc.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/kernel-doc.html,v diff -u -r1.25 -r1.26 --- openacs-4/packages/acs-core-docs/www/kernel-doc.html 5 May 2004 12:36:04 -0000 1.25 +++ openacs-4/packages/acs-core-docs/www/kernel-doc.html 11 Jun 2004 10:17:38 -0000 1.26 @@ -1 +1 @@ -Chapter�15.�Kernel Documentation Table of Contents
- Overview
- Object Model Requirements
- Object Model Design
- Permissions Requirements
- Permissions Design
- Groups Requirements
- Groups Design
- Subsites Requirements
- Subsites Design Document
- Package Manager Requirements
- Package Manager Design
- Database Access API
- OpenACS Internationalization Requirements
- Security Requirements
- Security Design
- Security Notes
- Request Processor Requirements
- Request Processor Design
- Documenting Tcl Files: Page Contracts and Libraries
- Bootstrapping OpenACS
- External Authentication Requirements
View comments on this page at openacs.org +Chapter�15.�Kernel Documentation Table of Contents
- Overview
- Object Model Requirements
- Object Model Design
- Permissions Requirements
- Permissions Design
- Groups Requirements
- Groups Design
- Subsites Requirements
- Subsites Design Document
- Package Manager Requirements
- Package Manager Design
- Database Access API
- OpenACS Internationalization Requirements
- Security Requirements
- Security Design
- Security Notes
- Request Processor Requirements
- Request Processor Design
- Documenting Tcl Files: Page Contracts and Libraries
- Bootstrapping OpenACS
- External Authentication Requirements
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/kernel-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/kernel-overview.html,v diff -u -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/kernel-overview.html 5 May 2004 12:36:04 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/kernel-overview.html 11 Jun 2004 10:17:38 -0000 1.20 @@ -1,4 +1,4 @@ -Overview
+
Overview
The OpenACS Kernel, which handles system-wide necessities such as metadata, security, users and groups, subsites, and package Index: openacs-4/packages/acs-core-docs/www/mac-installation.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/mac-installation.html,v diff -u -r1.29 -r1.30 --- openacs-4/packages/acs-core-docs/www/mac-installation.html 5 May 2004 12:36:04 -0000 1.29 +++ openacs-4/packages/acs-core-docs/www/mac-installation.html 11 Jun 2004 10:17:38 -0000 1.30 @@ -1,4 +1,4 @@ -
OpenACS Installation Guide for Mac OS X Prerequisites.�Install readline:
Download readline from http://ftp.gnu.org/pub/gnu/readline/readline-4.3.tar.gz into /usr/local/src
Extract readline in /usr/local/src, configure, compile, and install:
su - root +OpenACS Installation Guide for Mac OS X Prerequisites.�Install readline:
Download readline from http://ftp.gnu.org/pub/gnu/readline/readline-4.3.tar.gz into /usr/local/src
Extract readline in /usr/local/src, configure, compile, and install:
su - root cd /usr/local/src tar xvfz readline-4.3.tar.gz readline-4.3 Index: openacs-4/packages/acs-core-docs/www/maint-performance.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/maint-performance.html,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/maint-performance.html 5 May 2004 12:36:04 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/maint-performance.html 11 Jun 2004 10:17:38 -0000 1.15 @@ -1,7 +1,7 @@ -Diagnosing Performance Problems
Did performance problems happen overnight, or did they sneak up on +
Diagnosing Performance Problems
Did performance problems happen overnight, or did they sneak up on you? Any clue what caused the performance problems (e.g. loading 20K users into .LRN)
Is the file system out of space? Is the machine swapping to disk constantly?
Isolating and solving database problems.
Without daily internal maintenance, most databases slowly degrade in performance. For PostGreSQL, see the section called “Vacuum Postgres nightly”. For Oracle, use exec dbms_stats.gather_schema_stats('SCHEMA_NAME') (Andrew Piskorski's Oracle notes).
You can track the exact amount of time each database query on a page takes:
Go to Main Site : Site-Wide Administration : Install Software
Click on "Install New Application" in "Install from OpenACS Repository"
Choose "ACS Developer Support">
After install is complete, restart the server.
Browse to Developer Support, which is automatically mounted at /ds. -
Turn on Database statistics
Browse directly to a slow page and click "Request Information" at the bottom of the page.
This should return a list of database queries on the page, including the exact query (so it can be cut-paste into psql or oracle) and the time each query took.
Identify a runaway Oracle query: first, use ps aux or top to get the UNIX process ID of a runaway Oracle process.
Log in to SQL*Plus as the admin:
[service0 ~]$ svrmgrl +
Turn on Database statistics
Browse directly to a slow page and click "Request Information" at the bottom of the page.
This should return a list of database queries on the page, including the exact query (so it can be cut-paste into psql or oracle) and the time each query took.
Identify a runaway Oracle query: first, use ps aux or top to get the UNIX process ID of a runaway Oracle process.
Log in to SQL*Plus as the admin:
[$OPENACS_SERVICE_NAME ~]$ svrmgrl Oracle Server Manager Release 3.1.7.0.0 - Production @@ -26,4 +26,29 @@ where sql.address = s.sql_address and sql.hash_value = s.sql_hash_value --and upper(s.username) like 'USERNAME%' - order by s.username ,s.sid ,s.serial# ,sql.piece ;
To kill a troubled process:
alter system kill session 'SID,SERIAL#'; --substitute values for SID and SERIAL#View comments on this page at openacs.org + order by s.username ,s.sid ,s.serial# ,sql.piece ;To kill a troubled process:
alter system kill session 'SID,SERIAL#'; --substitute values for SID and SERIAL#+ The first task is to create an appropriate environment for finding out + what is going on inside Oracle. Oracle provides Statspack, a package to + monitor and save the state of the v$ performance views. These reports + help finding severe problems by exposing summary data about the Oracle + wait interface, executed queries. You'll find the installation + instructions in $ORACLE_HOME/rdbms/admin/spdoc.txt. Follow the + instructions carefully and take periodic snapshots, this way you'll be + able to look at historical performance data. +
+ Also turn on the timed_statistics in your init.ora file, so that + Statspack reports (and all other Oracle reports) are timed, which makes + them a lot more meaningful. The overhead of timing data is about 1% per + Oracle Support information. +
+ To be able to get a overview of how Oracle executes a particular query, + install "autotrace". I usually follow the instructions here http://asktom.oracle.com/~tkyte/article1/autotrace.html. +
+ The Oracle Cost Based optimizer is a piece of software that tries to find + the "optimal" execution plan for a given SQL statement. For that it + estimates the costs of running a SQL query in a particular way (by default + up to 80.000 permutations are being tested in a Oracle 8i). To get an + adequate cost estimate, the CBO needs to have adequate statistics. For + that Oracle supplies the dbms_stats + package. +
View comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/maintenance-deploy.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/maintenance-deploy.html,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/maintenance-deploy.html 5 May 2004 12:36:04 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/maintenance-deploy.html 11 Jun 2004 10:17:38 -0000 1.10 @@ -1,7 +1,7 @@ -Staged Deployment for Production Networks +Staged Deployment for Production Networks OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -This section describes minimal-risk methods for deploying changes on a production network. The important characteristics of a safe change deployment include: (THIS SECTION IN DEVELOPMENT)
Control: You know for sure that the change you are making is the change that you intend to make and is the change that you tested.
Rollback: If anything goes wrong, you can return to the previous working configuration safely and quickly.
With this method, we control the files on a site via CVS. In this example, there is one development site and one production site. The only way files should move between the two is via cvs. The production site could run "HEAD" from cvs (raw example from chat log:)
+This section describes minimal-risk methods for deploying changes on a production network. The important characteristics of a safe change deployment include: (THIS SECTION IN DEVELOPMENT)
Control: You know for sure that the change you are making is the change that you intend to make and is the change that you tested.
Rollback: If anything goes wrong, you can return to the previous working configuration safely and quickly.
With this method, we control the files on a site via CVS. In this example, there is one development site and one production site. The only way files should move between the two is via cvs. The production site could run "HEAD" from cvs (raw example from chat log:)
1) change the file on dev as desired 2) test the new file 3) commit the file: @@ -17,4 +17,4 @@ the stuff in -m "foo" is a comment visible only from within cvs commands 4) update the file on production: cd /web/foo-prod/www -cvs up index.adpThe drawback to using HEAD as the live code is that you cannot commit new work on the development server without erasing the definition of 'working production code.' So a better method is to use a tag. This guarantees that, at any time in the future, you can retrieve exactly the same set of code. This is useful for both of the characteristics of safe change deployment. For control, you can use tags to define a body of code, test that code, and then know that what you are deploying is exactly that code. For rollback, you can use return to the last working tag if the new tag (or new, untagged changes) cause problems. .... example of using tags to follow ...
The approach taken in this section is to always create a new service with the desired changes, running in parallel with the existing site. This guarantees control, at least at the final step of the process: you know what changes you are about to make because you can see them directly. It does not, by itself, guarantee the entire control chain. You need additional measures to make sure that the change you are making is exactly and completely the change you intended to make and tested previously, and nothing more. Those additional measures typically take the form of source control tags and system version numbers. The parallel-server approach also guarantees rollback because the original working service is not touched; it is merely set aside.
This approach can has limitations. If the database or file system regularly receiving new data, you must interrupt this function or risk losing data in the shuffle. It also requires extra steps if the database will be affected.
Prev Home Next High Availability/High Performance Configurations Up Installing SSL Support for an OpenACS service
docs@openacs.orgView comments on this page at openacs.org +cvs up index.adpThe drawback to using HEAD as the live code is that you cannot commit new work on the development server without erasing the definition of 'working production code.' So a better method is to use a tag. This guarantees that, at any time in the future, you can retrieve exactly the same set of code. This is useful for both of the characteristics of safe change deployment. For control, you can use tags to define a body of code, test that code, and then know that what you are deploying is exactly that code. For rollback, you can use return to the last working tag if the new tag (or new, untagged changes) cause problems. .... example of using tags to follow ...
The approach taken in this section is to always create a new service with the desired changes, running in parallel with the existing site. This guarantees control, at least at the final step of the process: you know what changes you are about to make because you can see them directly. It does not, by itself, guarantee the entire control chain. You need additional measures to make sure that the change you are making is exactly and completely the change you intended to make and tested previously, and nothing more. Those additional measures typically take the form of source control tags and system version numbers. The parallel-server approach also guarantees rollback because the original working service is not touched; it is merely set aside.
This approach can has limitations. If the database or file system regularly receiving new data, you must interrupt this function or risk losing data in the shuffle. It also requires extra steps if the database will be affected.
Prev Home Next High Availability/High Performance Configurations Up Installing SSL Support for an OpenACS service
docs@openacs.orgView comments on this page at openacs.org Index: openacs-4/packages/acs-core-docs/www/maintenance-web.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/maintenance-web.html,v diff -u -r1.27 -r1.28 --- openacs-4/packages/acs-core-docs/www/maintenance-web.html 5 May 2004 12:36:04 -0000 1.27 +++ openacs-4/packages/acs-core-docs/www/maintenance-web.html 11 Jun 2004 10:17:38 -0000 1.28 @@ -1,4 +1,4 @@ -Chapter�6.�Production Environments Table of Contents
- Starting and Stopping an OpenACS instance.
- AOLserver keepalive with inittab
- Running multiple services on one machine
- High Availability/High Performance Configurations
- Staged Deployment for Production Networks
- Installing SSL Support for an OpenACS service
- Set up Log Analysis Reports
- External uptime validation
- Diagnosing Performance Problems
+Chapter�6.�Production Environments Table of Contents
- Starting and Stopping an OpenACS instance.
- AOLserver keepalive with inittab
- Running multiple services on one machine
- High Availability/High Performance Configurations
- Staged Deployment for Production Networks
- Installing SSL Support for an OpenACS service
- Set up Log Analysis Reports
- External uptime validation
- Diagnosing Performance Problems
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Maintenance tasks, optional software, and alternate configurations for AOLserver.
($Id$)
Prev Home Next Upgrading Platform components Up Starting and Stopping an OpenACS instance.
docs@openacs.orgView comments on this page at openacs.org Fisheye: Tag 1.14 refers to a dead (removed) revision in file `openacs-4/packages/acs-core-docs/www/maintenance.html'. Fisheye: No comparison available. Pass `N' to diff? Index: openacs-4/packages/acs-core-docs/www/nxml-mode.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/nxml-mode.html,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/nxml-mode.html 5 May 2004 12:36:04 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/nxml-mode.html 11 Jun 2004 10:17:38 -0000 1.7 @@ -1,4 +1,4 @@ -Using nXML mode in Emacs By Jeff Davis
+Using nXML mode in Emacs By Jeff Davis
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.Index: openacs-4/packages/acs-core-docs/www/object-identity.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-identity.html,v diff -u -r1.35 -r1.36 --- openacs-4/packages/acs-core-docs/www/object-identity.html 5 May 2004 12:36:04 -0000 1.35 +++ openacs-4/packages/acs-core-docs/www/object-identity.html 11 Jun 2004 10:17:38 -0000 1.36 @@ -1,4 +1,4 @@ -
Object Identity +Object Identity OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.One of the major design features of OpenACS 5.2.0d1 is the explicit representation Index: openacs-4/packages/acs-core-docs/www/object-system-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-system-design.html,v diff -u -r1.23 -r1.24 --- openacs-4/packages/acs-core-docs/www/object-system-design.html 5 May 2004 12:36:04 -0000 1.23 +++ openacs-4/packages/acs-core-docs/www/object-system-design.html 11 Jun 2004 10:17:38 -0000 1.24 @@ -1,4 +1,4 @@ -
Object Model Design By Pete Su, Michael Yoon, Richard Li, Rafael Schloming
+Object Model Design By Pete Su, Michael Yoon, Richard Li, Rafael Schloming
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
Index: openacs-4/packages/acs-core-docs/www/object-system-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/object-system-requirements.html,v diff -u -r1.22 -r1.23 --- openacs-4/packages/acs-core-docs/www/object-system-requirements.html 5 May 2004 12:36:04 -0000 1.22 +++ openacs-4/packages/acs-core-docs/www/object-system-requirements.html 11 Jun 2004 10:17:38 -0000 1.23 @@ -1,4 +1,4 @@ -
Object Model Requirements By Pete Su
+Object Model Requirements By Pete Su
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.A major goal in OpenACS 4 is to unify and normalize many of the core services 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.36 -r1.37 --- openacs-4/packages/acs-core-docs/www/objects.html 5 May 2004 12:36:04 -0000 1.36 +++ openacs-4/packages/acs-core-docs/www/objects.html 11 Jun 2004 10:17:38 -0000 1.37 @@ -1,4 +1,4 @@ -
OpenACS Data Models and the Object System By Pete Su
+OpenACS Data Models and the Object System By Pete Su
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.@@ -78,7 +78,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: -
+
First, add an entry to the acs_object_types table with the following PL/SQL call:
begin @@ -138,7 +138,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. -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 @@ -163,7 +163,7 @@ use the acs_objects table to find objects will transparently find any objects that are instances of any subtype of acs_objects. -
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: @@ -211,7 +211,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. -
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-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/openacs-overview.html,v diff -u -r1.18 -r1.19 --- openacs-4/packages/acs-core-docs/www/openacs-overview.html 5 May 2004 12:36:04 -0000 1.18 +++ openacs-4/packages/acs-core-docs/www/openacs-overview.html 11 Jun 2004 10:17:38 -0000 1.19 @@ -1,4 +1,4 @@ -
Overview +
Overview OpenACS (Open Architecture Community System) is an advanced toolkit for building scalable, community-oriented web applications. If you're thinking of building an Index: openacs-4/packages/acs-core-docs/www/openacs-unpack.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/openacs-unpack.html,v diff -u -r1.17 -r1.18 --- openacs-4/packages/acs-core-docs/www/openacs-unpack.html 5 May 2004 12:36:04 -0000 1.17 +++ openacs-4/packages/acs-core-docs/www/openacs-unpack.html 11 Jun 2004 10:17:38 -0000 1.18 @@ -1,4 +1,4 @@ -
Unpack the OpenACS tarball The OpenACS tarball contains sample configuration files +
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 root]# cd /tmp [root tmp]# tar xzf openacs-5.2.0d1.tgz 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.35 -r1.36 --- openacs-4/packages/acs-core-docs/www/openacs.html 5 May 2004 12:36:04 -0000 1.35 +++ openacs-4/packages/acs-core-docs/www/openacs.html 11 Jun 2004 10:17:38 -0000 1.36 @@ -1,4 +1,4 @@ -Install OpenACS 5.2.0d1 by Vinod Kurup
+Install OpenACS 5.2.0d1 by Vinod Kurup
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.For Linux Standard Base compliance and ease of backup, @@ -25,39 +25,39 @@ for each different service. A service name should be a single word, letters and numbers only. If the name of your site is one word, that would be a good choice. For - example "service0" might be the service name for the - service0.net + example "$OPENACS_SERVICE_NAME" might be the service name for the + $OPENACS_SERVICE_NAME.net community.
We'll leave the password blank, which prevents login by password, for increased security. The only way to log in will be with ssh certificates. The only people who should log in are developers for that specific instance. Add this user, and put - it in the service0 group so that it + it in the $OPENACS_SERVICE_NAME group so that it can use database and server commands associated with that group.
-[root root]# useradd service0 +[root root]# useradd $OPENACS_SERVICE_NAME [root root]#A bash script is available to automate all of the steps for the rest of this section. It requires tclwebtest. The automated script can greatly accelerate the install process, but is very sensitive to the install environment. We recommend that you run the automated install and, if it does not work the first time, consider switching to a manual installation.
Get the install script from CVS. It is located within the main cvs tree, at /etc/install. Use anonymous CVS checkout to get that directory in the home directory of the service's dedicated user. We put it there so that it is not overwritten when we do the main CVS checkout to the target - location.
[root root]# su - service0 -[service0 service0]$ cvs -d :pserver:anonymous@openacs.org:/cvsroot co -d install openacs-4/etc/install + location.[root root]# su - $OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cvs -d :pserver:anonymous@openacs.org:/cvsroot co -d install openacs-4/etc/install cvs server: Updating install U install/README U install/TODO ... many lines omitted ... U install/tcl/twt-procs.tcl U install/tcl/user-procs.tcl -[service0 service0]$ cd install -[service0 install]$ emacs install.tcl -
Edit the installation configuration file, /home/service0/install/install.tcl and update the site-specific values, such as the new service's IP address and name, which will be written into the new service's config.tcl file. If your system is different from the one described in the previous sections, check the file paths as well. Set do_checkout=yes to create a new OpenACS site directly from a CVS checkout, or =no if you have a fully configured site and just want to rebuild it (drop and recreate the database and repeat the installation). If you have followed a stock installation, the default configuration will work without changes and will install an OpenACS site at 127.0.0.1:8000.
Run the install script install.sh as root:
[service0 service0]$ exit -[root root]# sh /home/service0/install/install.sh -/home/service0/install/install.sh: Starting installation with config_file -/home/service0/install/install.tcl. Using serverroot=/var/lib/aolserver/ -service0, server_url=http://0.0.0.0:8000, do_checkout=yes, do_install=yes, +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd install +[$OPENACS_SERVICE_NAME install]$ emacs install.tcl +
Edit the installation configuration file, /home/$OPENACS_SERVICE_NAME/install/install.tcl and update the site-specific values, such as the new service's IP address and name, which will be written into the new service's config.tcl file. If your system is different from the one described in the previous sections, check the file paths as well. Set do_checkout=yes to create a new OpenACS site directly from a CVS checkout, or =no if you have a fully configured site and just want to rebuild it (drop and recreate the database and repeat the installation). If you have followed a stock installation, the default configuration will work without changes and will install an OpenACS site at 127.0.0.1:8000.
Run the install script install.sh as root:
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit +[root root]# sh /home/$OPENACS_SERVICE_NAME/install/install.sh +/home/$OPENACS_SERVICE_NAME/install/install.sh: Starting installation with config_file +/home/$OPENACS_SERVICE_NAME/install/install.tcl. Using serverroot=/var/lib/aolserver/ +$OPENACS_SERVICE_NAME, server_url=http://0.0.0.0:8000, do_checkout=yes, do_install=yes, dotlrn=no, and database=postgres., use_daemontools=true ... many lines omitted ... -Tue Jan 27 11:50:59 CET 2004: Finished (re)installing /var/lib/aolserver/service0. +Tue Jan 27 11:50:59 CET 2004: Finished (re)installing /var/lib/aolserver/$OPENACS_SERVICE_NAME. ###################################################################### New site URL: http://127.0.0.1:8000 admin email : admin@yourserver.net @@ -67,42 +67,42 @@ to the /tmp directory. If not, download the OpenACS tarball and save it in - /tmp and proceed:
Unpack the OpenACS tarball and rename it to service0. Secure the directory so that only the owner can access it. Check the permissions by listing the directory.
[root root]# su - service0 -[service0 service0]$ cd /var/lib/aolserver -[service0 aolserver]$ tar xzf /tmp/openacs-5.2.0d1.tgz -[service0 aolserver]$ mv openacs-5.2.0d1 service0 -[service0 aolserver]$ chmod -R 775 service0 -[service0 aolserver]$ chown -R service0.service0 service0 -[service0 aolserver]$ ls -al + /tmp and proceed:
Unpack the OpenACS tarball and rename it to $OPENACS_SERVICE_NAME. Secure the directory so that only the owner can access it. Check the permissions by listing the directory.
[root root]# su - $OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver +[$OPENACS_SERVICE_NAME aolserver]$ tar xzf /tmp/openacs-5.2.0d1.tgz +[$OPENACS_SERVICE_NAME aolserver]$ mv openacs-5.2.0d1 $OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME aolserver]$ chmod -R 775 $OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME aolserver]$ chown -R $OPENACS_SERVICE_NAME.$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME aolserver]$ ls -al total 3 drwxrwx--- 3 root web 1024 Mar 29 16:41 . drwxr-xr-x 25 root root 1024 Mar 29 16:24 .. -drwx------ 7 service0 web 1024 Jan 6 14:36 service0 -[service0 aolserver]$ exit +drwx------ 7 $OPENACS_SERVICE_NAME web 1024 Jan 6 14:36 $OPENACS_SERVICE_NAME +[$OPENACS_SERVICE_NAME aolserver]$ exit logout [root root]# -su - service0 +su - $OPENACS_SERVICE_NAME cd /var/lib/aolserver tar xzf /tmp/openacs-5.2.0d1.tgz -mv openacs-5.2.0d1 service0 -chmod -R 755 service0 -chgrp -R service0.service0 service0 +mv openacs-5.2.0d1 $OPENACS_SERVICE_NAME +chmod -R 755 $OPENACS_SERVICE_NAME +chgrp -R $OPENACS_SERVICE_NAME.$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME exitAdd the Service to CVS (OPTIONAL)
Prepare the database
Prepare Oracle for OpenACS.�If you won't be using Oracle, skip to Prepare PostgreSQL for an OpenACS Service
You should be sure that your user account - (e.g. service0) is in the + (e.g. $OPENACS_SERVICE_NAME) is in the dba group.
Verify membership by typing groups when you login: -
[service0 ~]$ groups +[$OPENACS_SERVICE_NAME ~]$ groups dba webIf you do not see these groups, take the following action: -
[service0 ~]$