Commit 27566f9d authored by Frank Bergmann's avatar Frank Bergmann

- OpenACS 5.9

parent 93f202e0
<!-- Begin of navfooter.adp -->
<div class="navfooter" style="display:table;width:100%;border-top:1px dashed #ddd;border-bottom:1px dashed #ddd;padding:5px 0;">
<span style="display:table-cell;text-align:left;width:40%;padding-left:20px;">
<a accesskey="p" href="@leftLink@" class="arrow_box-left">@leftLabel@</a>
<br><span style="color:#696969;display:block;margin-top:3px;">@leftTitle@</span>
</span>
<span style="display:table-cell;text-align:center;width:20%;">
<a accesskey="h" href="@homeLink@">@homeLabel@</a>
<br><a accesskey="u" href="@upLink@">@upLabel@</a>
</span>
<span style="display:table-cell;text-align:right;width:40%;padding-right:20px;">
<a accesskey="n" href="@rightLink@" class="arrow_box">@rightLabel@</a>
<br><span style="color:#696969;display:block;margin-top:3px;">@rightTitle@</span>
</span>
</div>
<!-- End of navfooter.adp -->
\ No newline at end of file
<style>
.arrow_box {
position: relative;
background: #f3f1e9;
border: 1px solid #ffffff;
padding:4px;
}
.arrow_box:after, .arrow_box:before {
left: 100%;
top: 50%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
.arrow_box:after {
border-color: rgba(243, 241, 233, 0);
border-left-color: #f3f1e9;
border-width: 14px;
margin-top: -14px;
}
.arrow_box:before {
border-color: rgba(255, 255, 255, 0);
border-left-color: #ffffff;
border-width: 15px;
margin-top: -15px;
}
.arrow_box-left {
position: relative;
background: #f3f1e9;
border: 1px solid #ffffff;
padding:4px;
}
.arrow_box-left:after, .arrow_box:before {
right: 100%;
top: 50%;
border: solid transparent;
content: " ";
height: 0;
width: 0;
position: absolute;
pointer-events: none;
}
.arrow_box-left:after {
border-color: rgba(243, 241, 233, 0);
border-right-color: #f3f1e9;
border-width: 14px;
margin-top: -14px;
}
.arrow_box-left:before {
border-color: rgba(255, 255, 255, 0);
border-right-color: #ffffff;
border-width: 15px;
margin-top: -15px;
}
</style>
<div class="navheader" style="display:table;width:100%;border-top:1px dashed #ddd;border-bottom:1px dashed #ddd;padding:5px 0;">
<span style="display:table-cell;text-align:left;width:20%;padding-left:20px;">
<a accesskey="p" href="@leftLink@" class="arrow_box-left">@leftLabel@</a>
</span>
<span style="display:table-cell;text-align:center;width:60%;"><b>@title@</b></span>
<span style="display:table-cell;text-align:right;width:20%;padding-right:20px;">
<a accesskey="n" href="@rightLink@" class="arrow_box">@rightLabel@</a>
</span>
</div>
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Part II. Administrator's
Guide}</property>
<property name="doc(title)">Part II. Administrator's
Guide</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="release-notes" leftLabel="Prev"
title=""
rightLink="install-overview" rightLabel="Next">
<div class="part">
<div class="titlepage"><div><div><h1 class="title">
<a name="acs-admin" id="acs-admin"></a>Part II. Administrator's
Guide</h1></div></div></div><div class="toc">
<p><b>Table of Contents</b></p><dl class="toc">
<dt><span class="chapter"><a href="install-overview">2.
Installation Overview</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="install-steps">Basic
Steps</a></span></dt><dt><span class="sect1"><a href="individual-programs">Prerequisite Software</a></span></dt>
</dl></dd><dt><span class="chapter"><a href="complete-install">3.
Complete Installation</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="unix-installation">Install a
Unix-like system and supporting software</a></span></dt><dt><span class="sect1"><a href="oracle">Install Oracle
8.1.7</a></span></dt><dt><span class="sect1"><a href="postgres">Install
PostgreSQL</a></span></dt><dt><span class="sect1"><a href="aolserver4">Install AOLserver
4</a></span></dt><dt><span class="sect1"><a href="openacs">Install OpenACS
5.7.0</a></span></dt><dt><span class="sect1"><a href="win2k-installation">OpenACS
Installation Guide for Windows2000</a></span></dt><dt><span class="sect1"><a href="mac-installation">OpenACS
Installation Guide for Mac OS X</a></span></dt>
</dl></dd><dt><span class="chapter"><a href="configuring-new-site">4.
Configuring a new OpenACS Site</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="configuring-install-packages">Installing OpenACS
packages</a></span></dt><dt><span class="sect1"><a href="configuring-mounting-packages">Mounting OpenACS
packages</a></span></dt><dt><span class="sect1"><a href="configuring-configuring-packages">Configuring an OpenACS
package</a></span></dt><dt><span class="sect1"><a href="configuring-configuring-permissions">Setting Permissions on
an OpenACS package</a></span></dt><dt><span class="sect1"><a href="how-do-I">How Do
I?</a></span></dt>
</dl></dd><dt><span class="chapter"><a href="upgrade">5.
Upgrading</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="upgrade-overview">Overview</a></span></dt><dt><span class="sect1"><a href="upgrade-4.5-to-4.6">Upgrading
4.5 or higher to 4.6.3</a></span></dt><dt><span class="sect1"><a href="upgrade-4.6.3-to-5">Upgrading
OpenACS 4.6.3 to 5.0</a></span></dt><dt><span class="sect1"><a href="upgrade-5-0-dot">Upgrading an
OpenACS 5.0.0 or greater installation</a></span></dt><dt><span class="sect1"><a href="upgrade-openacs-files">Upgrading the OpenACS
files</a></span></dt><dt><span class="sect1"><a href="upgrade-supporting">Upgrading
Platform components</a></span></dt>
</dl></dd><dt><span class="chapter"><a href="maintenance-web">6.
Production Environments</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="install-openacs-keepalive">Starting and Stopping an OpenACS
instance.</a></span></dt><dt><span class="sect1"><a href="install-openacs-inittab">AOLserver keepalive with
inittab</a></span></dt><dt><span class="sect1"><a href="install-next-add-server">Running multiple services on one
machine</a></span></dt><dt><span class="sect1"><a href="high-avail">High
Availability/High Performance Configurations</a></span></dt><dt><span class="sect1"><a href="maintenance-deploy">Staged
Deployment for Production Networks</a></span></dt><dt><span class="sect1"><a href="install-ssl">Installing SSL
Support for an OpenACS service</a></span></dt><dt><span class="sect1"><a href="analog-setup">Set up Log
Analysis Reports</a></span></dt><dt><span class="sect1"><a href="uptime">External uptime
validation</a></span></dt><dt><span class="sect1"><a href="maint-performance">Diagnosing
Performance Problems</a></span></dt>
</dl></dd><dt><span class="chapter"><a href="database-management">7.
Database Management</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="remote-postgres">Running a
PostgreSQL database on another server</a></span></dt><dt><span class="sect1"><a href="install-openacs-delete-tablespace">Deleting a
tablespace</a></span></dt><dt><span class="sect1"><a href="install-next-nightly-vacuum">Vacuum Postgres
nightly</a></span></dt>
</dl></dd><dt><span class="chapter"><a href="backup-recovery">8. Backup
and Recovery</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="install-next-backups">Backup
Strategy</a></span></dt><dt><span class="sect1"><a href="snapshot-backup">Manual
backup and recovery</a></span></dt><dt><span class="sect1"><a href="automated-backup">Automated
Backup</a></span></dt><dt><span class="sect1"><a href="backups-with-cvs">Using CVS
for backup-recovery</a></span></dt>
</dl></dd><dt><span class="appendix"><a href="install-redhat">A. Install
Red Hat 8/9</a></span></dt><dt><span class="appendix"><a href="install-more-software">B.
Install additional supporting software</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="openacs-unpack">Unpack the
OpenACS tarball</a></span></dt><dt><span class="sect1"><a href="install-cvs">Initialize CVS
(OPTIONAL)</a></span></dt><dt><span class="sect1"><a href="psgml-for-emacs">Add PSGML
commands to emacs init file (OPTIONAL)</a></span></dt><dt><span class="sect1"><a href="install-daemontools">Install
Daemontools (OPTIONAL)</a></span></dt><dt><span class="sect1"><a href="install-qmail">Install qmail
(OPTIONAL)</a></span></dt><dt><span class="sect1"><a href="analog-install">Install
Analog web file analyzer</a></span></dt><dt><span class="sect1"><a href="install-nspam">Install
nspam</a></span></dt><dt><span class="sect1"><a href="install-full-text-search-tsearch2">Install Full Text Search
using Tsearch2</a></span></dt><dt><span class="sect1"><a href="install-full-text-search-openfts">Install Full Text Search
using OpenFTS (deprecated see tsearch2)</a></span></dt><dt><span class="sect1"><a href="install-nsopenssl">Install
nsopenssl</a></span></dt><dt><span class="sect1"><a href="install-tclwebtest">Install
tclwebtest.</a></span></dt><dt><span class="sect1"><a href="install-php">Install PHP for
use in AOLserver</a></span></dt><dt><span class="sect1"><a href="install-squirrelmail">Install
Squirrelmail for use as a webmail system for
OpenACS</a></span></dt><dt><span class="sect1"><a href="install-pam-radius">Install
PAM Radius for use as external authentication</a></span></dt><dt><span class="sect1"><a href="install-ldap-radius">Install
LDAP for use as external authentication</a></span></dt><dt><span class="sect1"><a href="aolserver">Install AOLserver
3.3oacs1</a></span></dt>
</dl></dd><dt><span class="appendix"><a href="credits">C.
Credits</a></span></dt><dd><dl>
<dt><span class="section"><a href="install-origins">Where did
this document come from?</a></span></dt><dt><span class="section"><a href="os-install">Linux Install
Guides</a></span></dt><dt><span class="section"><a href="os-security">Security
Information</a></span></dt><dt><span class="section"><a href="install-resources">Resources</a></span></dt>
</dl></dd>
</dl>
</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="release-notes" leftLabel="Prev" leftTitle="OpenACS Release Notes"
rightLink="install-overview" rightLabel="Next" rightTitle="
Chapter 2. Installation Overview"
homeLink="index" homeLabel="Home"
upLink="index" upLabel="Up">
\ No newline at end of file
This diff is collapsed.
<property name="context">{/doc/acs-core-docs {Documentation}} {Part III. For OpenACS Package
Developers}</property>
<property name="doc(title)">Part III. For OpenACS Package
Developers</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="install-resources" leftLabel="Prev"
title=""
rightLink="tutorial" rightLabel="Next">
<div class="part">
<div class="titlepage"><div><div><h1 class="title">
<a name="acs-package-dev" id="acs-package-dev"></a>Part III. For OpenACS
Package Developers</h1></div></div></div><div class="partintro">
<p>Tutorials and reference material for creating new OpenACS
packages.</p><div class="toc">
<p><b>Table of Contents</b></p><dl class="toc">
<dt><span class="chapter"><a href="tutorial">9. Development
Tutorial</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="tutorial-newpackage">Creating
an Application Package</a></span></dt><dt><span class="sect1"><a href="tutorial-database">Setting Up
Database Objects</a></span></dt><dt><span class="sect1"><a href="tutorial-pages">Creating Web
Pages</a></span></dt><dt><span class="sect1"><a href="tutorial-debug">Debugging and
Automated Testing</a></span></dt>
</dl></dd><dt><span class="chapter"><a href="tutorial-advanced">10.
Advanced Topics</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="tutorial-specs">Write the
Requirements and Design Specs</a></span></dt><dt><span class="sect1"><a href="tutorial-cvs">Add the new
package to CVS</a></span></dt><dt><span class="sect1"><a href="tutorial-etp-templates">OpenACS Edit This Page
Templates</a></span></dt><dt><span class="sect1"><a href="tutorial-comments">Adding
Comments</a></span></dt><dt><span class="sect1"><a href="tutorial-admin-pages">Admin
Pages</a></span></dt><dt><span class="sect1"><a href="tutorial-categories">Categories</a></span></dt><dt><span class="sect1"><a href="profile-code">Profile your
code</a></span></dt><dt><span class="sect1"><a href="tutorial-distribute">Prepare
the package for distribution.</a></span></dt><dt><span class="sect1"><a href="tutorial-upgrades">Distributing upgrades of your
package</a></span></dt><dt><span class="sect1"><a href="tutorial-notifications">Notifications</a></span></dt><dt><span class="sect1"><a href="tutorial-hierarchical">Hierarchical data</a></span></dt><dt><span class="sect1"><a href="tutorial-vuh">Using .vuh
files for pretty urls</a></span></dt><dt><span class="sect1"><a href="tutorial-css-layout">Laying
out a page with CSS instead of tables</a></span></dt><dt><span class="sect1"><a href="tutorial-html-email">Sending
HTML email from your application</a></span></dt><dt><span class="sect1"><a href="tutorial-caching">Basic
Caching</a></span></dt><dt><span class="sect1"><a href="tutorial-schedule-procs">Scheduled Procedures</a></span></dt><dt><span class="sect1"><a href="tutorial-wysiwyg-editor">Enabling WYSIWYG</a></span></dt><dt><span class="sect1"><a href="tutorial-parameters">Adding
in parameters for your package</a></span></dt><dt><span class="sect1"><a href="tutorial-upgrade-scripts">Writing upgrade
scripts</a></span></dt><dt><span class="sect1"><a href="tutorial-second-database">Connect to a second
database</a></span></dt><dt><span class="sect1"><a href="tutorial-future-topics">Future Topics</a></span></dt>
</dl></dd><dt><span class="chapter"><a href="dev-guide">11. Development
Reference</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="packages">OpenACS
Packages</a></span></dt><dt><span class="sect1"><a href="objects">OpenACS Data Models
and the Object System</a></span></dt><dt><span class="sect1"><a href="request-processor">The
Request Processor</a></span></dt><dt><span class="sect1"><a href="db-api">The OpenACS Database
Access API</a></span></dt><dt><span class="sect1"><a href="templates">Using Templates in
OpenACS</a></span></dt><dt><span class="sect1"><a href="permissions">Groups, Context,
Permissions</a></span></dt><dt><span class="sect1"><a href="subsites">Writing OpenACS
Application Pages</a></span></dt><dt><span class="sect1"><a href="parties">Parties in
OpenACS</a></span></dt><dt><span class="sect1"><a href="permissions-tediously-explained">OpenACS Permissions
Tediously Explained</a></span></dt><dt><span class="sect1"><a href="object-identity">Object
Identity</a></span></dt><dt><span class="sect1"><a href="programming-with-aolserver">Programming with
AOLserver</a></span></dt><dt><span class="sect1"><a href="form-builder">Using Form
Builder: building html forms dynamically</a></span></dt>
</dl></dd><dt><span class="chapter"><a href="eng-standards">12.
Engineering Standards</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="style-guide">OpenACS Style
Guide</a></span></dt><dt><span class="sect1"><a href="cvs-guidelines">CVS
Guidelines</a></span></dt><dt><span class="sect1"><a href="eng-standards-versioning">Release Version
Numbering</a></span></dt><dt><span class="sect1"><a href="eng-standards-constraint-naming">Constraint naming
standard</a></span></dt><dt><span class="sect1"><a href="eng-standards-filenaming">ACS
File Naming and Formatting Standards</a></span></dt><dt><span class="sect1"><a href="eng-standards-plsql">PL/SQL
Standards</a></span></dt><dt><span class="sect1"><a href="variables">Variables</a></span></dt><dt><span class="sect1"><a href="automated-testing-best-practices">Automated
Testing</a></span></dt>
</dl></dd><dt><span class="chapter"><a href="doc-standards">13.
Documentation Standards</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="docbook-primer">OpenACS
Documentation Guide</a></span></dt><dt><span class="sect1"><a href="psgml-mode">Using PSGML mode
in Emacs</a></span></dt><dt><span class="sect1"><a href="nxml-mode">Using nXML mode in
Emacs</a></span></dt><dt><span class="sect1"><a href="filename">Detailed Design
Documentation Template</a></span></dt><dt><span class="sect1"><a href="requirements-template">System/Application Requirements
Template</a></span></dt>
</dl></dd><dt><span class="chapter"><a href="i18n">14.
Internationalization</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="i18n-overview">Internationalization and Localization
Overview</a></span></dt><dt><span class="sect1"><a href="i18n-introduction">How
Internationalization/Localization works in OpenACS</a></span></dt><dt><span class="sect1"><a href="i18n-convert">How to
Internationalize a Package</a></span></dt><dt><span class="sect1"><a href="i18n-design">Design
Notes</a></span></dt><dt><span class="sect1"><a href="i18n-translators">Translator's Guide</a></span></dt>
</dl></dd><dt><span class="appendix"><a href="cvs-tips">D. Using CVS
with an OpenACS Site</a></span></dt>
</dl>
</div>
</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="install-resources" leftLabel="Prev" leftTitle="Resources"
rightLink="tutorial" rightLabel="Next" rightTitle="
Chapter 9. Development Tutorial"
homeLink="index" homeLabel="Home"
upLink="index" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Part IV. For OpenACS Platform
Developers}</property>
<property name="doc(title)">Part IV. For OpenACS Platform
Developers</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="cvs-tips" leftLabel="Prev"
title=""
rightLink="kernel-doc" rightLabel="Next">
<div class="part">
<div class="titlepage"><div><div><h1 class="title">
<a name="acs-plat-dev" id="acs-plat-dev"></a>Part IV. For OpenACS
Platform Developers</h1></div></div></div><div class="toc">
<p><b>Table of Contents</b></p><dl class="toc">
<dt><span class="chapter"><a href="kernel-doc">15. Kernel
Documentation</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="kernel-overview">Overview</a></span></dt><dt><span class="sect1"><a href="object-system-requirements">Object Model
Requirements</a></span></dt><dt><span class="sect1"><a href="object-system-design">Object
Model Design</a></span></dt><dt><span class="sect1"><a href="permissions-requirements">Permissions
Requirements</a></span></dt><dt><span class="sect1"><a href="permissions-design">Permissions Design</a></span></dt><dt><span class="sect1"><a href="groups-requirements">Groups
Requirements</a></span></dt><dt><span class="sect1"><a href="groups-design">Groups
Design</a></span></dt><dt><span class="sect1"><a href="subsites-requirements">Subsites Requirements</a></span></dt><dt><span class="sect1"><a href="subsites-design">Subsites
Design Document</a></span></dt><dt><span class="sect1"><a href="apm-requirements">Package
Manager Requirements</a></span></dt><dt><span class="sect1"><a href="apm-design">Package Manager
Design</a></span></dt><dt><span class="sect1"><a href="db-api-detailed">Database
Access API</a></span></dt><dt><span class="sect1"><a href="i18n-requirements">OpenACS
Internationalization Requirements</a></span></dt><dt><span class="sect1"><a href="security-requirements">Security Requirements</a></span></dt><dt><span class="sect1"><a href="security-design">Security
Design</a></span></dt><dt><span class="sect1"><a href="security-notes">Security
Notes</a></span></dt><dt><span class="sect1"><a href="rp-requirements">Request
Processor Requirements</a></span></dt><dt><span class="sect1"><a href="rp-design">Request Processor
Design</a></span></dt><dt><span class="sect1"><a href="tcl-doc">Documenting Tcl
Files: Page Contracts and Libraries</a></span></dt><dt><span class="sect1"><a href="bootstrap-acs">Bootstrapping
OpenACS</a></span></dt><dt><span class="sect1"><a href="ext-auth-requirements">External Authentication
Requirements</a></span></dt>
</dl></dd><dt><span class="chapter"><a href="releasing-openacs">16.
Releasing OpenACS</a></span></dt><dd><dl>
<dt><span class="section"><a href="releasing-openacs-core">OpenACS Core and .LRN</a></span></dt><dt><span class="section"><a href="update-repository">How to
Update the OpenACS.org repository</a></span></dt><dt><span class="section"><a href="releasing-package">How to
package and release an OpenACS Package</a></span></dt><dt><span class="section"><a href="update-translations">How to
Update the translations</a></span></dt>
</dl></dd>
</dl>
</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="cvs-tips" leftLabel="Prev" leftTitle="
Appendix D. Using CVS with an OpenACS
Site"
rightLink="kernel-doc" rightLabel="Next" rightTitle="
Chapter 15. Kernel Documentation"
homeLink="index" homeLabel="Home"
upLink="index" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Install Analog web file analyzer}</property>
<property name="doc(title)">Install Analog web file analyzer</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="install-qmail" leftLabel="Prev"
title="
Appendix B. Install additional supporting
software"
rightLink="install-nspam" rightLabel="Next">
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="analog-install" id="analog-install"></a>Install Analog web file analyzer</h2></div></div></div><p>Download the Analog <a class="link" href="individual-programs" title="Analog 5.32 or newer, OPTIONAL">source tarball</a> in <code class="computeroutput">/tmp</code>. Unpack, compile, and install
analog.</p><pre class="screen">
[root aolserver]# <strong class="userinput"><code>cd /usr/local/src</code></strong>
[root src]# <strong class="userinput"><code>tar xzf /tmp/analog-5.32.tar.gz</code></strong>
[root src]# <strong class="userinput"><code>cd analog-5.32</code></strong>
[root analog-5.32]# <strong class="userinput"><code>make</code></strong>
cd src &amp;&amp; make
make[1]: Entering directory `/usr/local/src/analog-5.32/src'
<span class="emphasis"><em>(many lines omitted)</em></span>
***IMPORTANT: You must read the licence before using analog
***
make[1]: Leaving directory `/usr/local/src/analog-5.32/src'
[root analog-5.32]# <strong class="userinput"><code>cd ..</code></strong>
[root src]#<strong class="userinput"><code> mv analog-5.32 /usr/share/</code></strong>
[root src]#
<span class="action"><span class="action">cd /usr/local/src
tar xzf /tmp/analog-5.32.tar.gz
cd analog-5.32
make
cd ..
mv analog-5.32 /usr/share/</span></span>
</pre><p>See also <a class="xref" href="analog-setup" title="Set up Log Analysis Reports">the section called
&ldquo;Set up Log Analysis
Reports&rdquo;</a>
</p>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="install-qmail" leftLabel="Prev" leftTitle="Install qmail (OPTIONAL)"
rightLink="install-nspam" rightLabel="Next" rightTitle="Install nspam"
homeLink="index" homeLabel="Home"
upLink="install-more-software" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Set up Log Analysis Reports}</property>
<property name="doc(title)">Set up Log Analysis Reports</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="install-ssl" leftLabel="Prev"
title="
Chapter 6. Production Environments"
rightLink="uptime" rightLabel="Next">
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="analog-setup" id="analog-setup"></a>Set up Log Analysis Reports</h2></div></div></div><p>Analog is a program with processes webserver access logs,
performs DNS lookup, and outputs HTML reports. Analog should
<a class="link" href="analog-install" title="Install Analog web file analyzer">already be installed.</a> A
modified configuration file is included in the OpenACS tarball.</p><div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
<pre class="screen">
[root src]# <strong class="userinput"><code>su - $OPENACS_SERVICE_NAME</code></strong>
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cd /var/lib/aolserver/$OPENACS_SERVICE_NAME</code></strong>
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>mkdir www/log</code></strong>
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cp -r /usr/share/analog-5.32/images www/log/</code></strong>
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <span class="action"><span class="action">
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.32/images www/log/</span></span>
</pre><p>Edit <code class="computeroutput">/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/analog.cfg</code>
and change the variable in <code class="computeroutput">HOSTNAME
"[my organisation]"</code> to reflect your website title. If you
don't want the traffic log to be publicly visible, change
<code class="computeroutput">OUTFILE
/var/lib/aolserver/$OPENACS_SERVICE_NAME/www/log/traffic.html</code>
to use a private directory. You'll also need to edit all instances
of service0 to your $OPENACS_SERVICE_NAME.</p>
</li><li class="listitem">
<p>Run it.</p><pre class="screen">
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>/usr/share/analog-5.32/analog -G -g/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc/analog.cfg</code></strong>
/usr/share/analog-5.32/analog: analog version 5.32/Unix
/usr/share/analog-5.32/analog: Warning F: Failed to open DNS input file
/home/$OPENACS_SERVICE_NAME/dnscache: ignoring it
(For help on all errors and warnings, see docs/errors.html)
/usr/share/analog-5.32/analog: Warning R: Turning off empty Search Word Report
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$
</pre><p>Verify that it works by browing to <code class="computeroutput">http://yourserver.test:8000/log/traffic.html</code>
</p>
</li><li class="listitem">
<p>Automate this by creating a file in <code class="computeroutput">/etc/cron.daily</code>.</p><pre class="screen">
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>exit</code></strong>
logout
[root root]# <strong class="userinput"><code>emacs /etc/cron.daily/analog</code></strong>
</pre><p>Put this into the file:</p><pre class="programlisting">
#!/bin/sh
/usr/share/analog-5.32/analog -G -g/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/etc/analog.cfg
</pre><pre class="screen">
[root root]# <strong class="userinput"><code>chmod 755 /etc/cron.daily/analog</code></strong>
</pre><p>Test it by running the script.</p><pre class="screen">
[root root]# <strong class="userinput"><code>sh /etc/cron.daily/analog</code></strong>
</pre><p>Browse to <code class="computeroutput">http://<span class="replaceable"><span class="replaceable">yourserver.test</span></span>/log/traffic.html</code>
</p>
</li>
</ol></div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="install-ssl" leftLabel="Prev" leftTitle="Installing SSL Support for an OpenACS
service"
rightLink="uptime" rightLabel="Next" rightTitle="External uptime validation"
homeLink="index" homeLabel="Home"
upLink="maintenance-web" upLabel="Up">
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<property name="context">{/doc/acs-core-docs {Documentation}} {Automated Backup}</property>
<property name="doc(title)">Automated Backup</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="snapshot-backup" leftLabel="Prev"
title="
Chapter 8. Backup and Recovery"
rightLink="backups-with-cvs" rightLabel="Next">
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="automated-backup" id="automated-backup"></a>Automated Backup</h2></div></div></div><p>The recommended backup strategy for a production sit is to use
an automated script which first backs up the database to a file in
<code class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/database-backup</code>
and then backs up all of <code class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
</code>
to a single zip file, and then copies that zip file to another
computer.</p><div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem"><p>Make sure that the manual backup process described above
works.</p></li><li class="listitem"><p>Customize the default backup script. Edit <code class="filename">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/etc/backup.sh</code>
with your specific parameters.</p></li><li class="listitem">
<p>Make sure the file is executable:</p><pre class="programlisting">
chmod +x backup.sh
</pre>
</li><li class="listitem">
<p>Set this file to run automatically by adding a line to root's
crontab. (Typically, with <code class="computeroutput">export
EDITOR=emacs; crontab -e</code>.) This example runs the backup
script at 1:30 am every day.</p><pre class="programlisting">
30 1 * * * sh /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/etc/backup.sh
</pre>
</li>
</ol></div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="snapshot-backup" leftLabel="Prev" leftTitle="Manual backup and recovery"
rightLink="backups-with-cvs" rightLabel="Next" rightTitle="Using CVS for backup-recovery"
homeLink="index" homeLabel="Home"
upLink="backup-recovery" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Automated Testing}</property>
<property name="doc(title)">Automated Testing</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="variables" leftLabel="Prev"
title="
Chapter 12. Engineering Standards"
rightLink="doc-standards" rightLabel="Next">
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="automated-testing-best-practices" id="automated-testing-best-practices"></a>Automated Testing</h2></div></div></div><div class="authorblurb">
<p>By <a class="ulink" href="mailto:davis\@xarg.net" target="_top">Jeff Davis</a>
</p>
OpenACS docs are written by the named authors, and may be edited by
OpenACS documentation staff.</div><p>Best practices in writing OpenACS automated tests</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc;">
<li class="listitem"><p>
<b>Special characters in Tcl. </b> Try strings
starting with a <code class="computeroutput">-Bad</code> and
strings containing <code class="computeroutput">[BAD]</code>,
<code class="computeroutput">{</code>, <code class="computeroutput">\077</code>, and <code class="computeroutput">$Bad</code>. For user input, <code class="computeroutput">[BAD]</code> should never be evaluated,
<code class="computeroutput">\077</code> should not be turned into
a <code class="computeroutput">?</code> and <code class="computeroutput">$Bad</code> should not be interpolated. The string
<code class="computeroutput">-Bad [BAD] \077 { $Bad</code> should
be valid user input, should pass through the system unaltered, and
if it isn't that's a bug.</p></li><li class="listitem"><p>
<b>Quoting issues. </b>Put some html in plain text
fields and make sure the result is properly quoted anywhere it
shows up (I use "&lt;b&gt;bold&lt;/b&gt;" usually). Look out
especially for quoting errors in the context bar and in round trips
via an edit form. For fields that disallow html tags you can use
<code class="computeroutput">&amp;amp;</code> to check that the
field is quoted properly. If it is not displayed as <code class="computeroutput">&amp;amp;</code> then the quoting for the field is
incorrect. (It's not clear whether this should be considered an
error but given that data for text fields can come from various
sources if it's text it should be properly quoted and we should not
rely on input validation to prevent XSS security holes.)</p></li><li class="listitem"><p>
<b>Whitespace input. </b>Check that whitespace is
not considered valid input for a field if it does not make sense.
For example, the subject of a forum post is used to construct a
link and if it is " " it will have a link of <code class="computeroutput">&lt;a href="..."&gt; &lt;/a&gt;</code> which would
not be clickable if whitespace was allowed as a valid input.</p></li><li class="listitem"><p>
<b>Doubleclick. </b> Make sure that if you submit a
form, use the back button, and submit again that the behavior is
reasonable (correct behavior depends on what the form is for, but a
server error is not reasonable).</p></li><li class="listitem"><p>
<b>Duplicate names. </b> Make sure that if a
duplicate name is entered that there is a reasonable error rather
than a server error. Check for insert, move, copy, and rename.</p></li>
</ul></div><div class="cvstag">($&zwnj;Id: auto-testing.xml,v 1.3 2006/07/17
05:38:37 torbenb Exp $)</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="variables" leftLabel="Prev" leftTitle="Variables"
rightLink="doc-standards" rightLabel="Next" rightTitle="
Chapter 13. Documentation Standards"
homeLink="index" homeLabel="Home"
upLink="eng-standards" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Chapter 8. Backup and
Recovery}</property>
<property name="doc(title)">Chapter 8. Backup and
Recovery</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="install-next-nightly-vacuum" leftLabel="Prev"
title="
Part II. Administrator's Guide"
rightLink="install-next-backups" rightLabel="Next">
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
<a name="backup-recovery" id="backup-recovery"></a>Chapter 8. Backup and
Recovery</h2></div></div></div><div class="toc">
<p><b>Table of Contents</b></p><dl class="toc">
<dt><span class="sect1"><a href="install-next-backups">Backup
Strategy</a></span></dt><dt><span class="sect1"><a href="snapshot-backup">Manual
backup and recovery</a></span></dt><dt><span class="sect1"><a href="automated-backup">Automated
Backup</a></span></dt><dt><span class="sect1"><a href="backups-with-cvs">Using CVS
for backup-recovery</a></span></dt>
</dl>
</div><div class="authorblurb">
<div class="cvstag">($&zwnj;Id: recovery.xml,v 1.17 2010/12/11 23:36:32
ryang Exp $)</div><p>By <a class="ulink" href="mailto:dhogaza\@pacifier.com" target="_top">Don Baccus</a> with additions by <a class="ulink" href="mailto:joel\@aufrecht.org" target="_top">Joel Aufrecht</a>
</p><p>We will cover some basic backup and recovery strategies. These
are intended to be robust but simple enough to set up. For a large
scale production site you would 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).</p><p>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).</p><div class="figure">
<a name="idp140400238889792" id="idp140400238889792"></a><p class="title"><b>Figure 8.1. Backup and
Recovery Strategy</b></p><div class="figure-contents"><div class="mediaobject" align="center"><img src="images/backup.png" align="middle" alt="Backup and Recovery Strategy"></div></div>
</div><p><br class="figure-break"></p>
OpenACS docs are written by the named authors, and may be edited by
OpenACS documentation staff.</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="install-next-nightly-vacuum" leftLabel="Prev" leftTitle="Vacuum Postgres nightly"
rightLink="install-next-backups" rightLabel="Next" rightTitle="Backup Strategy"
homeLink="index" homeLabel="Home"
upLink="acs-admin" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Using CVS for backup-recovery}</property>
<property name="doc(title)">Using CVS for backup-recovery</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="automated-backup" leftLabel="Prev"
title="
Chapter 8. Backup and Recovery"
rightLink="install-redhat" rightLabel="Next">
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="backups-with-cvs" id="backups-with-cvs"></a>Using CVS for backup-recovery</h2></div></div></div><p>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.</p><p>Note that, if you did the CVS options in this document, the
<code class="filename">/var/lib/aolserver/$OPENACS_SERVICE_NAME/etc</code>
directory is not included in cvs and you may want to add it.</p><pre class="screen">
[root root]# <strong class="userinput"><code>su - $OPENACS_SERVICE_NAME</code></strong>
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
</code></strong>
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cvs commit -m "last-minute commits before upgrade to 4.6"</code></strong>
cvs commit: Examining .
cvs commit: Examining bin
<span class="emphasis"><em>(many lines omitted)</em></span>
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cvs tag before_upgrade_to_4_6</code></strong>
cvs server: Tagging bin
T bin/acs-4-0-publish.sh
T bin/ad-context-server.pl
(many lines omitted)
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>exit</code></strong>
[root root]#
<span class="action"><span class="action">su - $OPENACS_SERVICE_NAME
cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
cvs commit -m "last-minute commits before upgrade to 4.6"
cvs tag before_upgrade_to_4_6
exit</span></span>
</pre><p>To restore files from a cvs tag such as the one used above:</p><pre class="screen">
[root root]# <strong class="userinput"><code>su - $OPENACS_SERVICE_NAME</code></strong>
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
</code></strong>
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cvs up -r current</code></strong>
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>exit</code></strong><span class="action"><span class="action">su - $OPENACS_SERVICE_NAME
cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
cvs up -r current</span></span>
</pre>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="automated-backup" leftLabel="Prev" leftTitle="Automated Backup"
rightLink="install-redhat" rightLabel="Next" rightTitle="
Appendix A. Install Red Hat 8/9"
homeLink="index" homeLabel="Home"
upLink="backup-recovery" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Bootstrapping OpenACS}</property>
<property name="doc(title)">Bootstrapping OpenACS</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="tcl-doc" leftLabel="Prev"
title="
Chapter 15. Kernel Documentation"
rightLink="ext-auth-requirements" rightLabel="Next">
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="bootstrap-acs" id="bootstrap-acs"></a>Bootstrapping OpenACS</h2></div></div></div><div class="authorblurb">
<p>By <a class="ulink" href="mailto:jsalz\@mit.edu" target="_top">Jon Salz</a>
</p>
OpenACS docs are written by the named authors, and may be edited by
OpenACS documentation staff.</div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc;"><li class="listitem"><p>Tcl code: /tcl/0-acs-init.tcl and
/packages/acs-kernel/bootstrap.tcl</p></li></ul></div><p>This document describes the startup (bootstrapping) process for
an AOLserver running OpenACS.</p><div class="sect2">
<div class="titlepage"><div><div><h3 class="title">
<a name="bootstrap-acs-bigpicture" id="bootstrap-acs-bigpicture"></a>The Big Picture</h3></div></div></div><p>Before OpenACS 3.3, the OpenACS startup process was extremely
simple: after AOLserver performed its internal initialization
(reading the configuration file, loading shared libraries and
module code, etc.) it scanned through the Tcl library directory
(generally <code class="computeroutput">/var/lib/aolserver/</code><span class="emphasis"><em><code class="computeroutput">yourservername</code></em></span><code class="computeroutput">/tcl</code>), sourcing each file in sequence.</p><p>While this overall structure for initialization is still intact,
package management has thrown a wrench into the works - there are a
few extra things to do during initialization, most notably:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc;">
<li class="listitem"><p>Examine the OpenACS file tree for files that should not be
present in OpenACS (i.e., that were once part of the OpenACS
distribution but have since been removed).</p></li><li class="listitem"><p>Scan the <code class="computeroutput">/packages</code> directory
for new packages.</p></li><li class="listitem"><p>Initialize enabled packages by sourcing their <code class="computeroutput">*-procs.tcl</code> and <code class="computeroutput">*-init.tcl</code> files.</p></li>
</ul></div><p>This document examines in detail each of the steps involved in
AOLserver/OpenACS startup.</p>
</div><div class="sect2">
<div class="titlepage"><div><div><h3 class="title">
<a name="bootstrap-acs-startup-process" id="bootstrap-acs-startup-process"></a>The Startup Process</h3></div></div></div><p>As soon as the <code class="computeroutput">nsd</code> daemon is
executed by the <code class="computeroutput">init</code> process
(or otherwise), AOLserver reads its configuration file and
<code class="computeroutput">chroot</code>s itself if necessary. It
then loads shared libraries indicated in the <code class="computeroutput">.ini</code> file (e.g., the Oracle driver and
<code class="computeroutput">nssock</code>), and sources Tcl module
files (generally in <code class="computeroutput">/home/aol30/modules/tcl</code>). This step is, and
has always been, the same for all AOLservers, regardless of whether
they are running OpenACS.</p><p>Next AOLserver sources, in lexicographical order, each file in
the <code class="computeroutput">/tcl</code> directory. The first
such file is <code class="computeroutput">0-acs-init.tcl</code>,
which doesn't do much directly except to determine the OpenACS path
root (e.g., <code class="computeroutput">/var/lib/aolserver/</code><span class="emphasis"><em><code class="computeroutput">yourservername</code></em></span>) by trimming the
final component from the path to the Tcl library directory
(<code class="computeroutput">/var/lib/aolserver/</code><span class="emphasis"><em><code class="computeroutput">yourservername</code></em></span><code class="computeroutput">/tcl</code>).
But <code class="computeroutput">0-acs-init.tcl</code>'s has an
important function, namely sourcing <code class="computeroutput">/packages/acs-core/bootstrap.tcl</code>, which
does the following:</p><div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem"><p>
<span class="strong"><strong>Initialize some NSVs used by the
core</strong></span>. These NSVs are documented in <code class="computeroutput">/packages/acs-core/apm-procs.tcl</code> - no need
to worry about them unless you're an OpenACS core hacker.</p></li><li class="listitem"><p>
<span class="strong"><strong>Verify the deletion of obsolete
OpenACS files</strong></span>. The <code class="computeroutput">/tcl</code> directory has evolved quite a bit over
the months and years, and a few files have come and gone. The
<code class="computeroutput">/www/doc/removed-files.txt</code> file
contains a list of files which <span class="emphasis"><em>must be
deleted</em></span> from the AOLserver installation, at the risk of
causing weird conflicts, e.g., having several security filters
registered. <code class="computeroutput">bootstrap.tcl</code> scans
through this list, logging error messages to the log if any of
these files exist.</p></li><li class="listitem"><p>
<span class="strong"><strong>Source <code class="computeroutput">*-procs.tcl</code> files in the OpenACS
core</strong></span>. We source each file matching the <code class="computeroutput">*-procs.tcl</code> glob in the <code class="computeroutput">/packages/acs-kernel</code> directory, in
lexicographical order. These procedure are needed to perform any of
the following steps.</p></li><li class="listitem"><p>
<span class="strong"><strong>Ensure that the database is
available</strong></span> by grabbing and releasing a handle. If we
can't obtain a handle, we terminate initialization (since OpenACS
couldn't possibly start up the server without access to the
database).</p></li><li class="listitem"><p>
<span class="strong"><strong>Register any new packages in the
<code class="computeroutput">/packages</code>
directory</strong></span>. In each directory inside <code class="computeroutput">/packages</code>, we look for a <code class="computeroutput">.info</code> file; if we find a package that
hasn't yet been registered with the package manager (i.e., it's
been copied there manually), we insert information about it into
the database. (The first time OpenACS starts up, <span class="emphasis"><em>no</em></span> packages will have been registered in
the database yet, so this step will registers every single package
in the <code class="computeroutput">/packages</code> directory.)
Note that packages discovered here are initially disabled; they
must be manually enabled in the package manager before they can be
used.</p></li><li class="listitem"><p>
<span class="strong"><strong>Ensure that the <code class="computeroutput">acs-kernel</code> package is
enabled</strong></span>. If the OpenACS core isn't initialized, the
server couldn't possibly be operational, so if there's no enabled
version of the OpenACS core we simply mark the latest installed one
as enabled.</p></li><li class="listitem"><p>
<span class="strong"><strong>Load <code class="computeroutput">*-procs.tcl</code> files for enabled
packages</strong></span>, activating their APIs.</p></li><li class="listitem"><p>
<span class="strong"><strong>Load <code class="computeroutput">*-init.tcl</code> files for enabled
packages</strong></span>, giving packages a chance to register
filters and procedures, initialize data structures, etc.</p></li><li class="listitem"><p>
<span class="strong"><strong>Verify that the core has been
properly initialized</strong></span> by checking for the existence
of an NSV created by the request processor initialization code. If
it's not present, the server won't be operational, so we log an
error.</p></li>
</ol></div><p>At this point, <code class="computeroutput">bootstrap.tcl</code>
is done executing. AOLserver proceeds to source the remaining files
in the <code class="computeroutput">/tcl</code> directory (i.e.,
unpackaged libraries) and begins listening for connections.</p><div class="cvstag">($&zwnj;Id: bootstrap-acs.xml,v 1.7 2006/07/17
05:38:38 torbenb Exp $)</div>
</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="tcl-doc" leftLabel="Prev" leftTitle="Documenting Tcl Files: Page Contracts
and Libraries"
rightLink="ext-auth-requirements" rightLabel="Next" rightTitle="External Authentication
Requirements"
homeLink="index" homeLabel="Home"
upLink="kernel-doc" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Chapter 3. Complete
Installation}</property>
<property name="doc(title)">Chapter 3. Complete
Installation</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="individual-programs" leftLabel="Prev"
title="
Part II. Administrator's Guide"
rightLink="unix-installation" rightLabel="Next">
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
<a name="complete-install" id="complete-install"></a>Chapter 3. Complete
Installation</h2></div></div></div><div class="toc">
<p><b>Table of Contents</b></p><dl class="toc">
<dt><span class="sect1"><a href="unix-installation">Install a
Unix-like system and supporting software</a></span></dt><dt><span class="sect1"><a href="oracle">Install Oracle
8.1.7</a></span></dt><dt><span class="sect1"><a href="postgres">Install
PostgreSQL</a></span></dt><dt><span class="sect1"><a href="aolserver4">Install AOLserver
4</a></span></dt><dt><span class="sect1"><a href="openacs">Install OpenACS
5.7.0</a></span></dt><dt><span class="sect1"><a href="win2k-installation">OpenACS
Installation Guide for Windows2000</a></span></dt><dt><span class="sect1"><a href="mac-installation">OpenACS
Installation Guide for Mac OS X</a></span></dt>
</dl>
</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="individual-programs" leftLabel="Prev" leftTitle="Prerequisite Software"
rightLink="unix-installation" rightLabel="Next" rightTitle="Install a Unix-like system and
supporting software"
homeLink="index" homeLabel="Home"
upLink="acs-admin" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Configuring an OpenACS package}</property>
<property name="doc(title)">Configuring an OpenACS package</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="configuring-mounting-packages" leftLabel="Prev"
title="
Chapter 4. Configuring a new OpenACS
Site"
rightLink="configuring-configuring-permissions" rightLabel="Next">
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="configuring-configuring-packages" id="configuring-configuring-packages"></a>Configuring an OpenACS
package</h2></div></div></div><div class="authorblurb">
<p>by <a class="ulink" href="mailto:jade\@rubick.com" target="_top">Jade Rubick</a>
</p>
OpenACS docs are written by the named authors, and may be edited by
OpenACS documentation staff.</div><div class="sect2">
<div class="titlepage"><div><div><h3 class="title">
<a name="idp140400237553440" id="idp140400237553440"></a>Configuring an OpenACS package</h3></div></div></div><p>After you've installed and mounted your package, you can
configure each instance to act as you would like.</p><p>This is done from the Applications page. Log in, go to the Admin
or Control Panel, click on the subsite the application is in, and
click on Applications. If you click on the 'Parameters' link, you
will see a list of parameters that you can change for this
application.</p>
</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="configuring-mounting-packages" leftLabel="Prev" leftTitle="Mounting OpenACS packages"
rightLink="configuring-configuring-permissions" rightLabel="Next" rightTitle="Setting Permissions on an OpenACS
package"
homeLink="index" homeLabel="Home"
upLink="configuring-new-site" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Setting Permissions on an OpenACS package}</property>
<property name="doc(title)">Setting Permissions on an OpenACS package</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="configuring-configuring-packages" leftLabel="Prev"
title="
Chapter 4. Configuring a new OpenACS
Site"
rightLink="how-do-I" rightLabel="Next">
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="configuring-configuring-permissions" id="configuring-configuring-permissions"></a>Setting Permissions on an
OpenACS package</h2></div></div></div><div class="authorblurb">
<p>by <a class="ulink" href="mailto:jade\@rubick.com" target="_top">Jade Rubick</a>
</p>
OpenACS docs are written by the named authors, and may be edited by
OpenACS documentation staff.</div><div class="sect2">
<div class="titlepage"><div><div><h3 class="title">
<a name="idp140400236096832" id="idp140400236096832"></a>Setting Permission on an OpenACS
package</h3></div></div></div><p>After you've installed and mounted your package, you can
configure each instance to act as you would like.</p><p>This is done from the Applications page. Log in, go to the Admin
or Control Panel, click on the subsite the application is in, and
click on Applications. If you click on the 'Permissions' link, you
will see and be able to set the permissions for that
application.</p><p>Each application may have different behavior for what Read
Create Write and Admin permissions mean, but generally the
permissions are straightforward. If you find the behavior is not
what you expect after setting permissions, you can post a bug in
the OpenACS bugtracker.</p><p>'The Public' refers to users to the website who are not logged
in. 'Registered Users' are people who have registered for the
site.</p>
</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="configuring-configuring-packages" leftLabel="Prev" leftTitle="Configuring an OpenACS package"
rightLink="how-do-I" rightLabel="Next" rightTitle="How Do I?"
homeLink="index" homeLabel="Home"
upLink="configuring-new-site" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Installing OpenACS packages}</property>
<property name="doc(title)">Installing OpenACS packages</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="configuring-new-site" leftLabel="Prev"
title="
Chapter 4. Configuring a new OpenACS
Site"
rightLink="configuring-mounting-packages" rightLabel="Next">
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="configuring-install-packages" id="configuring-install-packages"></a>Installing OpenACS packages</h2></div></div></div><div class="authorblurb">
<p>by <a class="ulink" href="mailto:jade\@rubick.com" target="_top">Jade Rubick</a>
</p>
OpenACS docs are written by the named authors, and may be edited by
OpenACS documentation staff.</div><div class="sect2">
<div class="titlepage"><div><div><h3 class="title">
<a name="idp140400236636944" id="idp140400236636944"></a>Installing OpenACS packages</h3></div></div></div><p>An OpenACS package extends your website and lets it do things it
wasn't able to do before. You can have a weblog, a forums, a
calendar, or even do sophisticated project-management via your
website.</p><p>After you've installed OpenACS, you can congratulate yourself
for a job well done. Then, you'll probably want to install a couple
of packages.</p><p>To install packages, you have to be an administrator on the
OpenACS webserver. Log in, and you'll see a link to Admin or the
Control Panel. Click on that, then click on 'Install software'.
Packages are sometimes also referred to as applications or
software.</p><p>At this point, you'll need to determine whether or not you're
able to install from the repository, or whether you should install
from local files.</p><p>Basically, if you have a local CVS repository, or have custom
code, you need to install from 'Local Files'. Otherwise, you can
install from the OpenACS repository</p><p>If you want to install new packages, click on 'Install from
Repository' or 'Install from Local'. Select the package, and click
'Install checked applications'. The system will check to make sure
you have all necessary packages that the package you want depends
on. If you're installing from Local Files, and you are missing any
packages, you may have to add the packages your desired package
depends on: <a class="xref" href="upgrade-openacs-files" title="Upgrading the OpenACS files">the section called
&ldquo;Upgrading the OpenACS
files&rdquo;</a>
</p><p>If you run into any errors at all, check your
/var/lib/aolserver/$OPENACS_SERVICE_NAME/log/error.log file, and
post your error on the OpenACS forums</p><p>Once the package has been installed, then you will need to
'mount' the package. The next section handles that.</p>
</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="configuring-new-site" leftLabel="Prev" leftTitle="
Chapter 4. Configuring a new OpenACS
Site"
rightLink="configuring-mounting-packages" rightLabel="Next" rightTitle="Mounting OpenACS packages"
homeLink="index" homeLabel="Home"
upLink="configuring-new-site" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Mounting OpenACS packages}</property>
<property name="doc(title)">Mounting OpenACS packages</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="configuring-install-packages" leftLabel="Prev"
title="
Chapter 4. Configuring a new OpenACS
Site"
rightLink="configuring-configuring-packages" rightLabel="Next">
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="configuring-mounting-packages" id="configuring-mounting-packages"></a>Mounting OpenACS packages</h2></div></div></div><div class="authorblurb">
<p>by <a class="ulink" href="mailto:jade\@rubick.com" target="_top">Jade Rubick</a>
</p>
OpenACS docs are written by the named authors, and may be edited by
OpenACS documentation staff.</div><div class="sect2">
<div class="titlepage"><div><div><h3 class="title">
<a name="idp140400236054144" id="idp140400236054144"></a>Mounting OpenACS packages</h3></div></div></div><p>After you've installed your packages, you have to 'mount' them
in order to make them appear on your website.</p><p>Make sure you are logged in, and then click on the 'Admin' or
'Control Panel' link to get to the Site-Wide Administration page
(at /acs-admin). Click on the subsite you'd like the application to
be available at.</p><p>Subsites are a way of dividing your website into logical chunks.
Often they represent different groups of users, or parts of an
organization.</p><p>Now click on 'Applications' (applications are the same thing as
packages). You'll see a list of Applications and the URLs that each
is located at. To mount a new application, you click on 'Add
application', enter the Application, title (application name), and
URL (URL folder name), and you're done.</p><p>Test it out now. The URL is based on a combination of the
subsite URL and the application URL. So if you installed a package
in the Main Subsite at the URL calendar, it will be available at
http://www.yoursite.com/calendar. If you installed it at a subsite
that has a URL intranet, then it would be located at
http://www.yoursite.com/intranet/calendar.</p>
</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="configuring-install-packages" leftLabel="Prev" leftTitle="Installing OpenACS packages"
rightLink="configuring-configuring-packages" rightLabel="Next" rightTitle="Configuring an OpenACS package"
homeLink="index" homeLabel="Home"
upLink="configuring-new-site" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Chapter 4. Configuring a new OpenACS
Site}</property>
<property name="doc(title)">Chapter 4. Configuring a new OpenACS
Site</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="mac-installation" leftLabel="Prev"
title="
Part II. Administrator's Guide"
rightLink="configuring-install-packages" rightLabel="Next">
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
<a name="configuring-new-site" id="configuring-new-site"></a>Chapter 4. Configuring
a new OpenACS Site</h2></div></div></div><div class="toc">
<p><b>Table of Contents</b></p><dl class="toc">
<dt><span class="sect1"><a href="configuring-install-packages">Installing OpenACS
packages</a></span></dt><dt><span class="sect1"><a href="configuring-mounting-packages">Mounting OpenACS
packages</a></span></dt><dt><span class="sect1"><a href="configuring-configuring-packages">Configuring an OpenACS
package</a></span></dt><dt><span class="sect1"><a href="configuring-configuring-permissions">Setting Permissions on
an OpenACS package</a></span></dt><dt><span class="sect1"><a href="how-do-I">How Do
I?</a></span></dt>
</dl>
</div><div class="authorblurb">
<p>by <a class="ulink" href="mailto:joel\@aufrecht.org" target="_top">Joel Aufrecht</a>
</p>
OpenACS docs are written by the named authors, and may be edited by
OpenACS documentation staff.</div><p>In this chapter, <span class="strong"><strong>Configuring</strong></span> 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.
<span class="strong"><strong>Customizing</strong></span> refers to
changes that touch the file system, and require some planning if
easy upgradability is to be maintained.</p>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="mac-installation" leftLabel="Prev" leftTitle="OpenACS Installation Guide for Mac OS
X"
rightLink="configuring-install-packages" rightLabel="Next" rightTitle="Installing OpenACS packages"
homeLink="index" homeLabel="Home"
upLink="acs-admin" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Appendix C. Credits}</property>
<property name="doc(title)">Appendix C. Credits</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="aolserver" leftLabel="Prev"
title="
Part II. Administrator's Guide"
rightLink="install-origins" rightLabel="Next">
<div class="appendix">
<div class="titlepage"><div><div><h2 class="title">
<a name="credits" id="credits"></a>Appendix C. Credits</h2></div></div></div><div class="toc">
<p><b>Table of Contents</b></p><dl class="toc">
<dt><span class="section"><a href="install-origins">Where did
this document come from?</a></span></dt><dt><span class="section"><a href="os-install">Linux Install
Guides</a></span></dt><dt><span class="section"><a href="os-security">Security
Information</a></span></dt><dt><span class="section"><a href="install-resources">Resources</a></span></dt>
</dl>
</div><div class="authorblurb">
<p>By <a class="ulink" href="mailto:vinod\@kurup.com" target="_top">Vinod Kurup</a>
</p>
OpenACS docs are written by the named authors, and may be edited by
OpenACS documentation staff.</div><p>
<a class="ulink" href="mailto:vinod\@kurup.com" target="_top">Vinod Kurup</a> put together the January 2002 version of
this guide from many sources of information.</p><p>
<a class="ulink" href="mailto:joel\@aufrecht.org" target="_top">Joel Aufrecht</a> updated the document starting in March
2003.</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc;">
<li class="listitem"><p><a class="ulink" href="http://openacs.org/doc/openacs/install/" target="_top">OpenACS 3.x Installation Guide</a></p></li><li class="listitem"><p><a class="ulink" href="http://www.orchardlabs.com/freebsd/" target="_top">Gilbert Wong's FreeBSD installation guide</a></p></li><li class="listitem"><p><a class="ulink" href="http://www.kurup.com/acs/openacs-4.html" target="_top">My own Brief OpenACS4 installation guide</a></p></li>
</ul></div><p>Acknowledgments for versions of the above documents go (in no
particular order) to Bryan Quinn, Adam Farkas, Brian Stein, Doug
Hoffman, Ravi Jasuja, Hiro Iwashima, Ryan Lee, Jonathan Goler,
Audrey Mcloghlin, Doug Harris, Zvi Boshernitzan, Michael Yoon,
Cesar Brea, Dennis Gregorovic, David Fullagar, Chris Spears, Kevin
Tupper, Michael Duffy, Simon Carstensen, Dave Bauer, Tracy Adams,
Greg Haverkamp, Philip Greenspun, Jin Choi, Sean Yamamoto, David
Cohen, Chris Rasch, Richard Li, Jon Griffin, Roberto Mello, Gilbert
Wong, Don Baccus, Ben Adida, Michael Cleverly, Janne Blonqvist,
Jonathan Ellis, Janine Sisk, Jade Rubick, Chris Hardy, Jonathan
Marsden, Vinod Kurup, Charles Hall, Tom Jackson and Karl
Lehenbauer.</p><p>Several people have helped with this document, including Torben
Brosten, Don Baccus, Roberto Mello, Talli Somekh, Dave Bauer, Jim
Lynch, Jon Griffin, Daryl Biberdorf, Bjorn Thor Jonsson, Jade
Rubick, Fred Yankowski, Dan Chak, Sebastiano Pilla, Reuven Lerner,
Malte Sussdorff, Stan Kaufman and Pascal Scheffers.</p><p>
<span class="strong"><strong>All questions and
comments</strong></span> regarding this guide should be posted on
the <a class="ulink" href="http://openacs.org/forums/" target="_top">OpenACS forums</a>.</p><div class="cvstag">($&zwnj;Id: credits.xml,v 1.12 2006/07/17 05:38:37
torbenb Exp $)</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="aolserver" leftLabel="Prev" leftTitle="Install AOLserver 3.3oacs1"
rightLink="install-origins" rightLabel="Next" rightTitle="Where did this document come
from?"
homeLink="index" homeLabel="Home"
upLink="acs-admin" upLabel="Up">
\ No newline at end of file
This diff is collapsed.
<property name="context">{/doc/acs-core-docs {Documentation}} {Appendix D. Using CVS with an
OpenACS Site}</property>
<property name="doc(title)">Appendix D. Using CVS with an
OpenACS Site</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="i18n-translators" leftLabel="Prev"
title="
Part III. For OpenACS Package
Developers"
rightLink="acs-plat-dev" rightLabel="Next">
<div class="appendix">
<div class="titlepage"><div><div><h2 class="title">
<a name="cvs-tips" id="cvs-tips"></a>Appendix D. Using CVS with
an OpenACS Site</h2></div></div></div><div class="authorblurb">
<p>By <a class="ulink" href="mailto:joel\@aufrecht.org" target="_top">Joel Aufrecht</a>
</p>
OpenACS docs are written by the named authors, and may be edited by
OpenACS documentation staff.</div><p>
<a name="cvs-service-import" id="cvs-service-import"></a><b>Add
the Service to CVS - OPTIONAL. </b><a class="indexterm" name="idp140400226929072" id="idp140400226929072"></a>These steps
take an existing OpenACS directory and add it to a <a class="link" href="install-cvs" title="Initialize CVS (OPTIONAL)">CVS
repository</a>.</p><div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
<p>Create and set permissions on a subdirectory in the local cvs
repository.</p><pre class="screen">
[root root]# <strong class="userinput"><code>mkdir /cvsroot/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
</code></strong>
[root root]#<strong class="userinput"><code> chown <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME.$OPENACS_SERVICE_NAME</span></span> /cvsroot/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
</code></strong>
[root root]#
<span class="action"><span class="action">mkdir /cvsroot/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
chown <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME.$OPENACS_SERVICE_NAME</span></span> /cvsroot/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
</span></span>
</pre>
</li><li class="listitem">
<p>Add the repository location to the user environment. On some
systems, you may get better results with .bash_profile instead of
.bashrc.</p><pre class="screen">
[root root]# <strong class="userinput"><code>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
</code></strong>
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$<strong class="userinput"><code> emacs .bashrc</code></strong>
</pre><p>Put this string into <code class="computeroutput">/home/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/.bashrc</code>:</p><pre class="programlisting">
export CVSROOT=/cvsroot
</pre><pre class="screen">
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>exit</code></strong>
logout
[root root]#
</pre>
</li><li class="listitem">
<p>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, <code class="computeroutput"><span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span></code> refers to
the cvs repository to use; it uses the CVSROOT plus this string,
i.e. <code class="computeroutput">/cvsroot/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
</code>. "OpenACS"
is the vendor tag, and "oacs-5-7-0-final" is the release tag. These
tags will be useful in upgrading and branching. -m sets the version
comment.</p><pre class="screen">
[root root]# <strong class="userinput"><code>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
</code></strong>
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
</code></strong>
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cvs import -m "initial install" <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> OpenACS oacs-5-7-0-final</code></strong>
N <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/license.txt
N <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/readme.txt
<span class="emphasis"><em>(many lines omitted)</em></span>
N <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/www/SYSTEM/flush-memoized-statement.tcl
No conflicts created by this import
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ exit
[root root]#
<span class="action"><span class="action">su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
cvs import -m "initial install" <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> OpenACS oacs-5-7-0-final
exit</span></span>
</pre><p>Move the original directory to a temporary location, and check
out the cvs repository in its place.</p><pre class="screen">
[root root]# <strong class="userinput"><code>mv /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> /var/tmp</code></strong>
[root root]# <strong class="userinput"><code>mkdir /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
</code></strong>
[root root]# <strong class="userinput"><code>chown <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>.<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
</code></strong>
[root root]# <strong class="userinput"><code>su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
</code></strong>
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ <strong class="userinput"><code>cd /var/lib/aolserver</code></strong>
[$OPENACS_SERVICE_NAME aolserver]$ <strong class="userinput"><code>cvs checkout <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
</code></strong>
cvs checkout: Updating <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
U <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/license.txt
<span class="emphasis"><em>(many lines omitted)</em></span>
U <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/www/SYSTEM/dbtest.tcl
U <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>/www/SYSTEM/flush-memoized-statement.tcl
[$OPENACS_SERVICE_NAME aolserver]$ <strong class="userinput"><code>exit</code></strong>
logout
[root root]#
<span class="action"><span class="action">mv /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> /var/tmp
mkdir /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
chown <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>.<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span> /var/lib/aolserver/<span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
su - <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
cd /var/lib/aolserver
cvs checkout <span class="replaceable"><span class="replaceable">$OPENACS_SERVICE_NAME</span></span>
exit</span></span>
</pre>
</li><li class="listitem"><p>If the service starts correctly, come back and remove the
temporary copy of the uploaded files.</p></li>
</ol></div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="i18n-translators" leftLabel="Prev" leftTitle="Translator's Guide"
rightLink="acs-plat-dev" rightLabel="Next" rightTitle="Part IV. For
OpenACS Platform Developers"
homeLink="index" homeLabel="Home"
upLink="acs-package-dev" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Chapter 7. Database
Management}</property>
<property name="doc(title)">Chapter 7. Database
Management</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="maint-performance" leftLabel="Prev"
title="
Part II. Administrator's Guide"
rightLink="remote-postgres" rightLabel="Next">
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
<a name="database-management" id="database-management"></a>Chapter 7. Database
Management</h2></div></div></div><div class="toc">
<p><b>Table of Contents</b></p><dl class="toc">
<dt><span class="sect1"><a href="remote-postgres">Running a
PostgreSQL database on another server</a></span></dt><dt><span class="sect1"><a href="install-openacs-delete-tablespace">Deleting a
tablespace</a></span></dt><dt><span class="sect1"><a href="install-next-nightly-vacuum">Vacuum Postgres
nightly</a></span></dt>
</dl>
</div><div class="authorblurb">
<p>By <a class="ulink" href="mailto:joel\@aufrecht.org" target="_top">Joel Aufrecht</a>
</p>
OpenACS docs are written by the named authors, and may be edited by
OpenACS documentation staff.</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="maint-performance" leftLabel="Prev" leftTitle="Diagnosing Performance Problems"
rightLink="remote-postgres" rightLabel="Next" rightTitle="Running a PostgreSQL database on
another server"
homeLink="index" homeLabel="Home"
upLink="acs-admin" upLabel="Up">
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
<property name="context">{/doc/acs-core-docs {Documentation}} {Chapter 11. Development
Reference}</property>
<property name="doc(title)">Chapter 11. Development
Reference</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="tutorial-future-topics" leftLabel="Prev"
title="
Part III. For OpenACS Package
Developers"
rightLink="packages" rightLabel="Next">
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
<a name="dev-guide" id="dev-guide"></a>Chapter 11. Development
Reference</h2></div></div></div><div class="toc">
<p><b>Table of Contents</b></p><dl class="toc">
<dt><span class="sect1"><a href="packages">OpenACS
Packages</a></span></dt><dt><span class="sect1"><a href="objects">OpenACS Data Models
and the Object System</a></span></dt><dt><span class="sect1"><a href="request-processor">The
Request Processor</a></span></dt><dt><span class="sect1"><a href="db-api">The OpenACS Database
Access API</a></span></dt><dt><span class="sect1"><a href="templates">Using Templates in
OpenACS</a></span></dt><dt><span class="sect1"><a href="permissions">Groups, Context,
Permissions</a></span></dt><dt><span class="sect1"><a href="subsites">Writing OpenACS
Application Pages</a></span></dt><dt><span class="sect1"><a href="parties">Parties in
OpenACS</a></span></dt><dt><span class="sect1"><a href="permissions-tediously-explained">OpenACS Permissions
Tediously Explained</a></span></dt><dt><span class="sect1"><a href="object-identity">Object
Identity</a></span></dt><dt><span class="sect1"><a href="programming-with-aolserver">Programming with
AOLserver</a></span></dt><dt><span class="sect1"><a href="form-builder">Using Form
Builder: building html forms dynamically</a></span></dt>
</dl>
</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="tutorial-future-topics" leftLabel="Prev" leftTitle="Future Topics"
rightLink="packages" rightLabel="Next" rightTitle="OpenACS Packages"
homeLink="index" homeLabel="Home"
upLink="acs-package-dev" upLabel="Up">
\ No newline at end of file
<property name="context">{/doc/acs-core-docs {Documentation}} {Chapter 13. Documentation
Standards}</property>
<property name="doc(title)">Chapter 13. Documentation
Standards</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="automated-testing-best-practices" leftLabel="Prev"
title="
Part III. For OpenACS Package
Developers"
rightLink="docbook-primer" rightLabel="Next">
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
<a name="doc-standards" id="doc-standards"></a>Chapter 13. Documentation
Standards</h2></div></div></div><div class="toc">
<p><b>Table of Contents</b></p><dl class="toc">
<dt><span class="sect1"><a href="docbook-primer">OpenACS
Documentation Guide</a></span></dt><dt><span class="sect1"><a href="psgml-mode">Using PSGML mode
in Emacs</a></span></dt><dt><span class="sect1"><a href="nxml-mode">Using nXML mode in
Emacs</a></span></dt><dt><span class="sect1"><a href="filename">Detailed Design
Documentation Template</a></span></dt><dt><span class="sect1"><a href="requirements-template">System/Application Requirements
Template</a></span></dt>
</dl>
</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="automated-testing-best-practices" leftLabel="Prev" leftTitle="Automated Testing"
rightLink="docbook-primer" rightLabel="Next" rightTitle="OpenACS Documentation Guide"
homeLink="index" homeLabel="Home"
upLink="acs-package-dev" upLabel="Up">
\ No newline at end of file
This diff is collapsed.
<property name="context">{/doc/acs-core-docs {Documentation}} {Constraint naming standard}</property>
<property name="doc(title)">Constraint naming standard</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="eng-standards-versioning" leftLabel="Prev"
title="
Chapter 12. Engineering Standards"
rightLink="eng-standards-filenaming" rightLabel="Next">
<div class="sect1">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="eng-standards-constraint-naming" id="eng-standards-constraint-naming"></a>Constraint naming
standard</h2></div></div></div><div class="authorblurb">
<p>By Michael Bryzek</p>
OpenACS docs are written by the named authors, and may be edited by
OpenACS documentation staff.</div><div class="sect2">
<div class="titlepage"><div><div><h3 class="title">
<a name="eng-standards-constraint-naming-big-picture" id="eng-standards-constraint-naming-big-picture"></a>The Big
Picture</h3></div></div></div><p>Constraint naming standard is important for one reason: The
SYS_* name oracle assigns to unnamed constraints is not very
understandable. By correctly naming all contraints, we can quickly
associate a particular constraint with our data model. This gives
us two real advantages:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc;">
<li class="listitem"><p>We can quickly identify and fix any errors.</p></li><li class="listitem"><p>We can reliabily modify or drop constraints</p></li>
</ul></div><div>Why do we need a naming convention?</div><p>
<a class="ulink" href="http://oradoc.photo.net/ora8doc/DOC/server803/A54647_01/ch2.htm#2956" target="_top">Oracle limits names</a>, in general, to 30
characters, which is hardly enough for a human readable constraint
name.</p>
</div><div class="sect2">
<div class="titlepage"><div><div><h3 class="title">
<a name="eng-standards-constraint-naming-abbr" id="eng-standards-constraint-naming-abbr"></a>Abbreviations</h3></div></div></div><p>We propose the following naming convention for all constraints,
with the following abbreviations taken from Oracle Docs at
<a class="ulink" href="http://oradoc.photo.net/ora81/DOC/server.815/a67779/ch4e.htm#8953" target="_top">http://oradoc.photo.net/ora81/DOC/server.815/a67779/ch4e.htm#8953</a>.
Note that we shortened all of the constraint abbrevations to two
characters to save room.</p><div class="informaltable"><table cellspacing="0" border="1">
<colgroup>
<col><col>
</colgroup><thead><tr>
<th>Constraint type</th><th>Abbreviation</th>
</tr></thead><tbody>
<tr>
<td>references (foreign key)</td><td>fk</td>
</tr><tr>
<td>unique</td><td>un</td>
</tr><tr>
<td>primary key</td><td>pk</td>
</tr><tr>
<td>check</td><td>ck</td>
</tr><tr>
<td>not null</td><td>nn</td>
</tr>
</tbody>
</table></div>
</div><div class="sect2">
<div class="titlepage"><div><div><h3 class="title">
<a name="eng-standards-constraint-naming-format" id="eng-standards-constraint-naming-format"></a>Format of
constraint name</h3></div></div></div><p>&lt;table name&gt;_&lt;column_name&gt;_&lt;constraint
abbreviation&gt;</p><p>In reality, this won't be possible because of the character
limitation on names inside oracle. When the name is too long, we
will follow these two steps in order:</p><div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem"><p>Abbreviate the table name with the table's initials (e.g. users
-&gt; u and users_contact -&gt; uc).</p></li><li class="listitem"><p>Truncate the column name until it fits.</p></li>
</ol></div><p>If the constraint name is still too long, you should consider
rewriting your entire data model :)</p><p><span class="strong"><strong>Notes:</strong></span></p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc;">
<li class="listitem"><p>If you have to abbreviate the table name for one of the
constraints, abbreviate it for all the constraints</p></li><li class="listitem"><p>If you are defining a multi column constraint, try to truncate
the two column names evenly</p></li>
</ul></div>
</div><div class="sect2">
<div class="titlepage"><div><div><h3 class="title">
<a name="eng-standards-constraint-naming-example" id="eng-standards-constraint-naming-example"></a>Example</h3></div></div></div><pre class="programlisting">
create table example_topics (
topic_id integer
constraint example_topics_topic_id_pk
primary key
);
create table constraint_naming_example (
example_id integer
constraint cne_example_id_pk
primary key,
one_line_description varchar(100)
constraint cne_one_line_desc_nn
not null,
body clob,
up_to_date_p char(1) default('t')
constraint cne_up_to_date_p_check
check(up_to_date_p in ('t','f')),
topic_id constraint cne_topic_id_nn not null
constraint cne_topic_id_fk references example_topics,
-- Define table level constraint
constraint cne_example_id_one_line_unq unique(example_id, one_line_description)
);
</pre>
</div><div class="sect2">
<div class="titlepage"><div><div><h3 class="title">
<a name="eng-standards-constraint-naming-pk" id="eng-standards-constraint-naming-pk"></a>Why it's good to name
primary keys</h3></div></div></div><p>Naming primary keys might not have any obvious advantages.
However, here's an example where naming the primary key really
helps (and this is by no means a rare case!</p><pre class="programlisting">
SQL&gt; set autotrace traceonly explain;
SQL&gt; select * from constraint_naming_example, example_topics
where constraint_naming_example.topic_id = example_topics.topic_id;
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT Optimizer=CHOOSE
1 0 NESTED LOOPS
2 1 TABLE ACCESS (FULL) OF 'CONSTRAINT_NAMING_EXAMPLE'
3 1 INDEX (UNIQUE SCAN) OF 'EXAMPLE_TOPICS_TOPIC_ID_PK' (UNI
QUE)
</pre><p>Isn't it nice to see "EXAMPLE_TOPICS_TOPIC_ID_PK" in the trace
and know exactly which table oracle is using at each step?</p>
</div><div class="sect2">
<div class="titlepage"><div><div><h3 class="title">
<a name="eng-standards-constraint-naming-nn" id="eng-standards-constraint-naming-nn"></a>Naming not null
constraints is optional...</h3></div></div></div><p>People disagree on whether or not we should be naming not null
constraints. So, if you want to name them, please do so and follow
the above naming standard. But, naming not null constraints is not
a requirement.</p><div>About Naming the not null constraints</div><p>Though naming "not null" constraints doesn't help immeditately
in error debugging (e.g. the error will say something like "Cannot
insert null value into column"), we recommend naming not null
constraints to be consistent in our naming of all constraints.</p><div class="cvstag">($&zwnj;Id: constraint-naming.xml,v 1.6 2006/07/17
05:38:37 torbenb Exp $)</div>
</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="eng-standards-versioning" leftLabel="Prev" leftTitle="Release Version Numbering"
rightLink="eng-standards-filenaming" rightLabel="Next" rightTitle="ACS File Naming and Formatting
Standards"
homeLink="index" homeLabel="Home"
upLink="eng-standards" upLabel="Up">
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<property name="context">{/doc/acs-core-docs {Documentation}} {Chapter 12. Engineering
Standards}</property>
<property name="doc(title)">Chapter 12. Engineering
Standards</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="form-builder" leftLabel="Prev"
title="
Part III. For OpenACS Package
Developers"
rightLink="style-guide" rightLabel="Next">
<div class="chapter">
<div class="titlepage"><div><div><h2 class="title">
<a name="eng-standards" id="eng-standards"></a>Chapter 12. Engineering
Standards</h2></div></div></div><div class="toc">
<p><b>Table of Contents</b></p><dl class="toc">
<dt><span class="sect1"><a href="style-guide">OpenACS Style
Guide</a></span></dt><dt><span class="sect1"><a href="cvs-guidelines">CVS
Guidelines</a></span></dt><dt><span class="sect1"><a href="eng-standards-versioning">Release Version
Numbering</a></span></dt><dt><span class="sect1"><a href="eng-standards-constraint-naming">Constraint naming
standard</a></span></dt><dt><span class="sect1"><a href="eng-standards-filenaming">ACS
File Naming and Formatting Standards</a></span></dt><dt><span class="sect1"><a href="eng-standards-plsql">PL/SQL
Standards</a></span></dt><dt><span class="sect1"><a href="variables">Variables</a></span></dt><dt><span class="sect1"><a href="automated-testing-best-practices">Automated
Testing</a></span></dt>
</dl>
</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="form-builder" leftLabel="Prev" leftTitle="Using Form Builder: building html
forms dynamically"
rightLink="style-guide" rightLabel="Next" rightTitle="OpenACS Style Guide"
homeLink="index" homeLabel="Home"
upLink="acs-package-dev" upLabel="Up">
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
<property name="context">{/doc/acs-core-docs {Documentation}} {ACS Installation: Welcome}</property>
<property name="doc(title)">ACS Installation: Welcome</property>
<master>
<h2>ACS Installation: Welcome</h2>
Thank you for installing the ArsDigita Community System, a suite of
fully-integrated enterprise-class applications for supporting
<i>purposeful</i>
online communities. This is the ACS Installer
which performs all the steps necessary to get the ArsDigita
Community System running on your server.
<p>Your Oracle driver is correctly installed and configured.</p>
<p>The next step is to install the ACS kernel data model. Click the
<i>Next</i> button to proceed.</p>
<form action="install-data-model" method="get">
<center><input type="submit" value="Next -&gt;"></center><hr><a href="mailto:acs\@arsdigita.com"></a><address>acs\@arsdigita.com</address>
</form>
This diff is collapsed.
<property name="context">{/doc/acs-core-docs {Documentation}} {OpenACS Installation: Welcome}</property>
<property name="doc(title)">OpenACS Installation: Welcome</property>
<master>
<h2>OpenACS Installation: Welcome</h2>
Thank you for installing the OpenACS Community System, a suite of
fully-integrated enterprise-class solutions for collaborative
commerce. This is the OpenACS Installer which performs all the
steps necessary to get the OpenACS Community System running on your
server.
<p>Please read the <a href="/doc/release-notes">Release
Notes</a> before proceeding to better understand what is contained
in this release.</p>
<p>Your database driver is correctly installed and configured.</p>
<p>The next step is to install the OpenACS kernel data model. Click
the <i>Next</i> button to proceed.</p>
<form action="install-data-model" method="get">
<center><input type="submit" value="Next -&gt;"></center><hr><a href="mailto:gatekeepers\@openacs.org"></a><address>gatekeepers\@openacs.org</address>
</form>
<property name="context">{/doc/acs-core-docs {Documentation}} {Part I. OpenACS For Everyone}</property>
<property name="doc(title)">Part I. OpenACS For Everyone</property>
<master>
<include src="/packages/acs-core-docs/lib/navheader"
leftLink="index" leftLabel="Prev"
title=""
rightLink="general-documents" rightLabel="Next">
<div class="part">
<div class="titlepage"><div><div><h1 class="title">
<a name="for-everyone" id="for-everyone"></a>Part I. OpenACS For
Everyone</h1></div></div></div><div class="toc">
<p><b>Table of Contents</b></p><dl class="toc">
<dt><span class="chapter"><a href="general-documents">1. High
level information: What is OpenACS?</a></span></dt><dd><dl>
<dt><span class="sect1"><a href="openacs-overview">Overview</a></span></dt><dt><span class="sect1"><a href="release-notes">OpenACS
Release Notes</a></span></dt>
</dl></dd>
</dl>
</div>
</div>
<include src="/packages/acs-core-docs/lib/navfooter"
leftLink="index" leftLabel="Prev" leftTitle="OpenACS Core Documentation"
rightLink="general-documents" rightLabel="Next" rightTitle="
Chapter 1. High level information: What is
OpenACS?"
homeLink="index" homeLabel="Home"
upLink="index" upLabel="Up">
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment