Index: openacs-4/etc/install/checkout.sh =================================================================== RCS file: /usr/local/cvsroot/openacs-4/etc/install/checkout.sh,v diff -u -r1.11 -r1.12 --- openacs-4/etc/install/checkout.sh 4 Nov 2003 15:36:17 -0000 1.11 +++ openacs-4/etc/install/checkout.sh 5 Nov 2003 11:50:36 -0000 1.12 @@ -14,7 +14,7 @@ # @author Peter Marklund (peter@collaboraid.biz) set -e -set -x +#set -x export CVS_RSH=ssh script_path=$(dirname $(which $0)) Index: openacs-4/etc/install/install.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/etc/install/install.tcl,v diff -u -r1.7 -r1.8 --- openacs-4/etc/install/install.tcl 5 Nov 2003 11:20:50 -0000 1.7 +++ openacs-4/etc/install/install.tcl 5 Nov 2003 11:50:36 -0000 1.8 @@ -16,7 +16,7 @@ # Server root directory. This is where all of the files for your server # will live. -set serverroot "/web/${server}" +set serverroot "/var/lib/aolserver/${server}" #--------------------------------------------------------------------- # The host name (DNS) the server will be listening on @@ -40,12 +40,12 @@ # OS user and group that AOLserver runs as. We recommend that you # create a new user for your server. # If you do not want to do that, change the user name below -set aolserver_user "nsadmin" +set aolserver_user ${server} set aolserver_group "web" #--------------------------------------------------------------------- # OpenACS configuration -set admin_email "admin@yourserver.test" +set admin_email "admin@${serverhost}" set admin_username "admin" set admin_first_names "Admin" set admin_last_name "User" Index: openacs-4/packages/acs-core-docs/www/acs-admin.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/acs-admin.html,v diff -u -r1.16 -r1.17 --- openacs-4/packages/acs-core-docs/www/acs-admin.html 31 Oct 2003 10:54:19 -0000 1.16 +++ openacs-4/packages/acs-core-docs/www/acs-admin.html 5 Nov 2003 11:48:09 -0000 1.17 @@ -1 +1 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Part�II.�Administrator's Guide</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="index.html" title="OpenACS Core Documentation"><link rel="previous" href="release-notes.html" title="OpenACS Release Notes"><link rel="next" href="install-overview.html" title="Chapter�2.�Installation Overview"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="release-notes.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="install-overview.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="acs-admin"></a>Administrator's Guide</h1></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>2. <a href="install-overview.html">Installation Overview</a></dt><dd><dl><dt><a href="individual-programs.html">Prerequisite Software</a></dt></dl></dd><dt>3. <a href="complete-install.html">Complete Installation</a></dt><dd><dl><dt><a href="unix-installation.html">Install Unix-like system and supporting software</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostGreSQL</a></dt><dt><a href="aolserver.html">Install AOLserver 3.3oacs1</a></dt><dt><a href="openacs.html">Install OpenACS 5.0.0a4</a></dt><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt><dt><a href="mac-installation.html">OpenACS Installation Guide for Mac OS X</a></dt></dl></dd><dt>4. <a href="configure.html">Configuring a New Service</a></dt><dt>5. <a href="upgrade.html">Upgrading</a></dt><dd><dl><dt><a href="upgrade-detail.html">Support for upgrades.</a></dt></dl></dd><dt>6. <a href="maintenance.html">Maintenance</a></dt><dd><dl><dt><a href="maintenance-web.html">Hosting Web Sites</a></dt><dt><a href="database-management.html">Database Management</a></dt><dt><a href="backup-recovery.html">Backup and Recovery</a></dt></dl></dd><dt>A. <a href="install-redhat.html">Install Red Hat 8.0</a></dt><dt>B. <a href="install-more-software.html">Install additional supporting software</a></dt><dd><dl><dt><a href="openacs-unpack.html">Unpack the OpenACS tarball</a></dt><dt><a href="install-cvs.html">Initialize CVS (OPTIONAL)</a></dt><dt><a href="psgml-for-emacs.html">Add PSGML commands to emacs init file (OPTIONAL)</a></dt><dt><a href="install-daemontools.html">Install Daemontools (OPTIONAL)</a></dt><dt><a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt><dt><a href="analog-install.html">Install Analog web file analyzer</a></dt><dt><a href="install-nspam.html">Install nspam</a></dt><dt><a href="install-full-text-search.html">Install Full Text Search</a></dt><dt><a href="install-nsopenssl.html">Install nsopenssl</a></dt></dl></dd><dt>C. <a href="credits.html">Credits</a></dt><dd><dl><dt><a href="install-origins.html">Where did this document come from?</a></dt><dt><a href="os-install.html">Linux Install Guides</a></dt><dt><a href="os-security.html">Security Information</a></dt><dt><a href="install-resources.html">Resources</a></dt></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="release-notes.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-overview.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Release Notes </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> Chapter�2.�Installation Overview</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/acs-admin.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Part�II.�Administrator's Guide</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="index.html" title="OpenACS Core Documentation"><link rel="previous" href="release-notes.html" title="OpenACS Release Notes"><link rel="next" href="install-overview.html" title="Chapter�2.�Installation Overview"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="release-notes.html">Prev</a> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="install-overview.html">Next</a></td></tr></table><hr></div><div class="part" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="acs-admin"></a>Administrator's Guide</h1></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>2. <a href="install-overview.html">Installation Overview</a></dt><dd><dl><dt><a href="install-steps.html">Basic Steps</a></dt><dt><a href="individual-programs.html">Prerequisite Software</a></dt></dl></dd><dt>3. <a href="complete-install.html">Complete Installation</a></dt><dd><dl><dt><a href="unix-installation.html">Install Unix-like system and supporting software</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostGreSQL</a></dt><dt><a href="aolserver.html">Install AOLserver 3.3oacs1</a></dt><dt><a href="openacs.html">Install OpenACS 5.0.0a4</a></dt><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt><dt><a href="mac-installation.html">OpenACS Installation Guide for Mac OS X</a></dt></dl></dd><dt>4. <a href="configure.html">Configuring a New Service</a></dt><dt>5. <a href="upgrade.html">Upgrading</a></dt><dd><dl><dt><a href="upgrade-detail.html">Support for upgrades.</a></dt></dl></dd><dt>6. <a href="maintenance.html">Maintenance</a></dt><dd><dl><dt><a href="maintenance-web.html">Hosting Web Sites</a></dt><dt><a href="database-management.html">Database Management</a></dt><dt><a href="backup-recovery.html">Backup and Recovery</a></dt></dl></dd><dt>A. <a href="install-redhat.html">Install Red Hat 8/9</a></dt><dt>B. <a href="install-more-software.html">Install additional supporting software</a></dt><dd><dl><dt><a href="openacs-unpack.html">Unpack the OpenACS tarball</a></dt><dt><a href="install-cvs.html">Initialize CVS (OPTIONAL)</a></dt><dt><a href="psgml-for-emacs.html">Add PSGML commands to emacs init file (OPTIONAL)</a></dt><dt><a href="install-daemontools.html">Install Daemontools (OPTIONAL)</a></dt><dt><a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt><dt><a href="analog-install.html">Install Analog web file analyzer</a></dt><dt><a href="install-nspam.html">Install nspam</a></dt><dt><a href="install-full-text-search.html">Install Full Text Search</a></dt><dt><a href="install-nsopenssl.html">Install nsopenssl</a></dt><dt><a href="install-tclwebtest.html">Install tclwebtest.</a></dt></dl></dd><dt>C. <a href="credits.html">Credits</a></dt><dd><dl><dt><a href="install-origins.html">Where did this document come from?</a></dt><dt><a href="os-install.html">Linux Install Guides</a></dt><dt><a href="os-security.html">Security Information</a></dt><dt><a href="install-resources.html">Resources</a></dt></dl></dd></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="release-notes.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-overview.html">Next</a></td></tr><tr><td width="40%" align="left">OpenACS Release Notes </td><td width="20%" align="center"><a accesskey="u" href="index.html">Up</a></td><td width="40%" align="right"> Chapter�2.�Installation Overview</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/acs-admin.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/analog-install.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/analog-install.html,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/analog-install.html 28 Oct 2003 22:07:33 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/analog-install.html 5 Nov 2003 11:48:09 -0000 1.4 @@ -1,20 +1,20 @@ <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Install Analog web file analyzer</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix�B.�Install additional supporting software"><link rel="previous" href="install-qmail.html" title="Install qmail (OPTIONAL)"><link rel="next" href="install-nspam.html" title="Install nspam"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-qmail.html">Prev</a> </td><th width="60%" align="center">Appendix�B.�Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="install-nspam.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="analog-install"></a>Install Analog web file analyzer</h2></div></div><div></div></div><p>Download the Analog <a href="individual-programs.html#analog-download">source tarball</a> in <tt class="computeroutput">/tmp</tt>. Unpack, compile, and install analog.</p><pre class="screen">[root@yourserver aolserver]# <b class="userinput"><tt>cd /usr/local/src</tt></b> -[root@yourserver src]# <b class="userinput"><tt>tar xzf /tmp/analog-5.31.tar.gz</tt></b> -[root@yourserver src]# <b class="userinput"><tt>cd analog-5.31</tt></b> -[root@yourserver analog-5.31]# <b class="userinput"><tt>make</tt></b> +[root@yourserver src]# <b class="userinput"><tt>tar xzf /tmp/analog-5.32.tar.gz</tt></b> +[root@yourserver src]# <b class="userinput"><tt>cd analog-5.32</tt></b> +[root@yourserver analog-5.32]# <b class="userinput"><tt>make</tt></b> cd src && make -make[1]: Entering directory `/usr/local/src/analog-5.31/src' +make[1]: Entering directory `/usr/local/src/analog-5.32/src' <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.31/src' -[root@yourserver analog-5.31]# <b class="userinput"><tt>cd ..</tt></b> -[root@yourserver src]#<b class="userinput"><tt> mv analog-5.31 /usr/share/</tt></b> +make[1]: Leaving directory `/usr/local/src/analog-5.32/src' +[root@yourserver analog-5.32]# <b class="userinput"><tt>cd ..</tt></b> +[root@yourserver src]#<b class="userinput"><tt> mv analog-5.32 /usr/share/</tt></b> [root@yourserver src]# <pre class="action"><span class="action">cd /usr/local/src -tar xzf /tmp/analog-5.31.tar.gz -cd analog-5.31 +tar xzf /tmp/analog-5.32.tar.gz +cd analog-5.32 make cd .. -mv analog-5.31 /usr/share/</span></pre></pre><p>See also <a href="maintenance-web.html#analog-setup" title="Set up Log Analysis Reports - OPTIONAL">Section�, “Set up Log Analysis Reports - OPTIONAL”</a></p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-qmail.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-nspam.html">Next</a></td></tr><tr><td width="40%" align="left">Install qmail (OPTIONAL) </td><td width="20%" align="center"><a accesskey="u" href="install-more-software.html">Up</a></td><td width="40%" align="right"> Install nspam</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/analog-install.html#comments">View comments on this page at openacs.org</a></center></body></html> +mv analog-5.32 /usr/share/</span></pre></pre><p>See also <a href="maintenance-web.html#analog-setup" title="Set up Log Analysis Reports - OPTIONAL">Section�, “Set up Log Analysis Reports - OPTIONAL”</a></p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-qmail.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-nspam.html">Next</a></td></tr><tr><td width="40%" align="left">Install qmail (OPTIONAL) </td><td width="20%" align="center"><a accesskey="u" href="install-more-software.html">Up</a></td><td width="40%" align="right"> Install nspam</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/analog-install.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/aolserver.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/aolserver.html,v diff -u -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/aolserver.html 31 Oct 2003 15:57:34 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/aolserver.html 5 Nov 2003 11:48:09 -0000 1.20 @@ -2,14 +2,23 @@ by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </p></div><div class="orderedlist"><ol type="1"><li><a name="aolserver-tarball"></a><p><b>Unpack the Aolserver tarball.�</b>Download the <a href="individual-programs.html#source-aolserver">aolserver tarball</a> to <tt class="computeroutput">/tmp/aolserver3.3oacs1.tar.gz</tt>. As <tt class="computeroutput">root</tt>, untar - <tt class="computeroutput">aolserver3.3oacs1.tar.gz</tt> - into <tt class="computeroutput">/usr/local/src</tt>. - </p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>cd /usr/local/src</tt></b> -[root@yourserver src]# <b class="userinput"><tt>tar xzf /tmp/aolserver3.3oacs1.tar.gz</tt></b> + </p></div><div class="orderedlist"><ol type="1"><li><a name="aolserver-tarball"></a><p><b>Unpack the Aolserver tarball.�</b>Download the <a href="individual-programs.html#source-aolserver">aolserver tarball</a> and unpack it.</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>cd /usr/local/src</tt></b> +[root@yourserver src]# <b class="userinput"><tt>wget --passive http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz</tt></b> +--15:38:08-- http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz + => `aolserver3.3oacs1.tar.gz' +Resolving uptime.openacs.org... done. +Connecting to uptime.openacs.org[207.166.200.199]:80... connected. +HTTP request sent, awaiting response... 200 OK +Length: 3,858,074 [application/x-compressed] + +100%[====================================>] 3,858,074 66.56K/s ETA 00:00 + +15:39:05 (66.56 KB/s) - `aolserver3.3oacs1.tar.gz' saved [3858074/3858074] +[root@yourserver src]# <b class="userinput"><tt>tar xzf aolserver3.3oacs1.tar.gz</tt></b> [root@yourserver src]# <pre class="action"><span class="action">cd /usr/local/src -tar xzf /tmp/aolserver3.3oacs1.tar.gz</span></pre></pre></li><li><a name="install-aolserver-compile"></a><p><b>Compile AOLserver.�</b>Compile and install AOLserver. First, prepare the installation directory and the source code. The message about BUILD-MODULES can be ignored.</p><pre class="screen">root@yourserver root]# <b class="userinput"><tt>mkdir -p /usr/local/aolserver</tt></b> +wget --passive http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz +tar xzf aolserver3.3oacs1.tar.gz</span></pre></pre></li><li><a name="install-aolserver-compile"></a><p><b>Compile AOLserver.�</b>Compile and install AOLserver. First, prepare the installation directory and the source code. The message about BUILD-MODULES can be ignored.</p><pre class="screen">root@yourserver root]# <b class="userinput"><tt>mkdir -p /usr/local/aolserver</tt></b> [root@yourserver root]# <b class="userinput"><tt>cd /usr/local/src/aolserver</tt></b> [root@yourserver aolserver]# <b class="userinput"><tt>./conf-clean</tt></b> cat: BUILD-MODULES: No such file or directory @@ -78,16 +87,27 @@ <pre class="action"><span class="action">cd /usr/local/aolserver/bin cp /tmp/openacs-5.0.0a4/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres chmod 755 nsd-postgres</span></pre></pre></li></ul></div></li><li><a name="install-tdom"></a><p><b>Install tDOM.�</b>Download the <a href="individual-programs.html#source-tdom">tDOM - tarball</a> to - <tt class="computeroutput">/tmp/tDOM-0.7.7.tar.gz</tt>, - unpack it, adjust the configuration file to match our patched + tarball</a>, unpack it, adjust the configuration file to match our patched distribution of aolserver, and compile it.</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>cd /usr/local/src</tt></b> -[root@yourserver src]# <b class="userinput"><tt>tar xzf /tmp/tDOM-0.7.7.tar.gz</tt></b> -[root@yourserver src]# <b class="userinput"><tt>cd tDOM-0.7.7/unix</tt></b> +[root@yourserver src]# <b class="userinput"><tt>wget --passive http://www.tdom.org/tDOM-0.7.8.tar.gz</tt></b> +--16:40:58-- http://www.tdom.org/tDOM-0.7.8.tar.gz + => `tDOM-0.7.8.tar.gz' +Resolving www.tdom.org... done. +Connecting to www.tdom.org[212.14.81.4]:80... connected. +HTTP request sent, awaiting response... 200 OK +Length: 826,613 [application/x-compressed] + +100%[====================================>] 826,613 138.06K/s ETA 00:00 + +16:41:04 (138.06 KB/s) - `tDOM-0.7.8.tar.gz' saved [826613/826613] + +[root@yourserver src]# <b class="userinput"><tt>tar xzf tDOM-0.7.8.tar.gz</tt></b> +[root@yourserver src]# <b class="userinput"><tt>cd tDOM-0.7.8/unix</tt></b> [root@yourserver unix]# <pre class="action"><span class="action">cd /usr/local/src -tar xzf /tmp/tDOM-0.7.7.tar.gz -cd unix</span></pre> </pre><p>Edit the file CONFIG and change this section: +wget --passive http://www.tdom.org/tDOM-0.7.8.tar.gz +tar xzf tDOM-0.7.8.tar.gz +cd tDOM-0.7.8/unix</span></pre> </pre><p>Edit the file CONFIG and change this section: </p><pre class="programlisting"># ---------------------------------------------------- # aolsrc="/usr/src/aolserver-3.4" # ../configure --enable-threads --disable-tdomalloc \ @@ -112,10 +132,16 @@ <span class="emphasis"><em>(many lines omitted)</em></span> -Wl,-rpath,/usr/local/lib -o tcldomsh;\ fi -[root@yourserver unix]# <b class="userinput"><tt>cp libtdom0.7.7.so /usr/local/aolserver/bin/</tt></b> +[root@yourserver unix]# <b class="userinput"><tt>cp libtdom0.7.8.so /usr/local/aolserver/bin/</tt></b> +[root@yourserver unix]# <b class="userinput"><tt>cd /usr/local/aolserver/bin/</tt></b> +[root@yourserver bin]# <b class="userinput"><tt>ln -s libtdom0.7.8.so libtdom.so</tt></b> +[root@yourserver bin]# + <pre class="action"><span class="action">sh CONFIG make -cp libtdom0.7.7.so /usr/local/aolserver/bin/</span></pre></pre><p> +cp libtdom0.7.8.so /usr/local/aolserver/bin/ +cd /usr/local/aolserver/bin +ln -s libtdom0.7.8.so libtdom.so</span></pre></pre><p> </p></li><li><p><a href="install-nsopenssl.html" title="Install nsopenssl">Install nsopenssl</a> (OPTIONAL)</p></li><li><p><a href="install-full-text-search.html#install-openfts" title="Install OpenFTS module">Install Full Text Search with OpenFTS</a> (OPTIONAL)</p></li><li><p><a href="install-nspam.html" title="Install nspam">Install nspam</a> (OPTIONAL)</p></li><li><a name="install-aolserver-permissions"></a><p><b>Test AOLserver.�</b>In order to test AOLserver, we'll run it using the sample-config.tcl file provided in the AOLserver distribution, Index: openacs-4/packages/acs-core-docs/www/apm-design.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-design.html,v diff -u -r1.17 -r1.18 --- openacs-4/packages/acs-core-docs/www/apm-design.html 31 Oct 2003 15:57:34 -0000 1.17 +++ openacs-4/packages/acs-core-docs/www/apm-design.html 5 Nov 2003 11:48:09 -0000 1.18 @@ -88,7 +88,7 @@ packages for other ACS users to download and install.</p><p>For a simple illustration of the difference between ACS without APM (pre-3.3) and ACS with APM (3.3 and beyond), consider a hypothetical ACS installation that uses only two of the thirty-odd modules available circa ACS -3.2 (say, bboard and e-commerce):</p><div class="mediaobject" align="center"><img src="images/acs-without-apm-vs-with-apm.png" align="middle" longdesc="ld-id2876090.html"><div class="longdesc-link" align="right"><br clear="all"><span class="longdesc-link">[<a href="ld-id2876090.html" target="longdesc">D</a>]</span></div></div><p>APM itself is part of a package, the <span class="strong">OpenACS Kernel</span>, an OpenACS +3.2 (say, bboard and e-commerce):</p><div class="mediaobject" align="center"><img src="images/acs-without-apm-vs-with-apm.png" align="middle" longdesc="ld-id2877748.html"><div class="longdesc-link" align="right"><br clear="all"><span class="longdesc-link">[<a href="ld-id2877748.html" target="longdesc">D</a>]</span></div></div><p>APM itself is part of a package, the <span class="strong">OpenACS Kernel</span>, an OpenACS service that is the only mandatory component of an OpenACS installation.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="apm-design-competitors"></a>Competitive Analysis</h3></div></div><div></div></div><p>The OpenACS is a platform for web-based application software, and any software platform has the potential to develop problems like those described above. Fortunately, there are many precedents for systematic solutions, Index: openacs-4/packages/acs-core-docs/www/backup-recovery.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/backup-recovery.html,v diff -u -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/backup-recovery.html 31 Oct 2003 15:57:34 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/backup-recovery.html 5 Nov 2003 11:48:09 -0000 1.11 @@ -1,4 +1,4 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Backup and Recovery</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="maintenance.html" title="Chapter�6.�Maintenance"><link rel="previous" href="database-management.html" title="Database Management"><link rel="next" href="install-redhat.html" title="Appendix�A.�Install Red Hat 8.0"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="database-management.html">Prev</a> </td><th width="60%" align="center">Chapter�6.�Maintenance</th><td width="20%" align="right"> <a accesskey="n" href="install-redhat.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="backup-recovery"></a>Backup and Recovery</h2></div></div><div></div></div><div class="authorblurb"><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Backup and Recovery</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="maintenance.html" title="Chapter�6.�Maintenance"><link rel="previous" href="database-management.html" title="Database Management"><link rel="next" href="install-redhat.html" title="Appendix�A.�Install Red Hat 8/9"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="database-management.html">Prev</a> </td><th width="60%" align="center">Chapter�6.�Maintenance</th><td width="20%" align="right"> <a accesskey="n" href="install-redhat.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="backup-recovery"></a>Backup and Recovery</h2></div></div><div></div></div><div class="authorblurb"><p> by <a href="mailto:dhogaza@pacifier.com" target="_top">Don Baccus</a> with additions by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a><br> @@ -143,7 +143,7 @@ single nightly backup file which is then collected into a bigger backup file that includes the other parts of the service (web pages, content, code). To make a new file every - night, edit the crontab file for <span class="replaceable"><span class="replaceable">service0</span></span>:</p><pre class="screen">[service0@yourserver service0]$ <b class="userinput"><tt>export EDITOR=emacs;crontab -e</tt></b></pre><p>Add this line to the file. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day.</p><pre class="programlisting">0 1 * * * /usr/local/pgsql/bin/pg_dump -f /var/lib/aolserver/service0/database-backup/service0_`date +\%Y-\%m-\%d`.dmp service0</pre><p>If you plan to back up the whole <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">service0</span></span></tt> directory, then it would be redundant to keep a history of database backups. In that case, set up the cron job to overwrite the previous backup each time:</p><pre class="programlisting">0 1 * * * /usr/local/pgsql/bin/pg_dump -f /var/lib/aolserver/service0/database-backup/service0_nightly.dmp service0</pre></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2831758"></a>A full Backup/Recovery cycle</h3></div></div><div></div></div><p><span class="emphasis"><em>On a test service</em></span>, make sure that your backup-recovery process work. After backing up the database and file system, delete the service as detailed below and then recover it.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2831775"></a>Delete the Service</h4></div></div><div></div></div><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>svc -d /service/service0</tt></b> + night, edit the crontab file for <span class="replaceable"><span class="replaceable">service0</span></span>:</p><pre class="screen">[service0@yourserver service0]$ <b class="userinput"><tt>export EDITOR=emacs;crontab -e</tt></b></pre><p>Add this line to the file. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day.</p><pre class="programlisting">0 1 * * * /usr/local/pgsql/bin/pg_dump -f /var/lib/aolserver/service0/database-backup/service0_`date +\%Y-\%m-\%d`.dmp service0</pre><p>If you plan to back up the whole <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">service0</span></span></tt> directory, then it would be redundant to keep a history of database backups. In that case, set up the cron job to overwrite the previous backup each time:</p><pre class="programlisting">0 1 * * * /usr/local/pgsql/bin/pg_dump -f /var/lib/aolserver/service0/database-backup/service0_nightly.dmp service0</pre></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2833215"></a>A full Backup/Recovery cycle</h3></div></div><div></div></div><p><span class="emphasis"><em>On a test service</em></span>, make sure that your backup-recovery process work. After backing up the database and file system, delete the service as detailed below and then recover it.</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2833232"></a>Delete the Service</h4></div></div><div></div></div><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>svc -d /service/service0</tt></b> [root@yourserver root]# <b class="userinput"><tt>mv /var/lib/aolserver/service0/ /var/lib/aolserver/service0.lost</tt></b> [root@yourserver root]#<b class="userinput"><tt> rm /service/service0</tt></b> rm: remove symbolic link `/service/service0'? y @@ -308,4 +308,4 @@ joeuser:~$ restart-aolserver birdnotes</pre><p> That's it! The script will email you with each successful backup (or if it fails, it will send you an email with the reason) - </p></div></div><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="database-management.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-redhat.html">Next</a></td></tr><tr><td width="40%" align="left">Database Management </td><td width="20%" align="center"><a accesskey="u" href="maintenance.html">Up</a></td><td width="40%" align="right"> Appendix�A.�Install Red Hat 8.0</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/backup-recovery.html#comments">View comments on this page at openacs.org</a></center></body></html> + </p></div></div><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="database-management.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-redhat.html">Next</a></td></tr><tr><td width="40%" align="left">Database Management </td><td width="20%" align="center"><a accesskey="u" href="maintenance.html">Up</a></td><td width="40%" align="right"> Appendix�A.�Install Red Hat 8/9</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/backup-recovery.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/credits.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/credits.html,v diff -u -r1.18 -r1.19 --- openacs-4/packages/acs-core-docs/www/credits.html 31 Oct 2003 15:57:34 -0000 1.18 +++ openacs-4/packages/acs-core-docs/www/credits.html 5 Nov 2003 11:48:09 -0000 1.19 @@ -1,4 +1,4 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Appendix�C.�Credits</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-admin.html" title="Part�II.�Administrator's Guide"><link rel="previous" href="install-nsopenssl.html" title="Install nsopenssl"><link rel="next" href="install-origins.html" title="Where did this document come from?"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-nsopenssl.html">Prev</a> </td><th width="60%" align="center">Part�II.�Administrator's Guide</th><td width="20%" align="right"> <a accesskey="n" href="install-origins.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="credits"></a>Appendix�C.�Credits</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="install-origins.html">Where did this document come from?</a></dt><dt><a href="os-install.html">Linux Install Guides</a></dt><dt><a href="os-security.html">Security Information</a></dt><dt><a href="install-resources.html">Resources</a></dt></dl></div><div class="authorblurb"><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Appendix�C.�Credits</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-admin.html" title="Part�II.�Administrator's Guide"><link rel="previous" href="install-tclwebtest.html" title="Install tclwebtest."><link rel="next" href="install-origins.html" title="Where did this document come from?"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-tclwebtest.html">Prev</a> </td><th width="60%" align="center">Part�II.�Administrator's Guide</th><td width="20%" align="right"> <a accesskey="n" href="install-origins.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="credits"></a>Appendix�C.�Credits</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="install-origins.html">Where did this document come from?</a></dt><dt><a href="os-install.html">Linux Install Guides</a></dt><dt><a href="os-security.html">Security Information</a></dt><dt><a href="install-resources.html">Resources</a></dt></dl></div><div class="authorblurb"><p> by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. @@ -33,4 +33,4 @@ </p><p> <span class="strong">All questions and comments</span> regarding this guide should be posted on the <a href="http://openacs.org/bboard" target="_top">OpenACS bboards</a>. - </p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-nsopenssl.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-origins.html">Next</a></td></tr><tr><td width="40%" align="left">Install nsopenssl </td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right"> Where did this document come from?</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/credits.html#comments">View comments on this page at openacs.org</a></center></body></html> + </p><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-tclwebtest.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-origins.html">Next</a></td></tr><tr><td width="40%" align="left">Install tclwebtest. </td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right"> Where did this document come from?</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/credits.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/cvs-service-import.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/cvs-service-import.html,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/cvs-service-import.html 31 Oct 2003 15:57:34 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/cvs-service-import.html 5 Nov 2003 11:48:09 -0000 1.10 @@ -1,4 +1,4 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Add the Service to CVS - OPTIONAL</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="cvs-tips.html" title="Appendix�D.�Using CVS with an OpenACS Site"><link rel="previous" href="cvs-tips.html" title="Appendix�D.�Using CVS with an OpenACS Site"><link rel="next" href="releasing-openacs.html" title="Appendix�E.�How to package and release OpenACS"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="cvs-tips.html">Prev</a> </td><th width="60%" align="center">Appendix�D.�Using CVS with an OpenACS Site</th><td width="20%" align="right"> <a accesskey="n" href="releasing-openacs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cvs-service-import"></a>Add the Service to CVS - OPTIONAL</h2></div></div><div></div></div><a class="indexterm" name="id2858572"></a><p>These steps take an existing OpenACS directory and add +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Add the Service to CVS - OPTIONAL</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="cvs-tips.html" title="Appendix�D.�Using CVS with an OpenACS Site"><link rel="previous" href="cvs-tips.html" title="Appendix�D.�Using CVS with an OpenACS Site"><link rel="next" href="releasing-openacs.html" title="Appendix�E.�How to package and release OpenACS"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="cvs-tips.html">Prev</a> </td><th width="60%" align="center">Appendix�D.�Using CVS with an OpenACS Site</th><td width="20%" align="right"> <a accesskey="n" href="releasing-openacs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cvs-service-import"></a>Add the Service to CVS - OPTIONAL</h2></div></div><div></div></div><a class="indexterm" name="id2860232"></a><p>These steps take an existing OpenACS directory and add it to a <a href="install-cvs.html" title="Initialize CVS (OPTIONAL)">CVS repository.</a>.</p><div class="orderedlist"><ol type="1"><li><p>Create and set permissions on a subdirectory in the local cvs repository.</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>mkdir /cvsroot/<span class="replaceable"><span class="replaceable">service0</span></span></tt></b> [root@yourserver root]#<b class="userinput"><tt> chown <span class="replaceable"><span class="replaceable">service0</span></span>.web /cvsroot/<span class="replaceable"><span class="replaceable">service0</span></span></tt></b> Index: openacs-4/packages/acs-core-docs/www/docbook-primer.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/docbook-primer.html,v diff -u -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/docbook-primer.html 31 Oct 2003 15:57:34 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/docbook-primer.html 5 Nov 2003 11:48:09 -0000 1.20 @@ -31,7 +31,7 @@ In order to separate content and presentation, all OpenACS documentation will be marked up to conform to the <a href="http://docbook.org/xml/index.html" target="_top">DocBook XML DTD</a> - <a class="indexterm" name="id2847535"></a> + <a class="indexterm" name="id2851466"></a> This enables us to publish in a variety of formats and relieves each contributor of the burden of presentation, freeing him to focus on content and sharing knowledge. @@ -52,7 +52,7 @@ list of elements</a> and use more exotic features in your documents. The list is made up of SGML-elements but basically the same elements are valid in the XML DTD <span class="strong">as long as you remember to</span>: - <a class="indexterm" name="id2847608"></a> + <a class="indexterm" name="id2851538"></a> </p><div class="itemizedlist"><ul type="disc"><li><p> Always close your tags with corresponding end-tags and to <span class="strong">not use other tag minimization</span> @@ -98,7 +98,7 @@ The documentation for each package will make up a little "book" that is structured like this - examples are <span class="emphasis"><em>emphasized</em></span>: - <a class="indexterm" name="id2847815"></a> + <a class="indexterm" name="id2851746"></a> </p><pre class="programlisting"> book : <span class="strong">Docs for one package</span> - <span class="emphasis"><em>templating</em></span> @@ -122,20 +122,20 @@ <a href="http://openacs.org/cvs/openacs-4/packages/acs-core-docs/www/xml/engineering-standards" target="_top">sources of these DocBook documents</a> to get an idea of how they are tied together. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dbprimer-sections"></a>Headlines, Sections</h3></div></div><div></div></div><p> - <a class="indexterm" name="id2847938"></a> + <a class="indexterm" name="id2850086"></a> Given that your job starts at the <tt class="computeroutput">sect1</tt>-level, all your documents should open with a <a href="http://docbook.org/tdg/html/sect1.html" target="_top"><tt class="computeroutput"><sect1></tt></a>-tag and end with the corresponding <tt class="computeroutput"></sect1></tt>. </p><p> - <a class="indexterm" name="id2847970"></a> + <a class="indexterm" name="id2850118"></a> You need to feed every <tt class="computeroutput"><sect1></tt> two attributes. The first attribute, <tt class="computeroutput">id</tt>, is standard and can be used with all elements. It comes in very handy when interlinking between documents (more about this when talking about links in <a href="docbook-primer.html#dbprimer-links" title="Links">Section�, “Links”</a>). The value of <tt class="computeroutput">id</tt> has to be unique throughout the book you're making since the <tt class="computeroutput">id</tt>'s in your <tt class="computeroutput">sect1</tt>'s will turn into filenames when the book is parsed into HTML. </p><p> - <a class="indexterm" name="id2848014"></a> + <a class="indexterm" name="id2850161"></a> The other attribute is <tt class="computeroutput">xreflabel</tt>. The value of this is the text that will appear as the link when referring to this <tt class="computeroutput">sect1</tt>. </p><p> @@ -150,7 +150,7 @@ </sect1> </pre><p> - <a class="indexterm" name="id2848053"></a> + <a class="indexterm" name="id2850200"></a> Inside this container your document will be split up into <a href="http://docbook.org/tdg/html/sect2.html" target="_top"><tt class="computeroutput"><sect2></tt></a>'s, each with the same requirements - <tt class="computeroutput">id</tt> and <tt class="computeroutput">xreflabel</tt> @@ -159,7 +159,7 @@ When it comes to naming your <tt class="computeroutput">sect2</tt>'s and below, prefix them with some abbreviation of the <tt class="computeroutput">id</tt> in the <tt class="computeroutput">sect1</tt> such as <tt class="computeroutput">requirements-overview</tt>. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dbprimer-code"></a>Code</h3></div></div><div></div></div><p> - <a class="indexterm" name="id2848873"></a> + <a class="indexterm" name="id2850275"></a> For displaying a snippet of code, a filename or anything else you just want to appear as a part of a sentence, we will use the tag <a href="http://docbook.org/tdg/html/computeroutput.html" target="_top"><tt class="computeroutput"><computeroutput></tt></a>. @@ -169,12 +169,12 @@ <a href="http://docbook.org/tdg/html/programlisting.html" target="_top"><tt class="computeroutput"><programlisting></tt></a> is used. Just wrap your code block in it; mono-spacing, indents and all that stuff is taken care of automatically. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dbprimer-links"></a>Links</h3></div></div><div></div></div><p> - <a class="indexterm" name="id2848931"></a> + <a class="indexterm" name="id2850332"></a> Linking falls into two different categories: inside the book you're making and outside: </p><div class="variablelist"><dl><dt><span class="term"><span class="strong">1. Inside linking, cross-referencing other parts of your book</span></span></dt><dd><p> By having unique <tt class="computeroutput">id</tt>'s you can cross-reference any part of your book with a simple tag, regardless of where that part is. - </p><p><a class="indexterm" name="id2848968"></a>Check out how I link to a subsection of the Developer's Guide:</p><pre class="programlisting"> + </p><p><a class="indexterm" name="id2850370"></a>Check out how I link to a subsection of the Developer's Guide:</p><pre class="programlisting"> Put this in your XML: @@ -212,7 +212,7 @@ <tt class="computeroutput">packages-looks</tt>, the parser will try its best to explain where the link takes you. </p></dd><dt><span class="term"><span class="strong">2. Linking outside the documentation</span></span></dt><dd><p> - <a class="indexterm" name="id2849087"></a> + <a class="indexterm" name="id2850489"></a> If you're hyper-linking out of the documentation, it works almost the same way as HTML - the tag is just a little different @@ -233,7 +233,7 @@ do it, so if you want to start converting your documents right away, start out with the ones without graphics ;) </em></span> </p><p> - <a class="indexterm" name="id2849184"></a> + <a class="indexterm" name="id2850586"></a> To insert a graphic we use the elements <a href="http://docbook.org/tdg/html/mediaobject.html" target="_top"><tt class="computeroutput"><mediaobject></tt></a>, <a href="http://docbook.org/tdg/html/imageobject.html" target="_top"><tt class="computeroutput"><imageobject></tt></a>, @@ -259,7 +259,7 @@ Put your graphics in a separate directory ("images") and link to them only with relative paths. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dbprimer-lists"></a>Lists</h3></div></div><div></div></div><p> - <a class="indexterm" name="id2849268"></a> + <a class="indexterm" name="id2850670"></a> Here's how you make the DocBook equivalent of the three usual HTML-lists: </p><div class="variablelist"><dl><dt><span class="term"><span class="strong">1. How to make an <ul></span></span></dt><dd><p> Making an unordered list is pretty much like doing the same thing in HTML - if you close your <tt class="computeroutput"><li></tt>, that is. The only differences are that each list item has to be wrapped in something more, such as @@ -304,7 +304,7 @@ </variablelist> </pre></dd></dl></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dbprimer-tables"></a>Tables</h3></div></div><div></div></div><p> - <a class="indexterm" name="id2854457"></a> + <a class="indexterm" name="id2850865"></a> DocBook supports several types of tables, but in most cases, the <a href="http://docbook.org/tdg/html/informaltable.html" target="_top"><tt class="computeroutput"><informaltable></tt></a> is enough: @@ -341,7 +341,7 @@ <a href="http://docbook.org/tdg/html/table.html" target="_top"><tt class="computeroutput"><table></tt></a> for an example. </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="dbprimer-emphasis"></a>Emphasis</h3></div></div><div></div></div><p> - <a class="indexterm" name="id2854597"></a> + <a class="indexterm" name="id2851006"></a> Our documentation uses two flavors of emphasis - italics and bold type. DocBook uses one - <a href="http://docbook.org/tdg/html/emphasis.html" target="_top"><tt class="computeroutput"><emphasis></tt></a>. </p><p> Index: openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 31 Oct 2003 15:57:34 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/ext-auth-requirements.html 5 Nov 2003 11:48:09 -0000 1.8 @@ -1,4 +1,4 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>External Authentication Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�10.�Kernel Documentation"><link rel="previous" href="bootstrap-acs.html" title="Bootstrapping OpenACS"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="bootstrap-acs.html">Prev</a> </td><th width="60%" align="center">Chapter�10.�Kernel Documentation</th><td width="20%" align="right"> </td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ext-auth-requirements"></a>External Authentication Requirements</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2885420"></a>Vision</h3></div></div><div></div></div><p>People have plenty of usernames and passwords already, we +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>External Authentication Requirements</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="kernel-doc.html" title="Chapter�10.�Kernel Documentation"><link rel="previous" href="bootstrap-acs.html" title="Bootstrapping OpenACS"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="bootstrap-acs.html">Prev</a> </td><th width="60%" align="center">Chapter�10.�Kernel Documentation</th><td width="20%" align="right"> </td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="ext-auth-requirements"></a>External Authentication Requirements</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2886776"></a>Vision</h3></div></div><div></div></div><p>People have plenty of usernames and passwords already, we don't want them to have yet another. We want people to be able to log in to OpenACS with the same password they use to log in to any other system.</p><p>Besides, administrators have better things to do than create @@ -44,7 +44,7 @@ only one implementation of the authentication API, namly the one included in OpenACS Core.</p></li><li><p>Authentication Driver API: The service contract which authentication drivers implement.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Diagram"></a>Conceptual Pictures</h3></div></div><div></div></div><p>Authentication:</p><p><span class="inlinemediaobject"><img src="images/ext-auth.png"></span> -</p><p>Account Management (NO PICTURE YET)</p><p>Batch Synchronization (NO PICTURE YET)</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Requirements"></a>Requirements</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2887482"></a>New API</h4></div></div><div></div></div><div class="segmentedlist"><table border="1" cellpadding="3" cellspacing="0" width="90%"><tr><th width="15%">Feature</th><th width="8%">Status</th><th width="77%">Description</th></tr><thead><tr></tr></thead><tbody><tr><td>EXT-AUTH-01</td><td>A</td><td>Extend Authentication/Acct Status API</td></tr><tr><td>EXT-AUTH-03</td><td>A</td><td>Account Creation API</td></tr><tr><td>EXT-AUTH-05</td><td>A</td><td>Password Management API</td></tr><tr><td>EXT-AUTH-30</td><td>A</td><td>Authority Management API</td></tr></tbody></table></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Login"></a>Login</h4></div></div><div></div></div><div class="segmentedlist"><table border="1" cellpadding="3" cellspacing="0" width="90%"><tr><th width="15%">Feature</th><th width="8%">Status</th><th width="77%">Description</th></tr><thead><tr></tr></thead><tbody><tr><td>EXT-AUTH-04</td><td>A</td><td>Rewrite login, register, and admin pages to use APIs</td></tr><tr><td>EXT-AUTH-38</td><td>A</td><td>ad_form complain feature</td></tr><tr><td>EXT-AUTH-19</td><td>A</td><td>Rewrite password recovery to use API</td></tr><tr><td>EXT-AUTH-21</td><td>A</td><td>Rewrite email verification with API</td></tr><tr><td>EXT-AUTH-28</td><td>A</td><td>Username is email switch</td></tr></tbody></table></div><p>Users will log in using a username, a authority, and a +</p><p>Account Management (NO PICTURE YET)</p><p>Batch Synchronization (NO PICTURE YET)</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Requirements"></a>Requirements</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2889142"></a>New API</h4></div></div><div></div></div><div class="segmentedlist"><table border="1" cellpadding="3" cellspacing="0" width="90%"><tr><th width="15%">Feature</th><th width="8%">Status</th><th width="77%">Description</th></tr><thead><tr></tr></thead><tbody><tr><td>EXT-AUTH-01</td><td>A</td><td>Extend Authentication/Acct Status API</td></tr><tr><td>EXT-AUTH-03</td><td>A</td><td>Account Creation API</td></tr><tr><td>EXT-AUTH-05</td><td>A</td><td>Password Management API</td></tr><tr><td>EXT-AUTH-30</td><td>A</td><td>Authority Management API</td></tr></tbody></table></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="Login"></a>Login</h4></div></div><div></div></div><div class="segmentedlist"><table border="1" cellpadding="3" cellspacing="0" width="90%"><tr><th width="15%">Feature</th><th width="8%">Status</th><th width="77%">Description</th></tr><thead><tr></tr></thead><tbody><tr><td>EXT-AUTH-04</td><td>A</td><td>Rewrite login, register, and admin pages to use APIs</td></tr><tr><td>EXT-AUTH-38</td><td>A</td><td>ad_form complain feature</td></tr><tr><td>EXT-AUTH-19</td><td>A</td><td>Rewrite password recovery to use API</td></tr><tr><td>EXT-AUTH-21</td><td>A</td><td>Rewrite email verification with API</td></tr><tr><td>EXT-AUTH-28</td><td>A</td><td>Username is email switch</td></tr></tbody></table></div><p>Users will log in using a username, a authority, and a password. The authority is the source for user/password verification. OpenACS can be an authority itself. </p><p>Each user in OpenACS will belong to exactly one authority, which can either be the "local" OpenACS users table, in which case the Index: openacs-4/packages/acs-core-docs/www/i18n.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n.html,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/i18n.html 31 Oct 2003 15:57:34 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/i18n.html 5 Nov 2003 11:48:09 -0000 1.10 @@ -38,7 +38,7 @@ which are static and mostly text, it may be easier to create a new ADP page for each language. In this case, the pages are distinguished by a file naming convention. - </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2872995"></a>Separate Templates for each Locale</h4></div></div><div></div></div><p>If the request processor finds a file named <tt class="computeroutput">filename.locale.adp</tt>, where locale matches the user's locale, it will process that file instead of <tt class="computeroutput">filename.adp</tt>. For example, for a user with locale <tt class="computeroutput">tl_PH</tt>, the file <tt class="computeroutput">index.tl_PH.adp</tt>, if found, will be used instead of <tt class="computeroutput">index.adp</tt>. The locale-specific file should thus contain text in the language appropriate for that locale. The code in the page, however, should still be in English. Message keys are still processed.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="i18n-message-catalog-adps"></a>Message Keys in Template Files (ADP Files)</h4></div></div><div></div></div><p> + </p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2874653"></a>Separate Templates for each Locale</h4></div></div><div></div></div><p>If the request processor finds a file named <tt class="computeroutput">filename.locale.adp</tt>, where locale matches the user's locale, it will process that file instead of <tt class="computeroutput">filename.adp</tt>. For example, for a user with locale <tt class="computeroutput">tl_PH</tt>, the file <tt class="computeroutput">index.tl_PH.adp</tt>, if found, will be used instead of <tt class="computeroutput">index.adp</tt>. The locale-specific file should thus contain text in the language appropriate for that locale. The code in the page, however, should still be in English. Message keys are still processed.</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="i18n-message-catalog-adps"></a>Message Keys in Template Files (ADP Files)</h4></div></div><div></div></div><p> Internationalizing templates is about replacing human readable text in a certain language with internal message keys, which can then be dynamically replaced with real human language in @@ -101,9 +101,9 @@ </p><p> Here are a couple of examples. Say we have the following two parameters, taken directly from the dotlrn package. - </p><div class="table"><a name="id2881702"></a><p class="title"><b>Table�10.1.�</b></p><table cellspacing="0" border="1"><colgroup><col><col></colgroup><thead><tr><th>Parameter Name</th><th>Parameter Value</th></tr></thead><tbody><tr><td>class_instance_pages_csv</td><td>#dotlrn.class_page_home_title#,Simple 2-Column;#dotlrn.class_page_calendar_title#,Simple 1-Column;#dotlrn.class_page_file_storage_title#,Simple 1-Column</td></tr><tr><td>departments_pretty_name</td><td>#departments_pretty_name#</td></tr></tbody></table></div><p> + </p><div class="table"><a name="id2883361"></a><p class="title"><b>Table�10.1.�</b></p><table cellspacing="0" border="1"><colgroup><col><col></colgroup><thead><tr><th>Parameter Name</th><th>Parameter Value</th></tr></thead><tbody><tr><td>class_instance_pages_csv</td><td>#dotlrn.class_page_home_title#,Simple 2-Column;#dotlrn.class_page_calendar_title#,Simple 1-Column;#dotlrn.class_page_file_storage_title#,Simple 1-Column</td></tr><tr><td>departments_pretty_name</td><td>#departments_pretty_name#</td></tr></tbody></table></div><p> Then, depending on how we retrieve the value, here's what we get: - </p><div class="table"><a name="id2881372"></a><p class="title"><b>Table�10.2.�</b></p><table cellspacing="0" border="1"><colgroup><col><col></colgroup><thead><tr><th>Command used to retrieve Value</th><th>Retrieved Value</th></tr></thead><tbody><tr><td>parameter::get <span class="strong">-localize</span> -parameter class_instances_pages_csv</td><td>Kurs Startseite,Simple 2-Column;Kalender,Simple 1-Column;Dateien,Simple 1-Column</td></tr><tr><td>parameter::get <span class="strong">-localize</span> -parameter departments_pretty_name</td><td>Abteilung</td></tr><tr><td>parameter::get -parameter departments_pretty_name</td><td>#departments_pretty_name#</td></tr></tbody></table></div><p> + </p><div class="table"><a name="id2883032"></a><p class="title"><b>Table�10.2.�</b></p><table cellspacing="0" border="1"><colgroup><col><col></colgroup><thead><tr><th>Command used to retrieve Value</th><th>Retrieved Value</th></tr></thead><tbody><tr><td>parameter::get <span class="strong">-localize</span> -parameter class_instances_pages_csv</td><td>Kurs Startseite,Simple 2-Column;Kalender,Simple 1-Column;Dateien,Simple 1-Column</td></tr><tr><td>parameter::get <span class="strong">-localize</span> -parameter departments_pretty_name</td><td>Abteilung</td></tr><tr><td>parameter::get -parameter departments_pretty_name</td><td>#departments_pretty_name#</td></tr></tbody></table></div><p> The value in the rightmost column in the table above is the value returned by an invocation of parameter::get. Note that for localization to happen you must use the -localize flag. @@ -151,7 +151,7 @@ Use the <tt class="computeroutput">*_pretty</tt> version in your ADP page. </p></li></ol></div><p> To internationalize numbers, use <tt class="computeroutput">lc_numeric $value</tt>, which formats the number using the appropriate decimal point and thousand separator for the locale. - </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="i18n-forms"></a>Internationalizing Forms</h3></div></div><div></div></div><p>When coding forms, remember to use message keys for each piece of text that is user-visible, including form option labels and button labels.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="i18n-convert"></a>Internationalizing Existing Packages</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2882162"></a>Internationalize Message text in ADP and TCL</h4></div></div><div></div></div><p>Acs-lang includes tools to automate some + </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="i18n-forms"></a>Internationalizing Forms</h3></div></div><div></div></div><p>When coding forms, remember to use message keys for each piece of text that is user-visible, including form option labels and button labels.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="i18n-convert"></a>Internationalizing Existing Packages</h3></div></div><div></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2883822"></a>Internationalize Message text in ADP and TCL</h4></div></div><div></div></div><p>Acs-lang includes tools to automate some internationalization. From <tt class="computeroutput">/acs-admin/apm/</tt>, select a package and then click on @@ -240,9 +240,9 @@ with the appropriate notation for the type of file, and store the text in the message catalog. You need to run the process twice, once for ADP files, and once for Tcl files. - </p></li></ol></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2882524"></a>Internationalize Package Parameters with visible messages</h4></div></div><div></div></div><p> + </p></li></ol></div></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2884184"></a>Internationalize Package Parameters with visible messages</h4></div></div><div></div></div><p> See <a href="i18n.html#i18n-message-catalog-params">Multilingual APM Parameters</a> - </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2882544"></a>Internationalize Date and Time queries</h4></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p>Find datetime in .xql files. Use command line tools to find suspect SQL code:</p><pre class="programlisting">grep -r "to_char.*H" * + </p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2884203"></a>Internationalize Date and Time queries</h4></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p>Find datetime in .xql files. Use command line tools to find suspect SQL code:</p><pre class="programlisting">grep -r "to_char.*H" * grep -r "to_date.*H" * </pre></li><li><p>In SQL statements, replace the format string with the ANSI standard format, <tt class="computeroutput">YYYY-MM-DD HH24:MI:SS</tt> and change the field name to *_ansi so that it cannot be confused with previous, improperly formatting fields. For example,</p><pre class="programlisting">to_char(timestamp,'MM/DD/YYYY HH:MI:SS') as foo_date_pretty</pre><p>becomes</p><pre class="programlisting">to_char(timestamp,'YYYY-MM-DD HH24:MI:SS') as foo_date_ansi</pre></li><li><p>In TCL files where the date fields are used, convert the datetime from local server timezone, which is how it's stored in the database, to the user's timezone for display. Do this with the localizing function <tt class="computeroutput"><a href="/api-doc/proc-view?proc=lc_time_system_to_conn" target="_top">lc_time_system_to_conn</a></tt>:</p><pre class="programlisting"> set foo_date_ansi [lc_time_system_to_conn $foo_date_ansi]</pre><p>When a datetime will be written to the database, first convert it from the user's local time to the server's timezone with <tt class="computeroutput"><a href="/api-doc/proc-view?proc=lc%5ftime%5fconn%5fto%5fsystem" target="_top">lc_time_conn_to_system</a></tt>. Index: openacs-4/packages/acs-core-docs/www/index.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/index.html,v diff -u -r1.18 -r1.19 --- openacs-4/packages/acs-core-docs/www/index.html 31 Oct 2003 15:57:34 -0000 1.18 +++ openacs-4/packages/acs-core-docs/www/index.html 5 Nov 2003 11:48:09 -0000 1.19 @@ -1 +1 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS Core Documentation</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="next" href="for-everyone.html" title="Part�I.�OpenACS For Everyone"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="for-everyone.html">Next</a></td></tr></table><hr></div><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id2760361"></a>OpenACS Core Documentation</h1></div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>I. <a href="for-everyone.html">OpenACS For Everyone</a></dt><dd><dl><dt>1. <a href="general-documents.html">High level information: What is OpenACS?</a></dt><dd><dl><dt><a href="openacs-overview.html">Overview</a></dt><dt><a href="release-notes.html">OpenACS Release Notes</a></dt></dl></dd></dl></dd><dt>II. <a href="acs-admin.html">Administrator's Guide</a></dt><dd><dl><dt>2. <a href="install-overview.html">Installation Overview</a></dt><dd><dl><dt><a href="individual-programs.html">Prerequisite Software</a></dt></dl></dd><dt>3. <a href="complete-install.html">Complete Installation</a></dt><dd><dl><dt><a href="unix-installation.html">Install Unix-like system and supporting software</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostGreSQL</a></dt><dt><a href="aolserver.html">Install AOLserver 3.3oacs1</a></dt><dt><a href="openacs.html">Install OpenACS 5.0.0a4</a></dt><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt><dt><a href="mac-installation.html">OpenACS Installation Guide for Mac OS X</a></dt></dl></dd><dt>4. <a href="configure.html">Configuring a New Service</a></dt><dt>5. <a href="upgrade.html">Upgrading</a></dt><dd><dl><dt><a href="upgrade-detail.html">Support for upgrades.</a></dt></dl></dd><dt>6. <a href="maintenance.html">Maintenance</a></dt><dd><dl><dt><a href="maintenance-web.html">Hosting Web Sites</a></dt><dt><a href="database-management.html">Database Management</a></dt><dt><a href="backup-recovery.html">Backup and Recovery</a></dt></dl></dd><dt>A. <a href="install-redhat.html">Install Red Hat 8.0</a></dt><dt>B. <a href="install-more-software.html">Install additional supporting software</a></dt><dd><dl><dt><a href="openacs-unpack.html">Unpack the OpenACS tarball</a></dt><dt><a href="install-cvs.html">Initialize CVS (OPTIONAL)</a></dt><dt><a href="psgml-for-emacs.html">Add PSGML commands to emacs init file (OPTIONAL)</a></dt><dt><a href="install-daemontools.html">Install Daemontools (OPTIONAL)</a></dt><dt><a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt><dt><a href="analog-install.html">Install Analog web file analyzer</a></dt><dt><a href="install-nspam.html">Install nspam</a></dt><dt><a href="install-full-text-search.html">Install Full Text Search</a></dt><dt><a href="install-nsopenssl.html">Install nsopenssl</a></dt></dl></dd><dt>C. <a href="credits.html">Credits</a></dt><dd><dl><dt><a href="install-origins.html">Where did this document come from?</a></dt><dt><a href="os-install.html">Linux Install Guides</a></dt><dt><a href="os-security.html">Security Information</a></dt><dt><a href="install-resources.html">Resources</a></dt></dl></dd></dl></dd><dt>III. <a href="acs-package-dev.html">For OpenACS Package Developers</a></dt><dd><dl><dt>7. <a href="tutorial.html">Development Tutorial</a></dt><dd><dl><dt><a href="tutorial-newpackage.html">Creating a Package</a></dt><dt><a href="tutorial-database.html">Setting Up Database Objects</a></dt><dt><a href="tutorial-pages.html">Creating Web Pages</a></dt><dt><a href="tutorial-debug.html">Debugging and Automated Testing</a></dt><dt><a href="tutorial-advanced.html">Advanced Topics</a></dt></dl></dd><dt>8. <a href="dev-guide.html">Development Reference</a></dt><dd><dl><dt><a href="packages.html">OpenACS 5.0.0a4 Packages</a></dt><dt><a href="objects.html">OpenACS Data Models and the Object System</a></dt><dt><a href="request-processor.html">The Request Processor</a></dt><dt><a href="db-api.html">The OpenACS Database Access API</a></dt><dt><a href="templates.html">Using Templates in OpenACS 5.0.0a4</a></dt><dt><a href="permissions.html">Groups, Context, Permissions</a></dt><dt><a href="subsites.html">Writing OpenACS 5.0.0a4 Application Pages</a></dt><dt><a href="parties.html">Parties in OpenACS 5.0.0a4</a></dt><dt><a href="permissions-tediously-explained.html">OpenACS 4.x Permissions Tediously Explained</a></dt><dt><a href="object-identity.html">Object Identity</a></dt><dt><a href="programming-with-aolserver.html">Programming with AOLserver</a></dt></dl></dd><dt>9. <a href="eng-standards.html">Engineering Standards</a></dt><dd><dl><dt><a href="docbook-primer.html">OpenACS Documentation Guide</a></dt><dt><a href="psgml-mode.html">Using PSGML mode in Emacs</a></dt><dt><a href="filename.html">Detailed Design Documentation Template</a></dt><dt><a href="requirements-template.html">System/Application Requirements Template</a></dt><dt><a href="eng-standards-versioning.html">Release Version Numbering</a></dt><dt><a href="eng-standards-constraint-naming.html">Constraint naming standard</a></dt><dt><a href="eng-standards-filenaming.html">ACS File Naming and Formatting Standards</a></dt><dt><a href="eng-standards-plsql.html">PL/SQL Standards</a></dt></dl></dd><dt>D. <a href="cvs-tips.html">Using CVS with an OpenACS Site</a></dt><dd><dl><dt><a href="cvs-service-import.html">Add the Service to CVS - OPTIONAL</a></dt></dl></dd><dt>E. <a href="releasing-openacs.html">How to package and release OpenACS</a></dt></dl></dd><dt>IV. <a href="acs-plat-dev.html">For OpenACS Platform Developers</a></dt><dd><dl><dt><a href="platform-dev.html">Platform Development</a></dt><dt>10. <a href="kernel-doc.html">Kernel Documentation</a></dt><dd><dl><dt><a href="kernel-overview.html">Overview</a></dt><dt><a href="object-system-requirements.html">OpenACS 4 Object Model Requirements</a></dt><dt><a href="object-system-design.html">OpenACS 4 Object Model Design</a></dt><dt><a href="permissions-requirements.html">OpenACS 4 Permissions Requirements</a></dt><dt><a href="permissions-design.html">OpenACS 4 Permissions Design</a></dt><dt><a href="groups-requirements.html">OpenACS 4 Groups Requirements</a></dt><dt><a href="groups-design.html">OpenACS 4 Groups Design</a></dt><dt><a href="subsites-requirements.html">OpenACS 4 Subsites Requirements</a></dt><dt><a href="subsites-design.html">OpenACS 4 Subsites Design Document</a></dt><dt><a href="apm-requirements.html">OpenACS 5.0.0a4 Package Manager Requirements</a></dt><dt><a href="apm-design.html">OpenACS 5.0.0a4 Package Manager Design</a></dt><dt><a href="db-api-detailed.html">Database Access API</a></dt><dt><a href="i18n-requirements.html">OpenACS Internationalization Requirements</a></dt><dt><a href="i18n.html">Internationalization</a></dt><dt><a href="security-requirements.html">OpenACS 4 Security Requirements</a></dt><dt><a href="security-design.html">OpenACS 4 Security Design</a></dt><dt><a href="security-notes.html">OpenACS 4 Security Notes</a></dt><dt><a href="rp-requirements.html">OpenACS 4 Request Processor Requirements</a></dt><dt><a href="rp-design.html">OpenACS 4 Request Processor Design</a></dt><dt><a href="tcl-doc.html">Documenting Tcl Files: Page Contracts and Libraries</a></dt><dt><a href="bootstrap-acs.html">Bootstrapping OpenACS</a></dt><dt><a href="ext-auth-requirements.html">External Authentication Requirements</a></dt></dl></dd></dl></dd></dl></div><div class="list-of-figures"><p><b>List of Figures</b></p><dl><dt>5.1. <a href="upgrade-detail.html#id2817696">Assumptions in this section</a></dt><dt>7.1. <a href="tutorial-newpackage.html#id2836405">Assumptions in this section</a></dt><dt>7.2. <a href="tutorial-database.html#id2832421">Database Creation Script - master create file</a></dt><dt>7.3. <a href="tutorial-database.html#id2836333">Database deletion script</a></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>8.1. <a href="permissions-tediously-explained.html#id2846607"></a></dt><dt>8.2. <a href="permissions-tediously-explained.html#id2846975"></a></dt><dt>8.3. <a href="permissions-tediously-explained.html#id2847174"></a></dt><dt>8.4. <a href="permissions-tediously-explained.html#id2847332"></a></dt><dt>8.5. <a href="permissions-tediously-explained.html#id2847455"></a></dt><dt>8.6. <a href="permissions-tediously-explained.html#id2851392"></a></dt><dt>8.7. <a href="permissions-tediously-explained.html#id2851614"></a></dt><dt>8.8. <a href="permissions-tediously-explained.html#id2851800"></a></dt><dt>8.9. <a href="permissions-tediously-explained.html#id2852894"></a></dt><dt>8.10. <a href="permissions-tediously-explained.html#id2853272"></a></dt><dt>8.11. <a href="permissions-tediously-explained.html#id2853492"></a></dt><dt>8.12. <a href="permissions-tediously-explained.html#id2854129"></a></dt><dt>10.1. <a href="i18n.html#id2881702"></a></dt><dt>10.2. <a href="i18n.html#id2881372"></a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"></td><td width="40%" align="right"> <a accesskey="n" href="for-everyone.html">Next</a></td></tr><tr><td width="40%" align="left"> </td><td width="20%" align="center"></td><td width="40%" align="right"> Part�I.�OpenACS For Everyone</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/index.html#comments">View comments on this page at openacs.org</a></center></body></html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>OpenACS Core Documentation</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="next" href="for-everyone.html" title="Part�I.�OpenACS For Everyone"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"> </td><th width="60%" align="center"></th><td width="20%" align="right"> <a accesskey="n" href="for-everyone.html">Next</a></td></tr></table><hr></div><div class="book" lang="en"><div class="titlepage"><div><div><h1 class="title"><a name="id2760361"></a>OpenACS Core Documentation</h1></div></div><div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt>I. <a href="for-everyone.html">OpenACS For Everyone</a></dt><dd><dl><dt>1. <a href="general-documents.html">High level information: What is OpenACS?</a></dt><dd><dl><dt><a href="openacs-overview.html">Overview</a></dt><dt><a href="release-notes.html">OpenACS Release Notes</a></dt></dl></dd></dl></dd><dt>II. <a href="acs-admin.html">Administrator's Guide</a></dt><dd><dl><dt>2. <a href="install-overview.html">Installation Overview</a></dt><dd><dl><dt><a href="install-steps.html">Basic Steps</a></dt><dt><a href="individual-programs.html">Prerequisite Software</a></dt></dl></dd><dt>3. <a href="complete-install.html">Complete Installation</a></dt><dd><dl><dt><a href="unix-installation.html">Install Unix-like system and supporting software</a></dt><dt><a href="oracle.html">Install Oracle 8.1.7</a></dt><dt><a href="postgres.html">Install PostGreSQL</a></dt><dt><a href="aolserver.html">Install AOLserver 3.3oacs1</a></dt><dt><a href="openacs.html">Install OpenACS 5.0.0a4</a></dt><dt><a href="win2k-installation.html">OpenACS Installation Guide for Windows2000</a></dt><dt><a href="mac-installation.html">OpenACS Installation Guide for Mac OS X</a></dt></dl></dd><dt>4. <a href="configure.html">Configuring a New Service</a></dt><dt>5. <a href="upgrade.html">Upgrading</a></dt><dd><dl><dt><a href="upgrade-detail.html">Support for upgrades.</a></dt></dl></dd><dt>6. <a href="maintenance.html">Maintenance</a></dt><dd><dl><dt><a href="maintenance-web.html">Hosting Web Sites</a></dt><dt><a href="database-management.html">Database Management</a></dt><dt><a href="backup-recovery.html">Backup and Recovery</a></dt></dl></dd><dt>A. <a href="install-redhat.html">Install Red Hat 8/9</a></dt><dt>B. <a href="install-more-software.html">Install additional supporting software</a></dt><dd><dl><dt><a href="openacs-unpack.html">Unpack the OpenACS tarball</a></dt><dt><a href="install-cvs.html">Initialize CVS (OPTIONAL)</a></dt><dt><a href="psgml-for-emacs.html">Add PSGML commands to emacs init file (OPTIONAL)</a></dt><dt><a href="install-daemontools.html">Install Daemontools (OPTIONAL)</a></dt><dt><a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt><dt><a href="analog-install.html">Install Analog web file analyzer</a></dt><dt><a href="install-nspam.html">Install nspam</a></dt><dt><a href="install-full-text-search.html">Install Full Text Search</a></dt><dt><a href="install-nsopenssl.html">Install nsopenssl</a></dt><dt><a href="install-tclwebtest.html">Install tclwebtest.</a></dt></dl></dd><dt>C. <a href="credits.html">Credits</a></dt><dd><dl><dt><a href="install-origins.html">Where did this document come from?</a></dt><dt><a href="os-install.html">Linux Install Guides</a></dt><dt><a href="os-security.html">Security Information</a></dt><dt><a href="install-resources.html">Resources</a></dt></dl></dd></dl></dd><dt>III. <a href="acs-package-dev.html">For OpenACS Package Developers</a></dt><dd><dl><dt>7. <a href="tutorial.html">Development Tutorial</a></dt><dd><dl><dt><a href="tutorial-newpackage.html">Creating a Package</a></dt><dt><a href="tutorial-database.html">Setting Up Database Objects</a></dt><dt><a href="tutorial-pages.html">Creating Web Pages</a></dt><dt><a href="tutorial-debug.html">Debugging and Automated Testing</a></dt><dt><a href="tutorial-advanced.html">Advanced Topics</a></dt></dl></dd><dt>8. <a href="dev-guide.html">Development Reference</a></dt><dd><dl><dt><a href="packages.html">OpenACS 5.0.0a4 Packages</a></dt><dt><a href="objects.html">OpenACS Data Models and the Object System</a></dt><dt><a href="request-processor.html">The Request Processor</a></dt><dt><a href="db-api.html">The OpenACS Database Access API</a></dt><dt><a href="templates.html">Using Templates in OpenACS 5.0.0a4</a></dt><dt><a href="permissions.html">Groups, Context, Permissions</a></dt><dt><a href="subsites.html">Writing OpenACS 5.0.0a4 Application Pages</a></dt><dt><a href="parties.html">Parties in OpenACS 5.0.0a4</a></dt><dt><a href="permissions-tediously-explained.html">OpenACS 4.x Permissions Tediously Explained</a></dt><dt><a href="object-identity.html">Object Identity</a></dt><dt><a href="programming-with-aolserver.html">Programming with AOLserver</a></dt></dl></dd><dt>9. <a href="eng-standards.html">Engineering Standards</a></dt><dd><dl><dt><a href="docbook-primer.html">OpenACS Documentation Guide</a></dt><dt><a href="psgml-mode.html">Using PSGML mode in Emacs</a></dt><dt><a href="filename.html">Detailed Design Documentation Template</a></dt><dt><a href="requirements-template.html">System/Application Requirements Template</a></dt><dt><a href="eng-standards-versioning.html">Release Version Numbering</a></dt><dt><a href="eng-standards-constraint-naming.html">Constraint naming standard</a></dt><dt><a href="eng-standards-filenaming.html">ACS File Naming and Formatting Standards</a></dt><dt><a href="eng-standards-plsql.html">PL/SQL Standards</a></dt></dl></dd><dt>D. <a href="cvs-tips.html">Using CVS with an OpenACS Site</a></dt><dd><dl><dt><a href="cvs-service-import.html">Add the Service to CVS - OPTIONAL</a></dt></dl></dd><dt>E. <a href="releasing-openacs.html">How to package and release OpenACS</a></dt></dl></dd><dt>IV. <a href="acs-plat-dev.html">For OpenACS Platform Developers</a></dt><dd><dl><dt><a href="platform-dev.html">Platform Development</a></dt><dt>10. <a href="kernel-doc.html">Kernel Documentation</a></dt><dd><dl><dt><a href="kernel-overview.html">Overview</a></dt><dt><a href="object-system-requirements.html">OpenACS 4 Object Model Requirements</a></dt><dt><a href="object-system-design.html">OpenACS 4 Object Model Design</a></dt><dt><a href="permissions-requirements.html">OpenACS 4 Permissions Requirements</a></dt><dt><a href="permissions-design.html">OpenACS 4 Permissions Design</a></dt><dt><a href="groups-requirements.html">OpenACS 4 Groups Requirements</a></dt><dt><a href="groups-design.html">OpenACS 4 Groups Design</a></dt><dt><a href="subsites-requirements.html">OpenACS 4 Subsites Requirements</a></dt><dt><a href="subsites-design.html">OpenACS 4 Subsites Design Document</a></dt><dt><a href="apm-requirements.html">OpenACS 5.0.0a4 Package Manager Requirements</a></dt><dt><a href="apm-design.html">OpenACS 5.0.0a4 Package Manager Design</a></dt><dt><a href="db-api-detailed.html">Database Access API</a></dt><dt><a href="i18n-requirements.html">OpenACS Internationalization Requirements</a></dt><dt><a href="i18n.html">Internationalization</a></dt><dt><a href="security-requirements.html">OpenACS 4 Security Requirements</a></dt><dt><a href="security-design.html">OpenACS 4 Security Design</a></dt><dt><a href="security-notes.html">OpenACS 4 Security Notes</a></dt><dt><a href="rp-requirements.html">OpenACS 4 Request Processor Requirements</a></dt><dt><a href="rp-design.html">OpenACS 4 Request Processor Design</a></dt><dt><a href="tcl-doc.html">Documenting Tcl Files: Page Contracts and Libraries</a></dt><dt><a href="bootstrap-acs.html">Bootstrapping OpenACS</a></dt><dt><a href="ext-auth-requirements.html">External Authentication Requirements</a></dt></dl></dd></dl></dd></dl></div><div class="list-of-figures"><p><b>List of Figures</b></p><dl><dt>2.1. <a href="install-steps.html#compatibility-matrix">Compatibility Matrix</a></dt><dt>2.2. <a href="install-steps.html#id2814973">Assumptions in this Chapter</a></dt><dt>5.1. <a href="upgrade-detail.html#id2828161">Assumptions in this section</a></dt><dt>7.1. <a href="tutorial-newpackage.html#id2834530">Assumptions in this section</a></dt><dt>7.2. <a href="tutorial-database.html#id2832515">Database Creation Script - master create file</a></dt><dt>7.3. <a href="tutorial-database.html#id2835314">Database deletion script</a></dt></dl></div><div class="list-of-tables"><p><b>List of Tables</b></p><dl><dt>8.1. <a href="permissions-tediously-explained.html#id2848579"></a></dt><dt>8.2. <a href="permissions-tediously-explained.html#id2849453"></a></dt><dt>8.3. <a href="permissions-tediously-explained.html#id2849653"></a></dt><dt>8.4. <a href="permissions-tediously-explained.html#id2849810"></a></dt><dt>8.5. <a href="permissions-tediously-explained.html#id2849933"></a></dt><dt>8.6. <a href="permissions-tediously-explained.html#id2853048"></a></dt><dt>8.7. <a href="permissions-tediously-explained.html#id2853271"></a></dt><dt>8.8. <a href="permissions-tediously-explained.html#id2853457"></a></dt><dt>8.9. <a href="permissions-tediously-explained.html#id2854552"></a></dt><dt>8.10. <a href="permissions-tediously-explained.html#id2854930"></a></dt><dt>8.11. <a href="permissions-tediously-explained.html#id2855150"></a></dt><dt>8.12. <a href="permissions-tediously-explained.html#id2855787"></a></dt><dt>10.1. <a href="i18n.html#id2883361"></a></dt><dt>10.2. <a href="i18n.html#id2883032"></a></dt></dl></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"></td><td width="40%" align="right"> <a accesskey="n" href="for-everyone.html">Next</a></td></tr><tr><td width="40%" align="left"> </td><td width="20%" align="center"></td><td width="40%" align="right"> Part�I.�OpenACS For Everyone</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/index.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/individual-programs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/individual-programs.html,v diff -u -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/individual-programs.html 31 Oct 2003 10:54:19 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/individual-programs.html 5 Nov 2003 11:48:10 -0000 1.11 @@ -1,4 +1,4 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Prerequisite Software</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-overview.html" title="Chapter�2.�Installation Overview"><link rel="previous" href="install-overview.html" title="Chapter�2.�Installation Overview"><link rel="next" href="complete-install.html" title="Chapter�3.�Complete Installation"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-overview.html">Prev</a> </td><th width="60%" align="center">Chapter�2.�Installation Overview</th><td width="20%" align="right"> <a accesskey="n" href="complete-install.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="individual-programs"></a>Prerequisite Software</h2></div></div><div></div></div><div class="authorblurb"><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Prerequisite Software</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-overview.html" title="Chapter�2.�Installation Overview"><link rel="previous" href="install-steps.html" title="Basic Steps"><link rel="next" href="complete-install.html" title="Chapter�3.�Complete Installation"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-steps.html">Prev</a> </td><th width="60%" align="center">Chapter�2.�Installation Overview</th><td width="20%" align="right"> <a accesskey="n" href="complete-install.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="individual-programs"></a>Prerequisite Software</h2></div></div><div></div></div><div class="authorblurb"><p> by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a><br> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. @@ -42,7 +42,8 @@ to install OpenFTS.</p></li></ul></div></li><li><a name="source-tdom"></a><p><b>tDOM, REQUIRED.�</b>OpenACS 5.0.0a4 stores queries in XML files, so we use an AOLserver module called tDOM to parse these files. (This replaces libxml2, which - was used prior to 4.6.4.) tDOM is available from <a href="http://tdom.org" target="_top">http://tdom.org</a>).</p></li><li><p><b>Web Server.�</b>The web server handles incoming HTTP requests, provides + was used prior to 4.6.4.) tDOM is available from <a href="http://www.tdom.org" target="_top">http://www.tdom.org</a>).</p></li><li><a name="source-tclwebtest"></a><p><b>tclwebtest, OPTIONAL.�</b>tclwebtest 0.3 is a tool for testing web interfaces + via tcl scripts. <a href="http://sourceforge.net/project/showfiles.php?group_id=31075" target="_top">http://sourceforge.net/project/showfiles.php?group_id=31075</a>.</p></li><li><p><b>Web Server.�</b>The web server handles incoming HTTP requests, provides a runtime environment for OpenACS's tcl code, connects to the database, sends out HTTP responses, and logs requests and errors. OpenACS uses AOLserver; some people have had success @@ -91,7 +92,7 @@ </a>, OPTIONAL.�</b>Provides LDAP capabilities for AOLserver. You need this if you want to use LDAP authentication in OpenACS.</p></li><li><a name="openfts-download"></a><p><b><a href="http://unc.dl.sourceforge.net/sourceforge/openfts/Search-OpenFTS-tcl-0.3.2.tar.gz" target="_top">OpenFTS TCL 0.3.2</a>, OPTIONAL.�</b>Adds full-text-search to PostGreSQL and includes a driver for AOLserver. You need this if you want users - to be able to search for any text on your site.</p></li><li><p><a name="analog-download"></a><b><a href="http://www.analog.cx/analog-5.31.tar.gz" target="_top">Analog 5.31</a>, OPTIONAL.�</b>This program examines web server request logs, looks up + to be able to search for any text on your site.</p></li><li><p><a name="analog-download"></a><b><a href="http://www.analog.cx/analog-5.32.tar.gz" target="_top">Analog 5.32</a>, OPTIONAL.�</b>This program examines web server request logs, looks up DNS values, and produces a report. You need this if you want to see how much traffic your site is getting.</p></li></ul></div></li><li><p><b>Database.�</b>The data on your site (for example, user names and passwords, calender entries, and notes) is stored in the database. @@ -110,9 +111,8 @@ incoming and outgoing mail. The Reference Platform uses Qmail; any MTA that provides a sendmail wrapper (that is, that can be invoked by calling the sendmail program with the - same variables that sendmail expects) can be used.</p><div class="itemizedlist"><ul type="disc"><li><p><a name="qmail-download"></a><b><a href="http://cr.yp.to/software/qmail-1.03.tar.gz" target="_top">Qmail 1.03</a>, OPTIONAL.�</b>You need this (or a different Mail Transport - Agent) if you want your webserver to send and - receive email.</p></li><li><p><a name="ucspi-download"></a><b><a href="http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz" target="_top">ucspi-tcp 0.88</a>, OPTIONAL.�</b>This program listens for incoming TCP connections and + same variables that sendmail expects) can be used.</p><div class="itemizedlist"><ul type="disc"><li><p><a name="qmail-download"></a><b><a href="http://www.qmail.org/netqmail/" target="_top">Netqmail 1.04</a>, OPTIONAL.�</b>You need this (or a different Mail Transport + Agent) if you want your webserver to send and receive email.</p></li><li><p><a name="ucspi-download"></a><b><a href="http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz" target="_top">ucspi-tcp 0.88</a>, OPTIONAL.�</b>This program listens for incoming TCP connections and hands them to a program. We use it instead of inetd, which is insecure. You need this if you are running qmail.</p></li></ul></div></li></ul></div></li><li><p><b>DocBook, OPTIONAL.�</b>(docbook-xml v4.2, docbook-xsl v1.56, libxslt 1.0.21, xsltproc 1.0.21). You need this to write or edit documentation. @@ -125,4 +125,4 @@ need this if you want to track old versions of your files, do controlled deployment of code from development to production, or get or contribute development code from openacs.org.</p></li></ul></div></li></ul></div><div class="cvstag">($Id: software.xml,v 1.8 2003/10/29 - 09:01:09 joela Exp $)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-overview.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="complete-install.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter�2.�Installation Overview </td><td width="20%" align="center"><a accesskey="u" href="install-overview.html">Up</a></td><td width="40%" align="right"> Chapter�3.�Complete Installation</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/individual-programs.html#comments">View comments on this page at openacs.org</a></center></body></html> + 09:01:09 joela Exp $)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-steps.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="complete-install.html">Next</a></td></tr><tr><td width="40%" align="left">Basic Steps </td><td width="20%" align="center"><a accesskey="u" href="install-overview.html">Up</a></td><td width="40%" align="right"> Chapter�3.�Complete Installation</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/individual-programs.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/install-cvs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-cvs.html,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/install-cvs.html 31 Oct 2003 15:57:34 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/install-cvs.html 5 Nov 2003 11:48:10 -0000 1.10 @@ -1,4 +1,4 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Initialize CVS (OPTIONAL)</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix�B.�Install additional supporting software"><link rel="previous" href="openacs-unpack.html" title="Unpack the OpenACS tarball"><link rel="next" href="psgml-for-emacs.html" title="Add PSGML commands to emacs init file (OPTIONAL)"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="openacs-unpack.html">Prev</a> </td><th width="60%" align="center">Appendix�B.�Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="psgml-for-emacs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-cvs"></a>Initialize CVS (OPTIONAL)</h2></div></div><div></div></div><a class="indexterm" name="id2835414"></a><p>CVS is a source control system. Create and initialize a +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Initialize CVS (OPTIONAL)</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix�B.�Install additional supporting software"><link rel="previous" href="openacs-unpack.html" title="Unpack the OpenACS tarball"><link rel="next" href="psgml-for-emacs.html" title="Add PSGML commands to emacs init file (OPTIONAL)"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="openacs-unpack.html">Prev</a> </td><th width="60%" align="center">Appendix�B.�Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="psgml-for-emacs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-cvs"></a>Initialize CVS (OPTIONAL)</h2></div></div><div></div></div><a class="indexterm" name="id2835372"></a><p>CVS is a source control system. Create and initialize a directory for a local cvs repository.</p><pre class="screen">[root@yourserver tmp]# <b class="userinput"><tt>mkdir /cvsroot</tt></b> [root@yourserver tmp]#<b class="userinput"><tt> cvs -d /cvsroot init</tt></b> [root@yourserver tmp]# Index: openacs-4/packages/acs-core-docs/www/install-daemontools.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-daemontools.html,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/install-daemontools.html 31 Oct 2003 15:57:34 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/install-daemontools.html 5 Nov 2003 11:48:10 -0000 1.10 @@ -3,11 +3,7 @@ installed in /package. These commands install daemontools and svgroup. svgroup is a script for granting permissions, to allow users other than root to use daemontools for specific - services.</p><div class="orderedlist"><ol type="1"><li><p>Install Daemontools</p><a class="indexterm" name="id2835528"></a><div class="itemizedlist"><ul type="disc"><li><p>Red Hat</p><p>Make sure you have the source tarball in - <tt class="computeroutput">/tmp</tt>, or <a href="individual-programs.html#daemontools-download">download it</a>. (The -p - flag in mkdir causes all implied directories in the path - to be made as well.)</p><p>(Red Hat 9.0: put -</p><pre class="programlisting">#include <errno.h></pre><p> as the first line of <tt class="computeroutput">/package/admin/daemontools-0.76/src/error.h</tt>. <a href="http://www.riverside.org/archive/html/djbdns/2003-01/msg00307.html" target="_top">More information</a>)</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>mkdir -p /package</tt></b> + services.</p><div class="orderedlist"><ol type="1"><li><p>Install Daemontools</p><a class="indexterm" name="id2835486"></a><p><a href="individual-programs.html#daemontools-download">download daemontools</a> and install it.</p><div class="itemizedlist"><ul type="disc"><li><p>Red Hat 8</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>mkdir -p /package</tt></b> [root@yourserver root]# <b class="userinput"><tt>chmod 1755 /package/</tt></b> [root@yourserver root]# <b class="userinput"><tt>cd /package/</tt></b> [root@yourserver package]# <b class="userinput"><tt>tar xzf /tmp/daemontools-0.76.tar.gz</tt></b> @@ -24,6 +20,42 @@ cd /package tar xzf /tmp/daemontools-0.76.tar.gz cd admin/daemontools-0.76 +package/install</span></pre></pre></li><li><p>Red Hat 9</p><p>Make sure you have the source tarball in + <tt class="computeroutput">/tmp</tt>, or <a href="individual-programs.html#daemontools-download">download it</a>. +</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>mkdir -p /package</tt></b> +[root@yourserver root]# <b class="userinput"><tt>chmod 1755 /package/</tt></b> +[root@yourserver root]# <b class="userinput"><tt>cd /package/</tt></b> +[root@yourserver package]# <b class="userinput"><tt>tar xzf /tmp/daemontools-0.76.tar.gz</tt></b> +[root@yourserver package]# <b class="userinput"><tt>cd admin</tt></b> +[root@yourserver admin]# <b class="userinput"><tt>wget http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch</tt></b> +--14:19:24-- http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch + => `daemontools-0.76.errno.patch' +Resolving moni.csi.hu... done. +Connecting to moni.csi.hu[141.225.11.87]:80... connected. +HTTP request sent, awaiting response... 200 OK +Length: 355 [text/plain] + +100%[====================================>] 355 346.68K/s ETA 00:00 + +14:19:24 (346.68 KB/s) - `daemontools-0.76.errno.patch' saved [355/355] + +[root@yourserver admin]# <b class="userinput"><tt>cd daemontools-0.76</tt></b> +[root@yourserver daemontools-0.76]# <b class="userinput"><tt>patch -p1 < ../daemontools-0.76.errno.patch</tt></b> +[root@yourserver daemontools-0.76]# <b class="userinput"><tt>package/install</tt></b> +Linking ./src/* into ./compile... +(many lines omitted) +Creating /service... +Adding svscanboot to inittab... +init should start svscan now. +[root@yourserver root]# +<pre class="action"><span class="action">mkdir -p /package +chmod 1755 /package +cd /package +tar xzf /tmp/daemontools-0.76.tar.gz +cd admin +wget http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch +cd daemontools-0.76 +patch -p1 < ../daemontools-0.76.errno.patch package/install</span></pre></pre></li><li><p>Debian</p><pre class="screen">root:~# <b class="userinput"><tt>apt-get install daemontools-installer</tt></b> root:~# <b class="userinput"><tt>build-daemontools</tt></b></pre></li></ul></div></li><li><p>Verify that svscan is running. If it is, you should see these two processes running:</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>ps -auxw | grep service</tt></b> Index: openacs-4/packages/acs-core-docs/www/install-full-text-search.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/install-full-text-search.html,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/install-full-text-search.html 31 Oct 2003 15:57:34 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/install-full-text-search.html 5 Nov 2003 11:48:10 -0000 1.10 @@ -1,4 +1,4 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Install Full Text Search</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix�B.�Install additional supporting software"><link rel="previous" href="install-nspam.html" title="Install nspam"><link rel="next" href="install-nsopenssl.html" title="Install nsopenssl"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-nspam.html">Prev</a> </td><th width="60%" align="center">Appendix�B.�Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="install-nsopenssl.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-full-text-search"></a>Install Full Text Search</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-openfts"></a>Install OpenFTS module</h3></div></div><div></div></div><a class="indexterm" name="id2834281"></a><p>If you want full text search, and you are running PostGreSQL, install this module to support FTS. Do this step after you have installed both PostGreSQL and +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Install Full Text Search</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix�B.�Install additional supporting software"><link rel="previous" href="install-nspam.html" title="Install nspam"><link rel="next" href="install-nsopenssl.html" title="Install nsopenssl"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-nspam.html">Prev</a> </td><th width="60%" align="center">Appendix�B.�Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="install-nsopenssl.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-full-text-search"></a>Install Full Text Search</h2></div></div><div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-openfts"></a>Install OpenFTS module</h3></div></div><div></div></div><a class="indexterm" name="id2836580"></a><p>If you want full text search, and you are running PostGreSQL, install this module to support FTS. Do this step after you have installed both PostGreSQL and Aolserver. You will need the <a href="individual-programs.html#openfts-download">openfts tarball</a> in <tt class="computeroutput">/tmp</tt>.</p><div class="orderedlist"><ol type="1"><li><p>Install Tsearch. This is a PostGreSQL module that OpenFTS requires.</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>su - postgres</tt></b> @@ -74,7 +74,7 @@ make su postgres make install -exit</span></pre></pre></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-openfts-postgres"></a>Install OpenFTS prerequisites in PostGreSQL instance</h3></div></div><div></div></div><a class="indexterm" name="id2834534"></a><p>If you are installing Full Text Search, add required +exit</span></pre></pre></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-openfts-postgres"></a>Install OpenFTS prerequisites in PostGreSQL instance</h3></div></div><div></div></div><a class="indexterm" name="id2836832"></a><p>If you are installing Full Text Search, add required packages to the new database. (In order for full text search to work, you must also <a href="install-full-text-search.html#install-openfts" title="Install OpenFTS module">install</a> the PostGreSQL OpenFTS module and prerequisites.)</p><pre class="screen">[service0@yourserver service0]$ <b class="userinput"><tt>/usr/local/pgsql/bin/psql <span class="replaceable"><span class="replaceable">service0</span></span> -f /usr/local/src/postgresql-7.2.4/contrib/tsearch/tsearch.sql</tt></b> Index: openacs-4/packages/acs-core-docs/www/install-more-software.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-more-software.html,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/install-more-software.html 28 Oct 2003 22:07:34 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/install-more-software.html 5 Nov 2003 11:48:10 -0000 1.5 @@ -1,4 +1,4 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Appendix�B.�Install additional supporting software</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-admin.html" title="Part�II.�Administrator's Guide"><link rel="previous" href="install-redhat.html" title="Appendix�A.�Install Red Hat 8.0"><link rel="next" href="openacs-unpack.html" title="Unpack the OpenACS tarball"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-redhat.html">Prev</a> </td><th width="60%" align="center">Part�II.�Administrator's Guide</th><td width="20%" align="right"> <a accesskey="n" href="openacs-unpack.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="install-more-software"></a>Appendix�B.�Install additional supporting software</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="openacs-unpack.html">Unpack the OpenACS tarball</a></dt><dt><a href="install-cvs.html">Initialize CVS (OPTIONAL)</a></dt><dt><a href="psgml-for-emacs.html">Add PSGML commands to emacs init file (OPTIONAL)</a></dt><dt><a href="install-daemontools.html">Install Daemontools (OPTIONAL)</a></dt><dt><a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt><dt><a href="analog-install.html">Install Analog web file analyzer</a></dt><dt><a href="install-nspam.html">Install nspam</a></dt><dt><a href="install-full-text-search.html">Install Full Text Search</a></dt><dt><a href="install-nsopenssl.html">Install nsopenssl</a></dt></dl></div><div class="authorblurb"><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Appendix�B.�Install additional supporting software</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-admin.html" title="Part�II.�Administrator's Guide"><link rel="previous" href="install-redhat.html" title="Appendix�A.�Install Red Hat 8/9"><link rel="next" href="openacs-unpack.html" title="Unpack the OpenACS tarball"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-redhat.html">Prev</a> </td><th width="60%" align="center">Part�II.�Administrator's Guide</th><td width="20%" align="right"> <a accesskey="n" href="openacs-unpack.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="install-more-software"></a>Appendix�B.�Install additional supporting software</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="openacs-unpack.html">Unpack the OpenACS tarball</a></dt><dt><a href="install-cvs.html">Initialize CVS (OPTIONAL)</a></dt><dt><a href="psgml-for-emacs.html">Add PSGML commands to emacs init file (OPTIONAL)</a></dt><dt><a href="install-daemontools.html">Install Daemontools (OPTIONAL)</a></dt><dt><a href="install-qmail.html">Install qmail (OPTIONAL)</a></dt><dt><a href="analog-install.html">Install Analog web file analyzer</a></dt><dt><a href="install-nspam.html">Install nspam</a></dt><dt><a href="install-full-text-search.html">Install Full Text Search</a></dt><dt><a href="install-nsopenssl.html">Install nsopenssl</a></dt><dt><a href="install-tclwebtest.html">Install tclwebtest.</a></dt></dl></div><div class="authorblurb"><p> by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a><br> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. @@ -7,4 +7,4 @@ that you begin each continuous block of commands as root, and you should end each block as root. It doesn't care which directory you start in. Text instructions always precede the commands they - refer to.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-redhat.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="openacs-unpack.html">Next</a></td></tr><tr><td width="40%" align="left">Appendix�A.�Install Red Hat 8.0 </td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right"> Unpack the OpenACS tarball</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/install-more-software.html#comments">View comments on this page at openacs.org</a></center></body></html> + refer to.</p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-redhat.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="openacs-unpack.html">Next</a></td></tr><tr><td width="40%" align="left">Appendix�A.�Install Red Hat 8/9 </td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right"> Unpack the OpenACS tarball</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/install-more-software.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/install-nsopenssl.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-nsopenssl.html,v diff -u -r1.5 -r1.6 --- openacs-4/packages/acs-core-docs/www/install-nsopenssl.html 28 Oct 2003 22:07:34 -0000 1.5 +++ openacs-4/packages/acs-core-docs/www/install-nsopenssl.html 5 Nov 2003 11:48:10 -0000 1.6 @@ -1,4 +1,4 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Install nsopenssl</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix�B.�Install additional supporting software"><link rel="previous" href="install-full-text-search.html" title="Install Full Text Search"><link rel="next" href="credits.html" title="Appendix�C.�Credits"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-full-text-search.html">Prev</a> </td><th width="60%" align="center">Appendix�B.�Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="credits.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-nsopenssl"></a>Install nsopenssl</h2></div></div><div></div></div><p>This AOLserver module is required if you want people to connect to your site via +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Install nsopenssl</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix�B.�Install additional supporting software"><link rel="previous" href="install-full-text-search.html" title="Install Full Text Search"><link rel="next" href="install-tclwebtest.html" title="Install tclwebtest."><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-full-text-search.html">Prev</a> </td><th width="60%" align="center">Appendix�B.�Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="install-tclwebtest.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-nsopenssl"></a>Install nsopenssl</h2></div></div><div></div></div><p>This AOLserver module is required if you want people to connect to your site via https. These commands compile nsopenssl and install it, along with a tcl helper script to handle https connections. You will also need ssl certificates. Because those should @@ -8,7 +8,8 @@ the <a href="individual-programs.html#nsopenssl-download">nsopenssl tarball</a> in <tt class="computeroutput">/tmp</tt>.</p><p>Red Hat 9 note: see <a href="http://openacs.org/forums/message-view?message_id=92882" target="_top">this thread</a> for details on compiling nsopenssl.)</p><pre class="screen">[root@yourserver bin]#<b class="userinput"><tt> cd /usr/local/src/aolserver</tt></b> -[root@yourserver aolserver]# <b class="userinput"><tt>tar xzf /tmp/nsopenssl-2.1.tar.gz</tt></b> +[root@yourserver aolserver]# <b class="userinput"><tt>wget --passive http://www.scottg.net/download/nsopenssl-2.1.tar.gz</tt></b> +[root@yourserver aolserver]# <b class="userinput"><tt>tar xzf nsopenssl-2.1.tar.gz </tt></b> [root@yourserver aolserver]# <b class="userinput"><tt>cd nsopenssl-2.1</tt></b> [root@yourserver nsopenssl-2.1]# <b class="userinput"><tt>make OPENSSL=/usr/local/ssl</tt></b> gcc -I/usr/local/ssl/include -I../aolserver/include -D_REENTRANT=1 -DNDEBUG=1 -g -fPIC -Wall -Wno-unused -mcpu=i686 -DHAVE_CMMSG=1 -DUSE_FIONREAD=1 -DHAVE_COND_EINTR=1 -c -o nsopenssl.o nsopenssl.c @@ -18,7 +19,9 @@ [root@yourserver nsopenssl-2.1]# <b class="userinput"><tt>cp https.tcl /usr/local/aolserver/modules/tcl/</tt></b> [root@yourserver nsopenssl-2.1]# <pre class="action"><span class="action">cd /usr/local/src/aolserver -tar xzf /tmp/nsopenssl-2.1.tar.gz +wget --passive +http://www.scottg.net/download/nsopenssl-2.1.tar.gz +tar xzf nsopenssl-2.1.tar.gz cd nsopenssl-2.1 make OPENSSL=/usr/local/ssl cp nsopenssl.so /usr/local/aolserver/bin @@ -29,4 +32,4 @@ cd nsopenssl-2.1 make OPENSSL=/usr/lib/ssl cp nsopenssl.so /usr/local/aolserver/bin -cp https.tcl /usr/local/aolserver/modules/tcl/</span></pre></pre></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-full-text-search.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="credits.html">Next</a></td></tr><tr><td width="40%" align="left">Install Full Text Search </td><td width="20%" align="center"><a accesskey="u" href="install-more-software.html">Up</a></td><td width="40%" align="right"> Appendix�C.�Credits</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/install-nsopenssl.html#comments">View comments on this page at openacs.org</a></center></body></html> +cp https.tcl /usr/local/aolserver/modules/tcl/</span></pre></pre></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-full-text-search.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-tclwebtest.html">Next</a></td></tr><tr><td width="40%" align="left">Install Full Text Search </td><td width="20%" align="center"><a accesskey="u" href="install-more-software.html">Up</a></td><td width="40%" align="right"> Install tclwebtest.</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/install-nsopenssl.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/install-overview.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-overview.html,v diff -u -r1.16 -r1.17 --- openacs-4/packages/acs-core-docs/www/install-overview.html 31 Oct 2003 10:54:19 -0000 1.16 +++ openacs-4/packages/acs-core-docs/www/install-overview.html 5 Nov 2003 11:48:10 -0000 1.17 @@ -1,5 +1,5 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter�2.�Installation Overview</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-admin.html" title="Part�II.�Administrator's Guide"><link rel="previous" href="acs-admin.html" title="Part�II.�Administrator's Guide"><link rel="next" href="individual-programs.html" title="Prerequisite Software"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="acs-admin.html">Prev</a> </td><th width="60%" align="center">Part�II.�Administrator's Guide</th><td width="20%" align="right"> <a accesskey="n" href="individual-programs.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="install-overview"></a>Chapter�2.�Installation Overview</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="individual-programs.html">Prerequisite Software</a></dt></dl></div><div class="authorblurb"><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Chapter�2.�Installation Overview</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-admin.html" title="Part�II.�Administrator's Guide"><link rel="previous" href="acs-admin.html" title="Part�II.�Administrator's Guide"><link rel="next" href="install-steps.html" title="Basic Steps"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="acs-admin.html">Prev</a> </td><th width="60%" align="center">Part�II.�Administrator's Guide</th><td width="20%" align="right"> <a accesskey="n" href="install-steps.html">Next</a></td></tr></table><hr></div><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="install-overview"></a>Chapter�2.�Installation Overview</h2></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="install-steps.html">Basic Steps</a></dt><dt><a href="individual-programs.html">Prerequisite Software</a></dt></dl></div><div class="authorblurb"><p> by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </p></div>Overview Section Missing</div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="acs-admin.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="individual-programs.html">Next</a></td></tr><tr><td width="40%" align="left">Part�II.�Administrator's Guide </td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right"> Prerequisite Software</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/install-overview.html#comments">View comments on this page at openacs.org</a></center></body></html> + </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="acs-admin.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="install-steps.html">Next</a></td></tr><tr><td width="40%" align="left">Part�II.�Administrator's Guide </td><td width="20%" align="center"><a accesskey="u" href="acs-admin.html">Up</a></td><td width="40%" align="right"> Basic Steps</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/install-overview.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/install-qmail.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-qmail.html,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/install-qmail.html 31 Oct 2003 15:57:34 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/install-qmail.html 5 Nov 2003 11:48:10 -0000 1.10 @@ -1,7 +1,17 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Install qmail (OPTIONAL)</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix�B.�Install additional supporting software"><link rel="previous" href="install-daemontools.html" title="Install Daemontools (OPTIONAL)"><link rel="next" href="analog-install.html" title="Install Analog web file analyzer"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-daemontools.html">Prev</a> </td><th width="60%" align="center">Appendix�B.�Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="analog-install.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-qmail"></a>Install qmail (OPTIONAL)</h2></div></div><div></div></div><p>Qmail is a Mail Transfer Agent. It handles incoming and outgoing mail. Install qmail if you want your OpenACS server to send and receive mail, and you don't want to use an alternate MTA.</p><div class="orderedlist"><ol type="1"><li><p><b>Install ucspi.�</b>This program handles incoming tcp connections. - <a href="individual-programs.html#ucspi-download">Download ucspi</a> and install it.</p><p>Red Hat 9.0: put </p><pre class="programlisting">#include <errno.h></pre><p> as the first line of <tt class="computeroutput">error.h</tt>. <a href="http://www.riverside.org/archive/html/djbdns/2003-01/msg00307.html" target="_top">More information</a>)</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>cd /usr/local/src</tt></b> -[root@yourserver src]# <b class="userinput"><tt>tar xzf /tmp/ucspi-tcp-0.88.tar.gz</tt></b> -[root@yourserver src]# <b class="userinput"><tt>cd ucspi-tcp-0.88</tt></b> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Install qmail (OPTIONAL)</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix�B.�Install additional supporting software"><link rel="previous" href="install-daemontools.html" title="Install Daemontools (OPTIONAL)"><link rel="next" href="analog-install.html" title="Install Analog web file analyzer"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-daemontools.html">Prev</a> </td><th width="60%" align="center">Appendix�B.�Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="analog-install.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-qmail"></a>Install qmail (OPTIONAL)</h2></div></div><div></div></div><p>Qmail is a Mail Transfer Agent. It handles incoming and + outgoing mail. Install qmail if you want your OpenACS server to + send and receive mail, and you don't want to use an alternate + MTA.</p><p>Red Hat 9: all djb tools (qmail, daemontools, ucspi) will + fail to compile in Red Hat 9 because of changes to glibc (<a href="http://moni.csi.hu/pub/glibc-2.3.1/" target="_top">patches</a>)</p><div class="orderedlist"><ol type="1"><li><p><b>Install ucspi.�</b>This program handles incoming tcp connections. + <a href="individual-programs.html#ucspi-download">Download ucspi</a> and install it.</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>cd /usr/local/src</tt></b> +[root@yourserver src]# <b class="userinput"><tt>wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz</tt></b> +[root@yourserver src]# <b class="userinput"><tt>tar xzf ucspi-tcp-0.88.tar.gz</tt></b> +<pre class="action"><span class="action">cd /usr/local/src +wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz +tar xzf ucspi-tcp-0.88.tar.gz </span></pre></pre><p>Red Hat 9 only</p><pre class="screen"><pre class="action"><span class="action">wget http://moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.errno.patch +cd ucspi-tcp-0.88 +patch -p1 <../ucspi-tcp-0.88.errno.patch +cd ..</span></pre></pre><p>All platforms continue:</p><pre class="screen">[root@yourserver src]# <b class="userinput"><tt>cd ucspi-tcp-0.88</tt></b> [root@yourserver ucspi-tcp-0.88]#<b class="userinput"><tt> make</tt></b> ( cat warn-auto.sh; \ echo 'main="$1"; shift'; \ @@ -12,16 +22,15 @@ ./install ./instcheck [root@yourserver ucspi-tcp-0.88]# -<pre class="action"><span class="action">cd /usr/local/src -tar xzf /tmp/ucspi-tcp-0.88.tar.gz +<pre class="action"><span class="action"> cd ucspi-tcp-0.88 make make setup check</span></pre></pre><p>Verify that ucspi-tcp was installed successfully by running the tcpserver program which is part of ucspi-tcp:</p><pre class="screen">[root@yourserver ucspi-tcp-0.88]# <b class="userinput"><tt>tcpserver</tt></b> tcpserver: usage: tcpserver [ -1UXpPhHrRoOdDqQv ] [ -c limit ] [ -x rules.cdb ] [ -B banner ] [ -g gid ] [ -u uid ] [ -b backlog ] [ -l localname ] [ -t timeout ] host port program [root@yourserver ucspi-tcp-0.88]# -</pre><p><a class="indexterm" name="id2835832"></a> +</pre><p><a class="indexterm" name="id2835878"></a> (I'm not sure if this next step is 100% necessary, but when I skip it I get problems. If you get the error <tt class="computeroutput">553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)</tt> then you need to do this.) AOLServer sends outgoing mail via the ns_sendmail command, which pipes a command to the sendmail executable. Or, in our @@ -35,14 +44,21 @@ send outgoing mail.</p><pre class="screen">[root@yourserver ucspi-tcp-0.88]# <b class="userinput"><tt>cp /tmp/openacs-5.0.0a4/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp</tt></b> [root@yourserver ucspi-tcp-0.88]# <b class="userinput"><tt>tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp</tt></b> <pre class="action"><span class="action">cp /tmp/openacs-5.0.0a4/packages/acs-core-docs/www/files/tcp.smtp.txt /etc/tcp.smtp -tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp </span></pre></pre></li><li><p><b>Install Qmail.�</b><a class="indexterm" name="id2835898"></a></p><p><a href="individual-programs.html#ucspi-download">Download qmail</a>, - set up the standard supporting users and build the binaries:</p><p>Red Hat 9.0: Put -</p><pre class="programlisting">#include <errno.h></pre><p> -as the first line of - <tt class="computeroutput">/usr/local/src/qmail-1.03/error.h</tt>. - <a href="http://www.riverside.org/archive/html/djbdns/2003-01/msg00307.html" target="_top">More - information</a></p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>cd /usr/local/src</tt></b> -[root@yourserver src]# <b class="userinput"><tt>tar xzf /tmp/qmail-1.03.tar.gz</tt></b> +tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp </span></pre></pre></li><li><p><b>Install Qmail.�</b><a class="indexterm" name="id2835945"></a></p><p><a href="individual-programs.html#ucspi-download">Download qmail</a>, + set up the standard supporting users and build the binaries:</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>cd /usr/local/src</tt></b> +[root@yourserver src]# <b class="userinput"><tt>wget http://www.qmail.org/netqmail-1.04.tar.gz</tt></b> +[root@yourserver src]# <b class="userinput"><tt>tar xzf netqmail-1.04.tar.gz</tt></b> +--15:04:11-- http://www.qmail.org/netqmail-1.04.tar.gz + => `netqmail-1.04.tar.gz' +Resolving www.qmail.org... done. +Connecting to www.qmail.org[192.203.178.37]:80... connected. +HTTP request sent, awaiting response... 200 OK +Length: 242,310 [application/x-gunzip] + +88% [===============================> ] 214,620 22.93K/s ETA 00:01 + +15:04:21 (24.04 KB/s) - `netqmail-1.04.tar.gz' saved [242310/242310] + [root@yourserver src]# <b class="userinput"><tt>mkdir /var/qmail</tt></b> [root@yourserver src]#<b class="userinput"><tt> groupadd nofiles</tt></b> [root@yourserver src]# <b class="userinput"><tt>useradd -g nofiles -d /var/qmail/alias alias</tt></b> @@ -53,16 +69,28 @@ [root@yourserver src]# <b class="userinput"><tt>useradd -g qmail -d /var/qmail qmailq</tt></b> [root@yourserver src]# <b class="userinput"><tt>useradd -g qmail -d /var/qmail qmailr</tt></b> [root@yourserver src]# <b class="userinput"><tt>useradd -g qmail -d /var/qmail qmails</tt></b> -[root@yourserver src]# <b class="userinput"><tt>cd qmail-1.03</tt></b> -[root@yourserver qmail-1.03]# <b class="userinput"><tt>make setup check</tt></b> +[root@yourserver src]# <b class="userinput"><tt>cd netqmail-1.04</tt></b> +[root@yourserver netqmail-1.04]# <b class="userinput"><tt>./collate.sh</tt></b> + +You should see 7 lines of text below. If you see anything +else, then something might be wrong. +[1] Extracting qmail-1.03... +[2] Patching qmail-1.03 into netqmail-1.04. Look for errors below: + 20 +[4] The previous line should say 20 if you used GNU patch. +[5] Renaming qmail-1.03 to netqmail-1.04... +[6] Continue installing qmail using the instructions found at: +[7] http://www.lifewithqmail.org/lwq.html#installation +[root@yourserver netqmail-1.04]# <b class="userinput"><tt>cd netqmail-1.04</tt></b> +[root@yourserver netqmail-1.04]# <b class="userinput"><tt>make setup check</tt></b> ( cat warn-auto.sh; \ echo CC=\'`head -1 conf-cc`\'; \ (many lines omitted) ./install ./instcheck -[root@yourserver qmail-1.03]# <pre class="action"><span class="action">cd /usr/local/src -tar xzf /tmp/qmail-1.03.tar.gz +wget http://www.qmail.org/netqmail-1.04.tar.gz +tar xzf netqmail-1.04.tar.gz mkdir /var/qmail groupadd nofiles useradd -g nofiles -d /var/qmail/alias alias @@ -73,8 +101,10 @@ useradd -g qmail -d /var/qmail qmailq useradd -g qmail -d /var/qmail qmailr useradd -g qmail -d /var/qmail qmails -cd qmail-1.03 -make setup check</span></pre></pre><p>Replace sendmail with qmail's wrapper.</p><a class="indexterm" name="id2833798"></a><pre class="screen">[root@yourserver qmail-1.03]# <b class="userinput"><tt>rm -f /usr/bin/sendmail /usr/sbin/sendmail</tt></b> +cd netqmail-1.04 +./collate.sh +cd netqmail-1.04 +make setup check</span></pre></pre><p>Replace sendmail with qmail's wrapper.</p><a class="indexterm" name="id2836096"></a><pre class="screen">[root@yourserver qmail-1.03]# <b class="userinput"><tt>rm -f /usr/bin/sendmail /usr/sbin/sendmail</tt></b> [root@yourserver qmail-1.03]# <b class="userinput"><tt>ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail</tt></b> [root@yourserver qmail-1.03]# <pre class="action"><span class="action">rm -f /usr/bin/sendmail /usr/sbin/sendmail @@ -96,7 +126,7 @@ <pre class="action"><span class="action">cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root chmod 644 ~alias/.qmail* /var/qmail/bin/maildirmake ~alias/Maildir/ -chown -R alias.nofiles /var/qmail/alias/Maildir</span></pre></pre><a class="indexterm" name="id2833919"></a><p>Configure qmail to use the Maildir delivery format +chown -R alias.nofiles /var/qmail/alias/Maildir</span></pre></pre><a class="indexterm" name="id2836218"></a><p>Configure qmail to use the Maildir delivery format (instead of mbox), and install a version of the qmail startup script modified to use Maildir.</p><pre class="screen">[root@yourserver alias]# <b class="userinput"><tt>echo "./Maildir" > /var/qmail/bin/.qmail</tt></b> [root@yourserver alias]# <b class="userinput"><tt>cp /tmp/openacs-5.0.0a4/packages/acs-core-docs/www/files/qmail.rc.txt /var/qmail/rc</tt></b> [root@yourserver alias]# <b class="userinput"><tt>chmod 755 /var/qmail/rc</tt></b> @@ -143,7 +173,7 @@ chmod 755 /var/qmail/supervise/qmail-smtpd/run chmod 755 /var/qmail/supervise/qmail-smtpd/log/run ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service -</span></pre></pre><p>Wait ten seconds or so, and then verify that that the four qmail processes are running. If uptimes are 1 second, this may indicate broken scripts that are continuously restarting. In that case, start debugging by checking permissions.</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>qmailctl stat</tt></b> +</span></pre></pre><p>Wait ten seconds or so, and then verify that that the four qmail processes are running. If uptimes don't rise above 1 second, this may indicate broken scripts that are continuously restarting. In that case, start debugging by checking permissions.</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>qmailctl stat</tt></b> /service/qmail-send: up (pid 32700) 430 seconds /service/qmail-send/log: up (pid 32701) 430 seconds /service/qmail-smtpd: up (pid 32704) 430 seconds Index: openacs-4/packages/acs-core-docs/www/install-redhat.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-redhat.html,v diff -u -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/install-redhat.html 31 Oct 2003 15:57:34 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/install-redhat.html 5 Nov 2003 11:48:10 -0000 1.11 @@ -1,4 +1,4 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Appendix�A.�Install Red Hat 8.0</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-admin.html" title="Part�II.�Administrator's Guide"><link rel="previous" href="backup-recovery.html" title="Backup and Recovery"><link rel="next" href="install-more-software.html" title="Appendix�B.�Install additional supporting software"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="backup-recovery.html">Prev</a> </td><th width="60%" align="center">Part�II.�Administrator's Guide</th><td width="20%" align="right"> <a accesskey="n" href="install-more-software.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="install-redhat"></a>Appendix�A.�Install Red Hat 8.0</h2></div></div><div></div></div><div class="authorblurb"><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Appendix�A.�Install Red Hat 8/9</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="acs-admin.html" title="Part�II.�Administrator's Guide"><link rel="previous" href="backup-recovery.html" title="Backup and Recovery"><link rel="next" href="install-more-software.html" title="Appendix�B.�Install additional supporting software"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="backup-recovery.html">Prev</a> </td><th width="60%" align="center">Part�II.�Administrator's Guide</th><td width="20%" align="right"> <a accesskey="n" href="install-more-software.html">Next</a></td></tr></table><hr></div><div class="appendix" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="install-redhat"></a>Appendix�A.�Install Red Hat 8/9</h2></div></div><div></div></div><div class="authorblurb"><p> by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a><br> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. @@ -8,7 +8,8 @@ works and is secure; it should take about an hour. (In my experience, it's almost always a net time savings of several hours to install a new machine from scratch compared to installing each - of these packages installed independently.)</p><p>The installation guide assumes you can do the following on + of these packages installed independently.)</p><p>The installation guide assumes you have:</p><div class="itemizedlist"><ul type="disc"><li><p>A PC with hard drive you can reinstall</p></li><li><p>Red Hat 8.0 or 9.0 install discs</p></li><li><p>A CD with the current <a href="http://www.redhat.com/apps/support/errata/" target="_top">Security + Patches</a> for your version of Red Hat.</p></li></ul></div><p>The installation guide assumes that you can do the following on your platform: </p><div class="itemizedlist"><ul type="disc"><li><p> Adding users, groups, setting passwords @@ -26,12 +27,12 @@ </p><div class="orderedlist"><ol type="1"><li><p><a name="install-first-step"></a>Unplug the network cable from your computer. We don't want to connect to the network until we're sure the computer is secure. -<a class="indexterm" name="id2831174"></a> +<a class="indexterm" name="id2834320"></a> (Wherever you see the word secure, you should always read it as, "secure enough for our purposes, given the amount of work we're willing to exert and the estimated risk and - consequences.")</p></li><li><p>Insert Red Hat 8.0 Disk 1 into the + consequences.")</p></li><li><p>Insert Red Hat 8.0 or 9.0 Disk 1 into the CD-ROM and reboot the computer</p></li><li><p>At the <tt class="computeroutput"><span class="guilabel"><span class="guilabel">boot:</span></span></tt> prompt, press Enter for a @@ -54,7 +55,7 @@ <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Re<u><span class="accel">v</span></u>iew (and modify if needed) the partitions created</span></span></tt> and click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt></p></li><li><p>On the pop-up window asking "Are you sure you want to do this?" click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">Y</span></u>es</span></span></tt> - IF YOU ARE WIPING YOUR HARD DRIVE.</p></li><li><p>Click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt> on the boot loader screen</p></li></ol></div></li><li><p>Configure Networking. <a class="indexterm" name="id2832983"></a> + IF YOU ARE WIPING YOUR HARD DRIVE.</p></li><li><p>Click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt> on the boot loader screen</p></li></ol></div></li><li><p>Configure Networking. <a class="indexterm" name="id2833971"></a> Again, if you know what you're doing, do this step yourself, being sure to note the firewall holes. Otherwise, follow the instructions in this step to set up a computer directly connected to the internet with a dedicated IP address.</p><div class="orderedlist"><ol type="a"><li><p>DHCP is a system by which a computer that @@ -75,19 +76,10 @@ <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Mail (SMTP)</span></span></tt>. In the <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Other <u><span class="accel">p</span></u>orts</span></span></tt> box, enter <b class="userinput"><tt>443, 8000, 8443</tt></b>. Click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt>. -Port 443 is for https (http over ssl), and 8000 and 8443 are http and https access to the development server we'll be setting up.</p></li></ol></div></li><li><p><a class="indexterm" name="id2832549"></a>Select any additional languages you want the +Port 443 is for https (http over ssl), and 8000 and 8443 are http and https access to the development server we'll be setting up.</p></li></ol></div></li><li><p><a class="indexterm" name="id2834112"></a>Select any additional languages you want the computer to support and then click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt></p></li><li><p>Choose your time zone and click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt>.</p></li><li><p>Type in a root -password, twice. To - improve security, we're going to prevent anyone from - connecting to the computer directly as root. Instead, - we'll create a different user, called - <tt class="computeroutput">remadmin</tt>, used solely to - connect to the computer for administration. Click -<tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">A</span></u>dd</span></span></tt> -and enter username <b class="userinput"><tt>remadmin</tt></b> and a password, -twice, then click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">O</span></u>K</span></span></tt>. Then click -<tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt>.</p></li><li><p>On the Package selection page, we're going to +password, twice.</p></li><li><p>On the Package selection page, we're going to uncheck a lot of packages that install software we don't need, and add packages that have stuff we do need. You should install everything we're installing here or the guide may not work for you; you can @@ -96,12 +88,14 @@ risk that's still screened by the firewall, or a resource hog. Just don't install a database or web server, because that would conflict with the database and web server we'll install later. -</p><div class="literallayout"><p>check�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">Editors</span></span></tt>�(this�installs�emacs<a class="indexterm" name="id2832657"></a>),<br> +</p><div class="literallayout"><p>check�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">Editors</span></span></tt>�(this�installs�emacs<a class="indexterm" name="id2834180"></a>),<br> click�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">Details</span></span></tt>�next�to�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">Text-based�Internet</span></span></tt>,�check�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">lynx</span></span></tt>,�and�click�<tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">O</span></u>K</span></span></tt>;<br> -check�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">Authoring�and�Publishing</span></span></tt>�(<a class="indexterm" name="id2832698"></a>this�installs�docbook),<br> +check�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">Authoring�and�Publishing</span></span></tt>�(<a class="indexterm" name="id2834665"></a>this�installs�docbook),<br> uncheck�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">Server�Configuration�Tools</span></span></tt>,<br> uncheck�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">Web�Server</span></span></tt>,<br> uncheck�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">Windows�File�Server</span></span></tt>,<br> +check�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">SQL�Database<br> +Server</span></span></tt>�(this�installs�PostGreSQL,<br> check�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">Development�Tools</span></span></tt>�(this�installs�gmake�and�other�build�tools),<br> uncheck�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">Administration�Tools</span></span></tt>,�and<br> uncheck�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">Printing�Support</span></span></tt>.�</p></div><p>At the bottom, check <tt class="computeroutput"><span class="guilabel"><span class="guilabel"><u><span class="accel">S</span></u>elect Individual Packages</span></span></tt> and click <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">N</span></u>ext</span></span></tt></p></li><li><p>We need to fine-tune the exact list of packages. @@ -111,13 +105,15 @@ <tt class="computeroutput"><span class="guilabel"><span class="guilabel"><u><span class="accel">F</span></u>lat View</span></span></tt> and wait. In a minute, a list of packages will appear.</p><div class="literallayout"><p>uncheck�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">apmd</span></span></tt>�(monitors�power,�not�very�useful�for�servers),�<br> -check�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">ImageMagick</span></span></tt>�(required�for�the�<a class="indexterm" name="id2833246"></a>photo-album�packages,�<br> +check�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">ImageMagick</span></span></tt>�(required�for�the�<a class="indexterm" name="id2834774"></a>photo-album�packages,�<br> uncheck<tt class="computeroutput"><span class="guilabel"><span class="guilabel">isdn4k-utils</span></span></tt>�(unless�you�are�using�isdn,�this�installs�a�useless�daemon),�<br> check�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">mutt</span></span></tt>�(a�mail�program�that�reads�Maildir),<br> uncheck�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">nfs-utils</span></span></tt>�(nfs�is�a�major�security�risk),�<br> uncheck�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">pam-devel</span></span></tt>�(I�don't�remember�why,�but�we�don't�want�this),�<br> uncheck�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">portmap</span></span></tt>,�<br> uncheck�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">postfix</span></span></tt>�(this�is�an�MTA,�but�we're�going�to�install�qmail�later),�<br> +check<br> +<tt class="computeroutput"><span class="guilabel"><span class="guilabel">postgresql-devel</span></span></tt>,<br> uncheck�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">rsh</span></span></tt>�(rsh�is�a�security�hole),�<br> uncheck�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">sendmail</span></span></tt>�(sendmail�is�an�insecure�MTA;�we're�going�to�install�qmail�instead�later),<br> check�<tt class="computeroutput"><span class="guilabel"><span class="guilabel">tcl</span></span></tt>�(we�need�tcl),�and�<br> @@ -139,7 +135,15 @@ </p></li><li><p>After it finishes rebooting and shows the login prompt, log in:</p><pre class="screen">yourserver login: <b class="userinput"><tt>root</tt></b> Password: -[root@yourserver root]#</pre></li><li><p>Lock down SSH</p><div class="orderedlist"><ol type="a"><li><p><a class="indexterm" name="id2833463"></a> +[root@yourserver root]#</pre></li><li><p>Install any security patches. For example, insert your CD with + patches, mount it with <tt class="computeroutput">mount + /dev/cdrom</tt>, then <tt class="computeroutput">cd + /mnt/cdrom</tt>, then <tt class="computeroutput">rpm -UVH + *rpm</tt>. Both Red Hat 8.0 and 9.0 have had both + kernel and openssl/openssh root exploits, so you should be + upgrading all of that. Since you are upgrading the kernel, + reboot after this step. +</p></li><li><p>Lock down SSH</p><div class="orderedlist"><ol type="a"><li><p><a class="indexterm" name="id2835025"></a> SSH is the protocol we use to connect securely to the computer (replacing telnet, which is insecure). sshd is the daemon that listens for incoming @@ -148,8 +152,15 @@ computer as root. Type this into the shell: </p><pre class="screen"><b class="userinput"><tt>emacs /etc/ssh/sshd_config</tt></b></pre></li><li><div class="literallayout"><p>Search�for�the�word�"root"�by�typing�C-s�(that's�emacs-speak�for�control-s)�and�then�<b class="userinput"><tt>root</tt></b>.���<br> Make�the�following�changes:<br> -<pre class="programlisting">#Protocol�2,1</pre>�to�<pre class="programlisting">Protocol�2</pre>�(this�prevents�any�connections�via�SSH�1,�which�is�insecure)<br> -<pre class="programlisting">#PermitRootLogin�yes</pre>�to�<pre class="programlisting">PermitRootLogin�no</pre>�(this�prevents�the�root�use�from�logging�in�via�ssh)<br> +<pre class="programlisting">#Protocol�2,1</pre>�to<br> +������������<pre class="programlisting">Protocol�2</pre>�<br> +������������(this�prevents�any�connections�via�SSH�1,�which�is�insecure)<br> +<pre class="programlisting">#PermitRootLogin�yes</pre>�to<br> +������������<pre class="programlisting">PermitRootLogin�no</pre>�<br> +������������(this�prevents�the�root�user�from�logging�in�remotely�via<br> +������������ssh.��If�you�do�this,�be�sure�to�create�a�remote�access<br> +������������account,�such�as�"remadmin",�which�you�can�use�to�get�ssh<br> +������������before�using�"su"�to�become�root.)<br> <pre class="programlisting">#PermitEmptyPasswords�no</pre>�to�<pre class="programlisting">PermitEmptyPasswords�no</pre>�(this�blocks�passwordless�accounts)<br> <br> �and�save�and�exit�by�typing�C-x�C-s�C-x�C-c</p></div></li><li>Restart sshd so that the change takes effect.<pre class="screen"><b class="userinput"><tt>service sshd restart</tt></b></pre></li></ol></div></li><li><p>Red Hat still installed a few services we @@ -161,7 +172,8 @@ <pre class="action"><span class="action">service pcmcia stop service netfs stop chkconfig --del pcmcia -chkconfig --del netfs</span></pre></pre></li><li><p>Plug in the network cable.</p></li><li><p>Verify that you have connectivity by going to another +chkconfig --del netfs</span></pre></pre><p>If you installed PostGreSQL, do also +<tt class="computeroutput">service postgresql start</tt> and <tt class="computeroutput">chkconfig --add postgresql</tt>.</p></li><li><p>Plug in the network cable.</p></li><li><p>Verify that you have connectivity by going to another computer and ssh'ing to <span class="replaceable"><span class="replaceable">yourserver</span></span>, logging in as remadmin, and promoting yourself to root:</p><pre class="screen">[joeuser@someotherserver]$ <b class="userinput"><tt> ssh <span class="replaceable"><span class="replaceable">remadmin@yourserver.test</span></span></tt></b> @@ -173,7 +185,10 @@ Last login: Mon Mar 3 21:15:27 2003 from host-12-01.dsl-sea.seanet.com [remadmin@yourserver remadmin]$ <b class="userinput"><tt>su -</tt></b> Password: -[root@yourserver root]#</pre></li><li><p>Upgrade the kernel to fix a security hole. The default +[root@yourserver root]#</pre></li><li><p>If you didn't burn a CD of patches and use it, can still + download and install the necessary patches. Here's how to + do it for the kernel; you should also check for other + critical packages.</p><p>Upgrade the kernel to fix a security hole. The default Red Hat 8.0 system kernel (2.4.18-14, which you can check with <b class="userinput"><tt>uname -a</tt></b>) has several <a href="https://rhn.redhat.com/errata/RHSA-2003-098.html" target="_top">security problems</a>. Download the new kernel, install it, and reboot.</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>cd /tmp</tt></b> [root@yourserver tmp]# <b class="userinput"><tt>wget http://updates.redhat.com/7.1/en/os/i686/kernel-2.4.18-27.7.x.i686.rpm</tt></b> Index: openacs-4/packages/acs-core-docs/www/install-steps.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-steps.html,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-core-docs/www/install-steps.html 31 Oct 2003 10:54:19 -0000 1.2 +++ openacs-4/packages/acs-core-docs/www/install-steps.html 5 Nov 2003 11:48:10 -0000 1.3 @@ -1,6 +1,6 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Basic Steps</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-overview.html" title="Chapter�2.�Installation Overview"><link rel="previous" href="install-overview.html" title="Chapter�2.�Installation Overview"><link rel="next" href="how-to-use.html" title="How to use this guide"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-overview.html">Prev</a> </td><th width="60%" align="center">Chapter�2.�Installation Overview</th><td width="20%" align="right"> <a accesskey="n" href="how-to-use.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-steps"></a>Basic Steps</h2></div></div><div></div></div><p> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Basic Steps</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-overview.html" title="Chapter�2.�Installation Overview"><link rel="previous" href="install-overview.html" title="Chapter�2.�Installation Overview"><link rel="next" href="individual-programs.html" title="Prerequisite Software"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-overview.html">Prev</a> </td><th width="60%" align="center">Chapter�2.�Installation Overview</th><td width="20%" align="right"> <a accesskey="n" href="individual-programs.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="install-steps"></a>Basic Steps</h2></div></div><div></div></div><p> The basic steps to getting OpenACS up and running are: - </p><div class="orderedlist"><ol type="1"><li><p>Install an OS (<a href="unix-installation.html#unix-install" title="a Unix-like system">Linux, FreeBSD, OpenBSD</a>, <a href="install-redhat.html" title="Appendix�A.�Install Red Hat 8.0">Appendix�A, <i>Install Red Hat 8.0</i></a>, <a href="mac-installation.html" title="OpenACS Installation Guide for Mac OS X">Section�, “OpenACS Installation Guide for Mac OS X”</a>, <a href="win2k-installation.html" title="OpenACS Installation Guide for Windows2000">Section�, “OpenACS Installation Guide for Windows2000”</a>).</p></li><li><p>Install a database (<a href="oracle.html" title="Install Oracle 8.1.7">Oracle</a> or + </p><div class="orderedlist"><ol type="1"><li><p>Install an OS (<a href="unix-installation.html#unix-install" title="a Unix-like system">Linux, FreeBSD, OpenBSD</a>, <a href="install-redhat.html" title="Appendix�A.�Install Red Hat 8/9">Appendix�A, <i>Install Red Hat 8/9</i></a>, <a href="mac-installation.html" title="OpenACS Installation Guide for Mac OS X">Section�, “OpenACS Installation Guide for Mac OS X”</a>, <a href="win2k-installation.html" title="OpenACS Installation Guide for Windows2000">Section�, “OpenACS Installation Guide for Windows2000”</a>).</p></li><li><p>Install a database (<a href="oracle.html" title="Install Oracle 8.1.7">Oracle</a> or <a href="postgres.html" title="Install PostGreSQL">PostgreSQL</a>).</p></li><li><p><a href="aolserver.html" title="Install AOLserver 3.3oacs1">Install the AOLserver webserver</a>.</p></li><li><p>Create a unique database and system user. Install the OpenACS tarball, start and AOLserver instance, and use the OpenACS web pages to complete installation @@ -18,8 +18,79 @@ requirements: </p><div class="itemizedlist"><ul type="disc"><li><p>Pentium processor</p></li><li><p>128 MB RAM (much more if you want Oracle)</p></li><li><p>4 GB hard drive</p></li><li><p>A Unix-like operating system with tcl, tdom, and - a mail transport agent. (<a href="individual-programs.html" title="Individual Programs">Section�, “Individual Programs”</a>)</p></li></ul></div><p> + a mail transport agent. (<a href="individual-programs.html" title="Prerequisite Software">Section�, “Prerequisite Software”</a>)</p></li></ul></div><p> All of the software that you will need is free and open-source, except for Oracle. You can obtain a free copy of Oracle for development purposes. This is described in the <a href="oracle.html#install-oracle-getit">Acquire Oracle</a> section. - </p><div class="figure"><a name="compatibility-matrix"></a><p class="title"><b>Figure�2.1.�Compatibility Matrix</b></p><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col><col><col><col><col></colgroup><tbody><tr><td colspan="2" align="center">OpenACS Version</td><td>3.2.5</td><td>4.5</td><td>4.6</td><td>4.6.1</td><td>4.6.2</td><td>4.6.3</td><td>5.0.0</td></tr><tr><td rowspan="7">AolServer</td><td>3</td><td align="center">Verified</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td></tr><tr><td>3.3+ad13</td><td class="auto-generated">�</td><td colspan="6" align="center">Verified</td></tr><tr><td>3.3oacs1</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td colspan="3" align="center">Verified</td></tr><tr><td>3.4.2</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td align="center">No</td></tr><tr><td>3.4.2oacs1</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td align="center">Verified</td></tr><tr><td>3.5.5</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td align="center">Verified</td></tr><tr><td>4</td><td colspan="6" align="center">Verified but not for production</td></tr><tr><td rowspan="3">PostGreSQL</td><td>7.0</td><td align="center">Verified</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td></tr><tr><td>7.2.x</td><td class="auto-generated">�</td><td colspan="5" align="center">Verified</td></tr><tr><td>7.3.2 - 7.3.4</td><td colspan="5" align="center">No</td><td colspan="2" align="center">Verified</td></tr><tr><td rowspan="3">Oracle</td><td>8.1.6</td><td class="auto-generated">�</td><td colspan="5" align="center">Verified</td><td class="auto-generated">�</td></tr><tr><td>8.1.7</td><td class="auto-generated">�</td><td colspan="6" align="center">Verified</td></tr><tr><td>9i</td><td colspan="6" align="center">No</td><td align="center">Untested</td></tr></tbody></table></div></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-overview.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="how-to-use.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter�2.�Installation Overview </td><td width="20%" align="center"><a accesskey="u" href="install-overview.html">Up</a></td><td width="40%" align="right"> How to use this guide</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/install-steps.html#comments">View comments on this page at openacs.org</a></center></body></html> + </p><div class="figure"><a name="compatibility-matrix"></a><p class="title"><b>Figure�2.1.�Compatibility Matrix</b></p><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col><col><col><col><col><col><col></colgroup><tbody><tr><td colspan="2" align="center">OpenACS Version</td><td>3.2.5</td><td>4.5</td><td>4.6</td><td>4.6.1</td><td>4.6.2</td><td>4.6.3</td><td>5.0.0</td></tr><tr><td rowspan="7">AolServer</td><td>3</td><td align="center">Verified</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td></tr><tr><td>3.3+ad13</td><td class="auto-generated">�</td><td colspan="6" align="center">Verified</td></tr><tr><td>3.3oacs1</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td colspan="3" align="center">Verified</td></tr><tr><td>3.4.2</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td align="center">No</td></tr><tr><td>3.4.2oacs1</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td align="center">Verified</td></tr><tr><td>3.5.5</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td align="center">Verified</td></tr><tr><td>4</td><td colspan="6" align="center">Verified but not for production</td></tr><tr><td rowspan="3">PostGreSQL</td><td>7.0</td><td align="center">Verified</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td><td class="auto-generated">�</td></tr><tr><td>7.2.x</td><td class="auto-generated">�</td><td colspan="5" align="center">Verified</td></tr><tr><td>7.3.2 - 7.3.4</td><td colspan="5" align="center">No</td><td colspan="2" align="center">Verified</td></tr><tr><td rowspan="3">Oracle</td><td>8.1.6</td><td class="auto-generated">�</td><td colspan="5" align="center">Verified</td><td class="auto-generated">�</td></tr><tr><td>8.1.7</td><td class="auto-generated">�</td><td colspan="6" align="center">Verified</td></tr><tr><td>9i</td><td colspan="6" align="center">No</td><td align="center">Untested</td></tr></tbody></table></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="how-to-use"></a>How to use this guide</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p><tt class="computeroutput">This</tt> is text you will see on + screen, such as a <tt class="computeroutput"><span class="guibutton"><span class="guibutton"><u><span class="accel">B</span></u>utton</span></span></tt> or <tt class="computeroutput"><span class="guilabel"><span class="guilabel"><u><span class="accel">link</span></u></span></span></tt> + in a radio button list or menu.</p></li><li><p><b class="userinput"><tt>This is text that you will type.</tt></b></p></li><li><p>This is text from a program or file which you may need to +examine or edit:</p><pre class="programlisting">if {$database == "oracle"} { + set db_password "mysitepassword" +}</pre></li><li><p>This is text that you will +<tt class="computeroutput">see</tt> and <b class="userinput"><tt>type</tt></b> in a command shell, including <span class="replaceable"><span class="replaceable">text you may have to +change</span></span>. It is followed by a list of just the commands, +which you can copy and paste.</p><pre class="screen">[root@localhost root]# <b class="userinput"><tt>su - nsadmin</tt></b> +[nsadmin@localhost aolserver]$ <b class="userinput"><tt>svc -d /service/<span class="replaceable"><span class="replaceable">server1</span></span></tt></b> +[nsadmin@localhost aolserver]$ <b class="userinput"><tt>dropdb <span class="replaceable"><span class="replaceable">server1</span></span></tt></b> +DROP DATABASE +[nsadmin@localhost aolserver]$ <b class="userinput"><tt>createdb <span class="replaceable"><span class="replaceable">server1</span></span></tt></b> +CREATE DATABASE +<pre class="action"><span class="action">su - nsadmin +svc -d /service/<span class="replaceable"><span class="replaceable">server1</span></span> +dropdb <span class="replaceable"><span class="replaceable">server1</span></span> +createdb <span class="replaceable"><span class="replaceable">server1</span></span></span></pre></pre></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2814966"></a>Paths and Users</h3></div></div><div></div></div><div class="figure"><a name="id2814973"></a><p class="title"><b>Figure�2.2.�Assumptions in this Chapter</b></p><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col></colgroup><tbody><tr><td>Fully qualified domain name of your server</td><td><span class="replaceable"><span class="replaceable">yourserver.test</span></span></td></tr><tr><td>name of administrative access account</td><td>remadmin</td></tr><tr><td>OpenACS service</td><td><a class="indexterm" name="id2815030"></a><span class="replaceable"><span class="replaceable">service0</span></span></td></tr><tr><td>OpenACS service account</td><td><span class="replaceable"><span class="replaceable">service0</span></span></td></tr><tr><td>OpenACS database name</td><td><span class="replaceable"><span class="replaceable">service0</span></span></td></tr><tr><td>Root of OpenACS service file tree</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/service0</span></span></td></tr><tr><td>Location of source code tarballs for new software</td><td>/tmp</td></tr><tr><td>The OpenACS tarball contains some files which + are useful while setting up other software. Those + files are located at:</td><td>/tmp/openacs-5.0.0a4/packages/acs-core-docs/www/files</td></tr><tr><td>Database backup directory</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/service0/database-backup</span></span></td></tr><tr><td>Service config files</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/service0/etc</span></span></td></tr><tr><td>Service log files</td><td><span class="replaceable"><span class="replaceable">/var/lib/aolserver/service0/log</span></span></td></tr><tr><td>Compile directory</td><td>/usr/local/src</td></tr><tr><td>PostGreSQL directory</td><td>/usr/local/pgsql</td></tr><tr><td>AOLServer directory</td><td>/usr/local/aolserver</td></tr></tbody></table></div></div><p> + None of these locations are set in stone - they're simply + the values that we've chosen. The values that you'll + probably want to change, such as service name, are + <span class="replaceable"><span class="replaceable">marked like this</span></span>. The other + values we recommend you leave unchanged unless you have a + reason to change them.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p> + Some of the paths and user accounts have been changed from + those recommended in previous versions of this document to + improve security and maintainability. See <a href="http://openacs.org/forums/message-view?message_id=82934" target="_top">this + thread</a> for discussion. +</p></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-stuck"></a>Getting Help during installation</h3></div></div><div></div></div><p> + We'll do our best to assure that following our instructions will get + you to the promised land. If something goes wrong, don't + panic. There are plenty of ways to get help. Here are some tips: + </p><div class="itemizedlist"><ul type="disc"><li><p> + Keep track of the commands you are run and record their output. I + like to do my installations in a shell inside of emacs + (<tt class="computeroutput">M-x shell</tt>) so that I can save + the output if needed. An alternative would be to use the + <tt class="computeroutput">script</tt> command. + </p></li><li><p> + We'll point out where the error logs for the various pieces of + software are. Output from those logs will help us help you. Don't + worry if you feel overwhelmed by all the information in the error + logs. Over time, you'll find that they make more and more + sense. Soon, you'll actually look forward to errors so that you + can run to the log and diagnose the problem. + </p></li><li><p> + Search the <a href="http://openacs.org/bboard/" target="_top">bboards at + openacs.org</a> - you'll often find many people who have + struggled through the same spot that you're in. + </p></li><li><p> + The bottom of each page has a link to OpenACS.org, where you can post + comments and read other users comments about the + contents of the page. + </p></li><li><p> + Ask questions at the irc channel on openprojects.net + (#openacs). They're knowledgeable and quite friendly + if you can keep them on topic. + </p></li><li><p> + Post a question on the <a href="http://openacs.org/bboard/" target="_top">bboards</a>. Make sure + you've done a search first. When you do post, be sure to include + your setup information (OS, etc) as well as the exact commands + that are failing with the accompanying error. If + there's a SQL error in the TCL error or in the log, + post that too. + </p></li><li><p> + If you find errors in this document or if you have ideas about + making it better, please post them in our + <a href="http://openacs.org/bugtracker/openacs/" target="_top">BugTracker</a>. + </p></li></ul></div><div class="cvstag">($Id: overview.xml,v 1.12 2003/10/28 + 22:07:41 joela Exp $)</div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="install-overview.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="individual-programs.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter�2.�Installation Overview </td><td width="20%" align="center"><a accesskey="u" href="install-overview.html">Up</a></td><td width="40%" align="right"> Prerequisite Software</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/install-steps.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/objects.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/objects.html,v diff -u -r1.19 -r1.20 --- openacs-4/packages/acs-core-docs/www/objects.html 31 Oct 2003 15:57:34 -0000 1.19 +++ openacs-4/packages/acs-core-docs/www/objects.html 5 Nov 2003 11:48:10 -0000 1.20 @@ -80,7 +80,7 @@ Fire up your text editor and open the <tt class="computeroutput">ROOT/packages/notes/sql/oracle/notes-create.sql</tt> (<tt class="computeroutput">ROOT/packages/notes/sql/postgresql/notes-create.sql</tt> for the PG version) file created when we <a href="packages.html" title="OpenACS 5.0.0a4 Packages">created the package</a>. Then, do the following: -</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2843210"></a>Describe the new type to the type system</h4></div></div><div></div></div><p> +</p><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2839780"></a>Describe the new type to the type system</h4></div></div><div></div></div><p> First, add an entry to the <tt class="computeroutput">acs_object_types</tt> table with the following PL/SQL call: </p><pre class="programlisting"> begin @@ -140,7 +140,7 @@ because the new type <tt class="computeroutput">note</tt> is a subtype of <tt class="computeroutput">acs_object</tt>, it will inherit these attributes, so there is no need for us to define them. -</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2840075"></a>Define a table in which to store your objects</h4></div></div><div></div></div><p> +</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2842732"></a>Define a table in which to store your objects</h4></div></div><div></div></div><p> The next thing we do is make a small modification to the data model to reflect the fact that each row in the <tt class="computeroutput">notes</tt> table represents something that is not only an object of type @@ -165,7 +165,7 @@ use the <tt class="computeroutput">acs_objects</tt> table to find objects will transparently find any objects that are instances of any subtype of <tt class="computeroutput">acs_objects</tt>. -</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2840164"></a>Define a package for type specific procedures</h4></div></div><div></div></div><p> +</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2842821"></a>Define a package for type specific procedures</h4></div></div><div></div></div><p> The next step is to define a PL/SQL package for your new type, and write some basic procedures to create and delete objects. Here is a package definition for our new type: @@ -213,7 +213,7 @@ object OBJ was "read only", then any other object that used OBJ as its context would also be "read only" by default. We'll talk about this more later. -</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2840256"></a>Define a package body for type specific procedures</h4></div></div><div></div></div><p> +</p></div><div class="sect3" lang="en"><div class="titlepage"><div><div><h4 class="title"><a name="id2842912"></a>Define a package body for type specific procedures</h4></div></div><div></div></div><p> The PL/SQL package body contains the implementations of the procedures defined above. The only subtle thing going on here is that we must use <tt class="computeroutput">acs_object.new</tt> to insert a row into Index: openacs-4/packages/acs-core-docs/www/openacs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/openacs.html,v diff -u -r1.16 -r1.17 --- openacs-4/packages/acs-core-docs/www/openacs.html 31 Oct 2003 15:57:34 -0000 1.16 +++ openacs-4/packages/acs-core-docs/www/openacs.html 5 Nov 2003 11:48:10 -0000 1.17 @@ -1,20 +1,19 @@ <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Install OpenACS 5.0.0a4</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="complete-install.html" title="Chapter�3.�Complete Installation"><link rel="previous" href="aolserver.html" title="Install AOLserver 3.3oacs1"><link rel="next" href="win2k-installation.html" title="OpenACS Installation Guide for Windows2000"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="aolserver.html">Prev</a> </td><th width="60%" align="center">Chapter�3.�Complete Installation</th><td width="20%" align="right"> <a accesskey="n" href="win2k-installation.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="openacs"></a>Install OpenACS 5.0.0a4</h2></div></div><div></div></div><div class="authorblurb"><p> - by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br> + by <a href="mailto:vinod@kurup.com" target="_top">Vinod Kurup</a><br> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="openacs-setup"></a>Set up the file system for an OpenACS Service</h3></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p><a name="make-web-directory"></a>The reference install stores all OpenACS services in - <tt class="computeroutput">/var/lib/aolserver</tt>, with one subdirectory per service. The first time you install a service, you must create - that directory and set its permissions:</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>mkdir /var/lib/aolserver</tt></b> + </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="openacs-setup"></a>Set up the file system for one or more OpenACS Sites</h3></div></div><div></div></div><p>For Linux Standard Base compliance and ease of backup, + all of the files in each OpenACS site are stored in a + subdirectory of + <tt class="computeroutput">/var/lib/aolserver</tt>, one + subdirectory per site. The first time you install an OpenACS + site on a server, you must create the parent directory and set its permissions:</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>mkdir /var/lib/aolserver</tt></b> [root@yourserver root]# <b class="userinput"><tt>chgrp web /var/lib/aolserver</tt></b> [root@yourserver root]# <b class="userinput"><tt>chmod 770 /var/lib/aolserver</tt></b> [root@yourserver root]# <pre class="action"><span class="action">mkdir /var/lib/aolserver chgrp web /var/lib/aolserver -chmod 770 /var/lib/aolserver</span></pre></pre></li><li><p><a name="install-openacs-download"></a>You should already have downloaded the OpenACS tarball - to the <tt class="computeroutput">/tmp</tt> directory. If - not, <a href="individual-programs.html#openacs-download">download the OpenACS - tarball</a> and save it in - <tt class="computeroutput">/tmp</tt> and proceed:</p></li><li><p><a name="install-aolserver-user-accounts"></a>Set up your user account.</p><p> +chmod 770 /var/lib/aolserver</span></pre></pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-aolserver-user-accounts"></a>Set up a user account for each site.</h3></div></div><div></div></div><p> AOLserver needs to be started as the root user if you want to use port 80. Once it starts, though, it will drop the root privileges and run as another user, which you must specify on the command line. It's @@ -29,46 +28,43 @@ of your site is one word, that would be a good choice. For example "<span class="replaceable"><span class="replaceable">service0</span></span>" might be the service name for the <a href="http://service0.net/" target="_top"><span class="replaceable"><span class="replaceable">service0</span></span>.net</a> - community.</p><p>For the 5.0.0a4-P and 5.0.0a4-O Reference Platform, - we'll use a server named <span class="replaceable"><span class="replaceable">service0</span></span> and - a user named <span class="replaceable"><span class="replaceable">service0</span></span>. We'll leave the password - blank for increased security. The only way to log in will be - with ssh certificates. The only people who should log in are + community.</p><p>We'll leave the password blank, which prevents login by + password, for increased security. The only way to log in will + be with ssh certificates. The only people who should log in are developers for that specific instance. Add this user, and put - it in the <tt class="computeroutput">web</tt> group so that it - can use database commands associated with that group. - </p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>useradd -g web <span class="replaceable"><span class="replaceable">service0</span></span> -d /home/<span class="replaceable"><span class="replaceable">service0</span></span></tt></b> -[root@yourserver root]#</pre><p>Set up database environment variables. They are - necessary for working with the database. -</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">service0</span></span></tt></b> -[service0@yourserver service0]$ <b class="userinput"><tt>emacs .bashrc</tt></b></pre><p>Put in the appropriate lines for the database you are running. If you will use both databases, put in both sets of lines.</p><div class="itemizedlist"><ul type="disc"><li><p>PostGreSQL:</p><pre class="programlisting">export LD_LIBRARY_PATH=LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib -export PATH=$PATH:/usr/local/pgsql/bin</pre></li><li><p>Oracle. These environment variables are specific for a local Oracle - installation communicating via IPC. If you are connecting to a remote - Oracle installation, you'll need to adjust these appropriately. Also, - make sure that the '8.1.7' matches your Oracle version. -</p><pre class="programlisting">export ORACLE_BASE=/ora8/m01/app/oracle -export ORACLE_HOME=$ORACLE_BASE/product/<span class="replaceable"><span class="replaceable">8.1.7</span></span> -export PATH=$PATH:$ORACLE_HOME/bin -export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib -export ORACLE_SID=ora8 -export ORACLE_TERM=vt100 -export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data</pre></li></ul></div><p>Test this by logging out and back in as - <tt class="computeroutput"><span class="replaceable"><span class="replaceable">service0</span></span></tt> and checking the paths.</p><pre class="screen">[service0@yourserver service0]$ <b class="userinput"><tt>exit</tt></b> -logout -[root@yourserver src]# <b class="userinput"><tt>su - <b class="userinput"><tt><span class="replaceable"><span class="replaceable">service0</span></span></tt></b></tt></b> -[postgres@yourserver pgsql]$ <b class="userinput"><tt>env | grep PATH</tt></b> -</pre><p>For PostGreSQL, you should see:</p><pre class="screen"> -LD_LIBRARY_PATH=LD_LIBRARY_PATH=:/usr/local/pgsql/lib -PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/usr/local/pgsql/bin:/usr/local/pgsql/bin</pre><p>For Oracle:</p><pre class="screen">ORACLE_BASE=/ora8/m01/app/oracle -ORACLE_HOME=/ora8/m01/app/oracle/product/8.1.7 -PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/ora8/m01/app/oracle/product/8.1.7/bin -LD_LIBRARY_PATH=/ora8/m01/app/oracle/product/8.1.7/lib:/lib:/usr/lib -ORACLE_SID=ora8 -ORACLE_TERM=vt100 -ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data</pre><pre class="screen">[service0@yourserver service0]$ <b class="userinput"><tt>exit</tt></b> -logout - -[root@yourserver root]#</pre></li><li><p><a name="unpack-openacs"></a>Unpack the OpenACS tarball and rename it to <tt class="computeroutput">service0</tt>. Secure the directory so that only the owner can access it. Check the permissions by listing the directory.</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">service0</span></span></tt></b> + it in the <tt class="computeroutput"><span class="replaceable"><span class="replaceable">service0</span></span></tt> group so that it + can use database and server commands associated with that group. + </p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>groupadd <span class="replaceable"><span class="replaceable">web</span></span></tt></b> +[root@yourserver root]# <b class="userinput"><tt>useradd -g <span class="replaceable"><span class="replaceable">service0</span></span> -G web <span class="replaceable"><span class="replaceable">service0</span></span> -d /home/<span class="replaceable"><span class="replaceable">service0</span></span></tt></b> +[root@yourserver root]#</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-with-script"></a>Install with automated script (EXPERIMENTAL)</h3></div></div><div></div></div><p>Starting with OpenACS 5.0, an experimental script is + available to automate all of the steps for the rest of this section. Requires tclwebtest. If you are not feeling lucky, skip to <a href="openacs.html#install-from-tarball" title="Install from tarball">Section�, “Install from tarball”</a>.</p><div class="orderedlist"><ol type="1"><li><p>Get the install script from CVS:</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">service0</span></span></tt></b> +[service0@yourserver service0]$ <b class="userinput"><tt>cvs -d :pserver:anonymous@openacs.org:/cvsroot co -d install openacs-4/etc/install</tt></b> +cvs server: Updating install +U install/README +U install/TODO + ... many lines omitted ... +U install/tcl/twt-procs.tcl +U install/tcl/user-procs.tcl +[service0@yourserver service0]$ <b class="userinput"><tt>cd install</tt></b> +</pre><p>Edit + <tt class="computeroutput">/home/<span class="replaceable"><span class="replaceable">service0/install/install.tcl</span></span></tt>install.tcl + file and change the values as documented in the file.</p><p>Run the file as root.</p><pre class="screen">[service0@yourserver service0]$ <b class="userinput"><tt>exit</tt></b> +[root@yourserver root]# <b class="userinput"><tt>./home/service0/install/install.sh</tt></b> +/home/service0/install/install.sh: Starting installation with config_file +/home/service0/install/install.tcl. Using serverroot=/var/lib/aolserver/ +service0, server_url=http://0.0.0.0:8000, do_checkout=yes, do_install=yes, +dotlrn=no, and database=postgres., use_daemontools=true + ... many lines omitted ... +./install.sh: Finished (re)installing /var/lib/aolserver/service0 at Wed Nov +5 13:27:17 CET 2003. Access the new site at http://127.0.0.1:8000 with admin +username admin@yourserver.test and password 1 +[root@yourserver root]# +<pre class="action"><span class="action">exit +./home/<span class="replaceable"><span class="replaceable">service0</span></span>/install/install.sh</span></pre></pre></li></ol></div><p>You can proceed to <a href="openacs.html#install-next-steps" title="Next Steps">Section�, “Next Steps”</a>.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-from-tarball"></a>Install from tarball</h3></div></div><div></div></div><p>You should already have downloaded the OpenACS tarball + to the <tt class="computeroutput">/tmp</tt> directory. If + not, <a href="individual-programs.html#openacs-download">download the OpenACS + tarball</a> and save it in + <tt class="computeroutput">/tmp</tt> and proceed:</p><div class="orderedlist"><ol type="1"><li><p><a name="install-openacs-download"></a>Unpack the OpenACS tarball and rename it to <tt class="computeroutput">service0</tt>. Secure the directory so that only the owner can access it. Check the permissions by listing the directory.</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">service0</span></span></tt></b> [service0@yourserver service0]$ <b class="userinput"><tt>cd /var/lib/aolserver</tt></b> [service0@yourserver aolserver]$ <b class="userinput"><tt>tar xzf /tmp/openacs-5.0.0a4.tgz</tt></b> [service0@yourserver aolserver]$ <b class="userinput"><tt>mv openacs-5.0.0a4 <span class="replaceable"><span class="replaceable">service0</span></span></tt></b> @@ -87,21 +83,11 @@ tar xzf /tmp/openacs-5.0.0a4.tgz mv openacs-5.0.0a4 service0 chmod -R 700 service0/ -exit</span></pre></pre></li><li><p><a href="cvs-service-import.html" title="Add the Service to CVS - OPTIONAL">Add the Service to CVS</a> (OPTIONAL)</p></li><li><p>(This step should be obsoleted by the 5.0.0 tarball, as - these directories will be included in the tarball)Set up several additional directories in the service root: - <tt class="computeroutput">etc</tt> is for configuration and control files, <tt class="computeroutput">log</tt> is for error and request (web page hit) log files, and <tt class="computeroutput">database-backup</tt> is for database backup files. If you did the CVS step, note that these new directories are excluded from that step so that you can decide whether or not you want your logs and config files in source control.</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">service0</span></span></tt></b> -[service0@yourserver service0]$ <b class="userinput"><tt>mkdir /var/lib/aolserver/<span class="replaceable"><span class="replaceable">service0</span></span>/etc /var/lib/aolserver/<span class="replaceable"><span class="replaceable">service0</span></span>/log /var/lib/aolserver/<span class="replaceable"><span class="replaceable">service0</span></span>/database-backup</tt></b> -[service0@yourserver aolserver]$ <b class="userinput"><tt>exit</tt></b> -logout - -[root@yourserver aolserver]# -<pre class="action"><span class="action">su - service0 -mkdir /var/lib/aolserver/<span class="replaceable"><span class="replaceable">service0</span></span>/etc /var/lib/aolserver/<span class="replaceable"><span class="replaceable">service0</span></span>/log /var/lib/aolserver/<span class="replaceable"><span class="replaceable">service0</span></span>/database-backup -exit</span></pre></pre></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-openacs-prepare-oracle"></a>Prepare Oracle for OpenACS</h3></div></div><div></div></div><p>If you won't be using Oracle, skip to <a href="openacs.html#install-openacs-prepare-postgres" title="Prepare PostgreSQL for an OpenACS Service">Section�, “Prepare PostgreSQL for an OpenACS Service”</a></p><p> +exit</span></pre></pre></li><li><p><a href="cvs-service-import.html" title="Add the Service to CVS - OPTIONAL">Add the Service to CVS</a> (OPTIONAL)</p></li><li><p>Prepare the database</p><div class="itemizedlist"><ul type="disc"><li><p><a name="install-openacs-prepare-oracle"></a><b>Prepare Oracle for OpenACS.�</b>If you won't be using Oracle, skip to <a href="openacs.html#install-openacs-prepare-postgres" title="Prepare PostgreSQL for an OpenACS Service">Prepare PostgreSQL for an OpenACS Service</a></p><p> You should be sure that your user account (e.g. <tt class="computeroutput"><span class="replaceable"><span class="replaceable">service0</span></span></tt>) is in the <tt class="computeroutput">dba</tt> group. - </p><div class="orderedlist"><ol type="1"><li><p> + </p><div class="orderedlist"><ol type="a"><li><p> Verify membership by typing <tt class="computeroutput">groups</tt> when you login: @@ -231,7 +217,10 @@ If you can't login, try redoing step 1 again. If the date is in the wrong format, make sure you followed the steps outlined in <a href="oracle.html#install-oracle-troubleshooting" title="Troubleshooting Oracle Dates">Section�, “Troubleshooting Oracle Dates”</a> - </p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-openacs-prepare-postgres"></a>Prepare PostgreSQL for an OpenACS Service</h3></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p><a name="create-service-db-user"></a>Create a user in the database matching the service name.</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>su - postgres</tt></b> + </p></li></ol></div></li><li><p><a name="install-openacs-prepare-postgres"></a><b>Prepare PostgreSQL for an OpenACS Service.�</b></p><div class="itemizedlist"><ul type="circle"><li><p><a name="create-service-db-user"></a>PostGreSQL:</p><p>Create a user in the database matching the service + name. With default PostGreSQL authentication the name of + the user of the process will be matched to this account + automatically.</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>su - postgres</tt></b> [postgres@yourserver pgsql]$ <b class="userinput"><tt>createuser <span class="replaceable"><span class="replaceable">service0</span></span></tt></b> Shall the new user be allowed to create databases? (y/n) <b class="userinput"><tt>y</tt></b> Shall the new user be allowed to create more new users? (y/n) <b class="userinput"><tt>y</tt></b> @@ -244,17 +233,17 @@ CREATE DATABASE [service0@yourserver service0]$ <pre class="action"><span class="action">su - <span class="replaceable"><span class="replaceable">service0</span></span> -createdb -E UNICODE <span class="replaceable"><span class="replaceable">service0</span></span></span></pre></pre></li><li><p>Automate daily database Vacuuming. This is a process which cleans out discarded data from the database. A quick way to automate vacuuming is to edit the cron file for the database user.</p><a class="indexterm" name="id2825344"></a><pre class="screen">[service0@yourserver service0]$ <b class="userinput"><tt>export EDITOR=emacs;crontab -e</tt></b></pre><p>Add this line to the file. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day.</p><pre class="programlisting">0 1 * * * /usr/local/pgsql/bin/vacuumdb --analyze <span class="replaceable"><span class="replaceable">service0</span></span></pre></li><li><p><a href="install-full-text-search.html#install-openfts-postgres" title="Install OpenFTS prerequisites in PostGreSQL instance">Add Full Text Search Support</a> (OPTIONAL)</p></li><li><a name="db-setup-exit"></a><pre class="screen">[service0@yourserver service0]$ <b class="userinput"><tt>exit</tt></b> +createdb -E UNICODE <span class="replaceable"><span class="replaceable">service0</span></span></span></pre></pre></li><li><p>Automate daily database Vacuuming. This is a process which cleans out discarded data from the database. A quick way to automate vacuuming is to edit the cron file for the database user.</p><a class="indexterm" name="id2826718"></a><pre class="screen">[service0@yourserver service0]$ <b class="userinput"><tt>export EDITOR=emacs;crontab -e</tt></b></pre><p>Add this line to the file. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day.</p><pre class="programlisting">0 1 * * * /usr/local/pgsql/bin/vacuumdb --analyze <span class="replaceable"><span class="replaceable">service0</span></span></pre></li><li><p><a href="install-full-text-search.html#install-openfts-postgres" title="Install OpenFTS prerequisites in PostGreSQL instance">Add Full Text Search Support</a> (OPTIONAL)</p></li><li><a name="db-setup-exit"></a><pre class="screen">[service0@yourserver service0]$ <b class="userinput"><tt>exit</tt></b> logout -[root@yourserver root]# </pre></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-openacs-configure-aol"></a>Configure an AOLserver Service for OpenACS</h3></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p><a name="configure-config-tcl"></a> +[root@yourserver root]# </pre></li></ul></div></li></ul></div></li><li><a name="install-openacs-configure-aol"></a><p><b>Configure an AOLserver Service for OpenACS.�</b></p><div class="orderedlist"><ol type="a"><li><p><a name="configure-config-tcl"></a> The AOLserver architecture lets you run an arbitrary number of virtual servers. A virtual server is an HTTP service running on a specific port, e.g. port 80. In order for OpenACS to work, you need to configure a virtual server. The Reference Platform uses a configuration file included in the OpenACS tarball, <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">service0</span></span>/etc/config.tcl</tt>. - Open it in an editor to adjust the parameters.</p><a class="indexterm" name="id2825455"></a><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">service0</span></span></tt></b> + Open it in an editor to adjust the parameters.</p><a class="indexterm" name="id2826840"></a><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">service0</span></span></tt></b> [service0@yourserver service0]$ <b class="userinput"><tt>cd /var/lib/aolserver/<span class="replaceable"><span class="replaceable">service0</span></span>/etc</tt></b> [service0@yourserver etc]# <b class="userinput"><tt>emacs config.tcl</tt></b> </pre><p> @@ -279,7 +268,7 @@ started, but for more options, read the <a href="http://aolserver.com/docs/admin/config.html" target="_top">AOLServer docs</a>. </p></li><li><p><a href="install-full-text-search.html#enable-openfts" title="Enable OpenFTS in config.tcl">Enable OpenFTS Full Text Search</a> (OPTIONAL)</p></li><li><p><a href="maintenance-web.html#install-ssl" title="Installing SSL Support">Install nsopenssl - for SSL support.</a> (OPTIONAL)</p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="verify-aolserver-startup"></a>Verify AOLserver startup</h3></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p><a name="start-aolserver"></a> + for SSL support.</a> (OPTIONAL)</p></li></ol></div></li><li><a name="verify-aolserver-startup"></a><p><b>Verify AOLserver startup.�</b></p><div class="orderedlist"><ol type="a"><li><p><a name="start-aolserver"></a> Kill any current running AOLserver processes and start a new one. If you are using Oracle, rather than PostgreSQL, replace <tt class="computeroutput">nsd-postgres</tt> with @@ -317,7 +306,8 @@ changes, don't forget to kill any running servers with <b class="userinput"><tt>killall nsd</tt></b>. </p></li><li><p><a href="maintenance-web.html#install-openacs-keepalive" title="">Automate - AOLserver keepalive</a> (OPTIONAL)</p></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-openacs-using-installer"></a>Configure a Service with the OpenACS Installer</h3></div></div><div></div></div><p> + AOLserver keepalive</a> (OPTIONAL)</p></li></ol></div></li><li><a name="install-openacs-using-installer"></a><p><b>Configure a Service with the OpenACS + Installer.�</b> Now that you've got AOLserver up and running, let's install OpenACS 5.0.0a4. </p><div class="itemizedlist"><ul type="disc"><li><p> @@ -376,10 +366,43 @@ reload the final page above. You should see the front page, with an area to login near the upper right. Congratulations, OpenACS 5.0.0a4 is now up and running! - </p></li><li><p>Install Full Text Search (OPTIONAL). If you have <a href="install-full-text-search.html#install-openfts" title="Install OpenFTS module">installed OpenFTS</a> and enabled + </p></li></ul></div></li></ol></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="install-next-steps"></a>Next Steps</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>Install Full Text Search (OPTIONAL). If you have <a href="install-full-text-search.html#install-openfts" title="Install OpenFTS module">installed OpenFTS</a> and enabled OpenFTS, you can now <a href="install-full-text-search.html#install-fts-engine" title="Install Full Text Search Engine">install</a> the OpenFTS Driver package and - Full Text Search Engine package in the OpenACS service.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2827232"></a>Next Steps</h3></div></div><div></div></div><div class="itemizedlist"><ul type="disc"><li><p>This is a good time to make a <a href="backup-recovery.html#snapshot-backup" title="Snapshot backup and recovery">backup</a> of your service. If this is a + Full Text Search Engine package in the OpenACS service.</p></li><li><p>This is a good time to make a <a href="backup-recovery.html#snapshot-backup" title="Snapshot backup and recovery">backup</a> of your service. If this is a production site, you should set up <a href="backup-recovery.html#automated-backup" title="Automated Backup (OPTIONAL)">automatic nightly backups</a>.</p></li><li><p>If you want traffic reports, <a href="maintenance-web.html#analog-setup" title="Set up Log Analysis Reports - OPTIONAL">set up analog</a> or another log processing program.</p></li><li><p>Follow the instruction on the home page to change the appearance of your service or add more - packages. (<a href="configure.html" title="Chapter�4.�Configuring a New Service">more information</a>)</p></li><li><p>Proceed to the <a href="tutorial.html" title="Chapter�7.�Development Tutorial">tutorial</a> to learn how to develop your own packages.</p></li><li><p>Test your <a href="backup-recovery.html" title="Backup and Recovery">backup and recovery</a> procedure.</p></li></ul></div></div><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="aolserver.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="win2k-installation.html">Next</a></td></tr><tr><td width="40%" align="left">Install AOLserver 3.3oacs1 </td><td width="20%" align="center"><a accesskey="u" href="complete-install.html">Up</a></td><td width="40%" align="right"> OpenACS Installation Guide for Windows2000</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs.html#comments">View comments on this page at openacs.org</a></center></body></html> + packages. (<a href="configure.html" title="Chapter�4.�Configuring a New Service">more information</a>)</p></li><li><p>Proceed to the <a href="tutorial.html" title="Chapter�7.�Development Tutorial">tutorial</a> to learn how to develop your own packages.</p></li><li><p>Set up database environment variables for the site + user. These settings are necessary for working with the + database while logged in as the service user. They do not + directly affect the service's run-time connection with the + database, because those environmental variables are set by the + wrapper scripts nsd-postgres and nsd-oracle.</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>su - <span class="replaceable"><span class="replaceable">service0</span></span></tt></b> +[service0@yourserver service0]$ <b class="userinput"><tt>emacs .bashrc</tt></b></pre><p>Put in the appropriate lines for the database you are running. If you will use both databases, put in both sets of lines.</p><div class="itemizedlist"><ul type="circle"><li><p>PostGreSQL:</p><pre class="programlisting">export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib +export PATH=$PATH:/usr/local/pgsql/bin</pre></li><li><p>Oracle. These environment variables are specific for a local Oracle + installation communicating via IPC. If you are connecting to a remote + Oracle installation, you'll need to adjust these appropriately. Also, + make sure that the '8.1.7' matches your Oracle version. +</p><pre class="programlisting">export ORACLE_BASE=/ora8/m01/app/oracle +export ORACLE_HOME=$ORACLE_BASE/product/<span class="replaceable"><span class="replaceable">8.1.7</span></span> +export PATH=$PATH:$ORACLE_HOME/bin +export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib +export ORACLE_SID=ora8 +export ORACLE_TERM=vt100 +export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data</pre></li></ul></div><p>Test this by logging out and back in as + <tt class="computeroutput"><span class="replaceable"><span class="replaceable">service0</span></span></tt> and checking the paths.</p><pre class="screen">[service0@yourserver service0]$ <b class="userinput"><tt>exit</tt></b> +logout +[root@yourserver src]# <b class="userinput"><tt>su - <b class="userinput"><tt><span class="replaceable"><span class="replaceable">service0</span></span></tt></b></tt></b> +[postgres@yourserver pgsql]$ <b class="userinput"><tt>env | grep PATH</tt></b> +</pre><div class="itemizedlist"><ul type="circle"><li><p>For PostGreSQL, you should see:</p><pre class="screen"> +LD_LIBRARY_PATH=LD_LIBRARY_PATH=:/usr/local/pgsql/lib +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/usr/local/pgsql/bin:/usr/local/pgsql/bin</pre></li><li><p>For Oracle:</p><pre class="screen">ORACLE_BASE=/ora8/m01/app/oracle +ORACLE_HOME=/ora8/m01/app/oracle/product/8.1.7 +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/ora8/m01/app/oracle/product/8.1.7/bin +LD_LIBRARY_PATH=/ora8/m01/app/oracle/product/8.1.7/lib:/lib:/usr/lib +ORACLE_SID=ora8 +ORACLE_TERM=vt100 +ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data</pre></li></ul></div><pre class="screen">[service0@yourserver service0]$ <b class="userinput"><tt>exit</tt></b> +logout + +[root@yourserver root]#</pre></li><li><p>Test your <a href="backup-recovery.html" title="Backup and Recovery">backup and recovery</a> procedure.</p></li></ul></div></div><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="aolserver.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="win2k-installation.html">Next</a></td></tr><tr><td width="40%" align="left">Install AOLserver 3.3oacs1 </td><td width="20%" align="center"><a accesskey="u" href="complete-install.html">Up</a></td><td width="40%" align="right"> OpenACS Installation Guide for Windows2000</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/openacs.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html,v diff -u -r1.12 -r1.13 --- openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 31 Oct 2003 15:57:34 -0000 1.12 +++ openacs-4/packages/acs-core-docs/www/permissions-tediously-explained.html 5 Nov 2003 11:48:10 -0000 1.13 @@ -85,7 +85,7 @@ to store permission information explicitly about every object, i.e. if the system has 100,000 and 1,000 users who have the <span class="emphasis"><em>read</em></span> privilege on all objects, then we would need to store 100,000,000 entries of the form: - </p><div class="table"><a name="id2846607"></a><p class="title"><b>Table�8.1.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object_id</th><th align="center">grantee_id</th><th align="center">privilege</th></tr></thead><tbody><tr><td align="center">object_id_1</td><td align="center">user_id_1</td><td align="center">'read'</td></tr><tr><td align="center">object_id_1</td><td align="center">user_id_2</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_1</td><td align="center">user_id_n</td><td align="center">'read'</td></tr><tr><td align="center">object_id_2</td><td align="center">user_id_1</td><td align="center">'read'</td></tr><tr><td align="center">object_id_2</td><td align="center">user_id_2</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_2</td><td align="center">user_id_n</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_m</td><td align="center">user_id_1</td><td align="center">'read'</td></tr><tr><td align="center">object_id_m</td><td align="center">user_id_2</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_m</td><td align="center">user_id_n</td><td align="center">'read'</td></tr></tbody></table></div><p> + </p><div class="table"><a name="id2848579"></a><p class="title"><b>Table�8.1.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object_id</th><th align="center">grantee_id</th><th align="center">privilege</th></tr></thead><tbody><tr><td align="center">object_id_1</td><td align="center">user_id_1</td><td align="center">'read'</td></tr><tr><td align="center">object_id_1</td><td align="center">user_id_2</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_1</td><td align="center">user_id_n</td><td align="center">'read'</td></tr><tr><td align="center">object_id_2</td><td align="center">user_id_1</td><td align="center">'read'</td></tr><tr><td align="center">object_id_2</td><td align="center">user_id_2</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_2</td><td align="center">user_id_n</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_m</td><td align="center">user_id_1</td><td align="center">'read'</td></tr><tr><td align="center">object_id_m</td><td align="center">user_id_2</td><td align="center">'read'</td></tr><tr><td colspan="3" align="center">...</td></tr><tr><td align="center">object_id_m</td><td align="center">user_id_n</td><td align="center">'read'</td></tr></tbody></table></div><p> Although quite feasible, this approach fails to take advantage of the fact that objects in the system are commonly organized hierarchally, and permissions usually follow the hierarchical structure, so that if user @@ -100,7 +100,7 @@ </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="permissions-tedious-context-hierarchy"></a>Context Hierarchy</h3></div></div><div></div></div><p> Suppose objects <span class="emphasis"><em>A</em></span>, <span class="emphasis"><em>B</em></span>, ..., and <span class="emphasis"><em>F</em></span> form the following hierarchy. - </p><div class="table"><a name="id2846975"></a><p class="title"><b>Table�8.2.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="3" align="center"><span class="bold"><b>A</b></span><p> + </p><div class="table"><a name="id2849453"></a><p class="title"><b>Table�8.2.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="3" align="center"><span class="bold"><b>A</b></span><p> <tt class="computeroutput">object_id=10</tt> </p></td></tr><tr><td colspan="2" align="center"><span class="bold"><b>B</b></span><p> <tt class="computeroutput">object_id=20</tt> @@ -116,23 +116,23 @@ This can be represented in the <tt class="computeroutput"> <a href="permissions-tediously-explained.html#acs_objects">acs_objects</a></tt> table by the following entries: - </p><div class="table"><a name="id2847174"></a><p class="title"><b>Table�8.3.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object_id</th><th align="center">context_id</th></tr></thead><tbody><tr><td align="center">20</td><td align="center">10</td></tr><tr><td align="center">30</td><td align="center">10</td></tr><tr><td align="center">40</td><td align="center">20</td></tr><tr><td align="center">50</td><td align="center">20</td></tr><tr><td align="center">60</td><td align="center">30</td></tr></tbody></table></div><p> + </p><div class="table"><a name="id2849653"></a><p class="title"><b>Table�8.3.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object_id</th><th align="center">context_id</th></tr></thead><tbody><tr><td align="center">20</td><td align="center">10</td></tr><tr><td align="center">30</td><td align="center">10</td></tr><tr><td align="center">40</td><td align="center">20</td></tr><tr><td align="center">50</td><td align="center">20</td></tr><tr><td align="center">60</td><td align="center">30</td></tr></tbody></table></div><p> The first entry tells us that object 20 is the descendant of object 10, and the third entry shows that object 40 is the descendant of object 20. By running a <a href="http://www.oradoc.com/ora817/server.817/a85397/expressi.htm#1023748" target="_top">CONNECT BY</a> query, we can compute that object 40 is the second-generation descendant of object 10. With this in mind, if we want to record the fact that user Joe has the <span class="emphasis"><em>read</em></span> privilege on objects <span class="emphasis"><em>A</em></span>, ..., <span class="emphasis"><em>F</em></span>, we only need to record one entry in the <tt class="computeroutput"><a href="permissions-tediously-explained.html#acs_permissions">acs_permissions</a></tt> table. - </p><div class="table"><a name="id2847332"></a><p class="title"><b>Table�8.4.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object</th><th align="center">grantee</th><th align="center">privilege</th></tr></thead><tbody><tr><td align="center">A</td><td align="center">Joe</td><td align="center">read</td></tr></tbody></table></div><p> + </p><div class="table"><a name="id2849810"></a><p class="title"><b>Table�8.4.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object</th><th align="center">grantee</th><th align="center">privilege</th></tr></thead><tbody><tr><td align="center">A</td><td align="center">Joe</td><td align="center">read</td></tr></tbody></table></div><p> The fact that Joe can also read <span class="emphasis"><em>B</em></span>, <span class="emphasis"><em>C</em></span>, ..., and <span class="emphasis"><em>F</em></span> can be derived by ascertaining that these objects are children of <span class="emphasis"><em>A</em></span> by traversing the context hierarchy. As it turns out, hierarchical queries are expensive. As Rafael Schloming put it so aptly, <span class="emphasis"><em>Oracle can't deal with hierarchies for shit.</em></span> </p><p> One way to solve this problem is to cache a flattened view of the context tree like so: - </p><div class="table"><a name="id2847455"></a><p class="title"><b>Table�8.5.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object</th><th align="center">ancestor</th><th align="center">n_generations</th></tr></thead><tbody><tr><td align="center">A</td><td align="center">A</td><td align="center">0</td></tr><tr><td align="center">B</td><td align="center">B</td><td align="center">0</td></tr><tr><td align="center">B</td><td align="center">A</td><td align="center">1</td></tr><tr><td align="center">C</td><td align="center">C</td><td align="center">0</td></tr><tr><td align="center">C</td><td align="center">A</td><td align="center">1</td></tr><tr><td align="center">D</td><td align="center">D</td><td align="center">0</td></tr><tr><td align="center">D</td><td align="center">B</td><td align="center">1</td></tr><tr><td align="center">D</td><td align="center">A</td><td align="center">2</td></tr><tr><td align="center">E</td><td align="center">E</td><td align="center">0</td></tr><tr><td align="center">E</td><td align="center">B</td><td align="center">1</td></tr><tr><td align="center">E</td><td align="center">A</td><td align="center">2</td></tr><tr><td align="center">F</td><td align="center">F</td><td align="center">0</td></tr><tr><td align="center">F</td><td align="center">C</td><td align="center">1</td></tr><tr><td align="center">F</td><td align="center">A</td><td align="center">2</td></tr></tbody></table></div><p> + </p><div class="table"><a name="id2849933"></a><p class="title"><b>Table�8.5.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center">object</th><th align="center">ancestor</th><th align="center">n_generations</th></tr></thead><tbody><tr><td align="center">A</td><td align="center">A</td><td align="center">0</td></tr><tr><td align="center">B</td><td align="center">B</td><td align="center">0</td></tr><tr><td align="center">B</td><td align="center">A</td><td align="center">1</td></tr><tr><td align="center">C</td><td align="center">C</td><td align="center">0</td></tr><tr><td align="center">C</td><td align="center">A</td><td align="center">1</td></tr><tr><td align="center">D</td><td align="center">D</td><td align="center">0</td></tr><tr><td align="center">D</td><td align="center">B</td><td align="center">1</td></tr><tr><td align="center">D</td><td align="center">A</td><td align="center">2</td></tr><tr><td align="center">E</td><td align="center">E</td><td align="center">0</td></tr><tr><td align="center">E</td><td align="center">B</td><td align="center">1</td></tr><tr><td align="center">E</td><td align="center">A</td><td align="center">2</td></tr><tr><td align="center">F</td><td align="center">F</td><td align="center">0</td></tr><tr><td align="center">F</td><td align="center">C</td><td align="center">1</td></tr><tr><td align="center">F</td><td align="center">A</td><td align="center">2</td></tr></tbody></table></div><p> Note that the number of entries in the flattened view grows exponentially with respect to the depth of the context tree. For instance, if you have a fully populated binary tree with a depth of <span class="emphasis"><em>n</em></span>, then the number of entries @@ -203,7 +203,7 @@ an object's <tt class="computeroutput">security_inherit_p</tt> column to 'f', you can stop permissions from cascading down the context tree. In the following example, Joe does not have the read permissions on <span class="emphasis"><em>C</em></span> and <span class="emphasis"><em>F</em></span>. - </p><div class="table"><a name="id2851392"></a><p class="title"><b>Table�8.6.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="3" align="center"><div class="literallayout"><p><br> + </p><div class="table"><a name="id2853048"></a><p class="title"><b>Table�8.6.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="3" align="center"><div class="literallayout"><p><br> <span class="bold"><b>A</b></span><br> <tt class="computeroutput">object_id=10</tt><br> <span class="emphasis"><em>readable�by�Joe</em></span><br> @@ -231,7 +231,7 @@ Privileges are also organized hierarchically. In addition to the five main system privileges defined in the ACS Kernel data model, application developers may define their own. For instance, the Bboard package defines the following privileges: - </p><div class="table"><a name="id2851614"></a><p class="title"><b>Table�8.7.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"></colgroup><thead><tr><th align="center">privilege</th></tr></thead><tbody><tr><td align="center">create_category</td></tr><tr><td align="center">create_forum</td></tr><tr><td align="center">create_message</td></tr><tr><td align="center">delete_category</td></tr><tr><td align="center">delete_forum</td></tr><tr><td align="center">delete_message</td></tr><tr><td align="center">moderate_forum</td></tr><tr><td align="center">read_category</td></tr><tr><td align="center">read_forum</td></tr><tr><td align="center">read_message</td></tr><tr><td align="center">write_category</td></tr><tr><td align="center">write_forum</td></tr><tr><td align="center">write_message</td></tr></tbody></table></div><p> + </p><div class="table"><a name="id2853271"></a><p class="title"><b>Table�8.7.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"></colgroup><thead><tr><th align="center">privilege</th></tr></thead><tbody><tr><td align="center">create_category</td></tr><tr><td align="center">create_forum</td></tr><tr><td align="center">create_message</td></tr><tr><td align="center">delete_category</td></tr><tr><td align="center">delete_forum</td></tr><tr><td align="center">delete_message</td></tr><tr><td align="center">moderate_forum</td></tr><tr><td align="center">read_category</td></tr><tr><td align="center">read_forum</td></tr><tr><td align="center">read_message</td></tr><tr><td align="center">write_category</td></tr><tr><td align="center">write_forum</td></tr><tr><td align="center">write_message</td></tr></tbody></table></div><p> By defining parent-child relationship between privileges, the OpenACS data model makes it easier for developers to manage permissions. Instead of granting a user explicit <span class="emphasis"><em>read</em></span>, <span class="emphasis"><em>write</em></span>, <span class="emphasis"><em>delete</em></span>, @@ -240,7 +240,7 @@ privilege to which the first four privileges are tied. To give a more detailed example, the Bboard privileges are structured as follows. - </p><div class="table"><a name="id2851800"></a><p class="title"><b>Table�8.8.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="13" align="center">admin</td></tr><tr><td colspan="3" align="center">create</td><td colspan="3" align="center">delete</td><td colspan="3" align="center">read</td><td colspan="3" align="center">write</td><td rowspan="2" align="center" valign="middle">moderate forum</td></tr><tr><td align="center">create category</td><td align="center">create forum</td><td align="center">create message</td><td align="center">delete category</td><td align="center">delete forum</td><td align="center">delete message</td><td align="center">read category</td><td align="center">read forum</td><td align="center">read message</td><td align="center">write category</td><td align="center">write forum</td><td align="center">write message</td></tr></tbody></table></div><p> + </p><div class="table"><a name="id2853457"></a><p class="title"><b>Table�8.8.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="13" align="center">admin</td></tr><tr><td colspan="3" align="center">create</td><td colspan="3" align="center">delete</td><td colspan="3" align="center">read</td><td colspan="3" align="center">write</td><td rowspan="2" align="center" valign="middle">moderate forum</td></tr><tr><td align="center">create category</td><td align="center">create forum</td><td align="center">create message</td><td align="center">delete category</td><td align="center">delete forum</td><td align="center">delete message</td><td align="center">read category</td><td align="center">read forum</td><td align="center">read message</td><td align="center">write category</td><td align="center">write forum</td><td align="center">write message</td></tr></tbody></table></div><p> The parent-child relationship between privileges is represented in the <tt class="computeroutput">acs_privilege_hierarchy</tt> table: </p><a name="acs_privilege_hierarchy"></a><pre class="programlisting"> @@ -286,7 +286,7 @@ </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="permissions-tedious-party-hierarchy"></a>Party Hierarchy</h3></div></div><div></div></div><p> Now for the third hierarchy playing a promiment role in the permission system. The party data model is set up as follows. - </p><div class="table"><a name="id2852894"></a><p class="title"><b>Table�8.9.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="2" align="center"><a href="permissions-tediously-explained.html#tedious-parties">parties</a></td></tr><tr><td align="center"><a href="permissions-tediously-explained.html#persons">persons</a></td><td rowspan="2" align="center" valign="top"><a href="permissions-tediously-explained.html#groups">groups</a></td></tr><tr><td align="center"><a href="permissions-tediously-explained.html#users">users</a></td></tr></tbody></table></div><a name="tedious-parties"></a><pre class="programlisting"> + </p><div class="table"><a name="id2854552"></a><p class="title"><b>Table�8.9.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"></colgroup><tbody><tr><td colspan="2" align="center"><a href="permissions-tediously-explained.html#tedious-parties">parties</a></td></tr><tr><td align="center"><a href="permissions-tediously-explained.html#persons">persons</a></td><td rowspan="2" align="center" valign="top"><a href="permissions-tediously-explained.html#groups">groups</a></td></tr><tr><td align="center"><a href="permissions-tediously-explained.html#users">users</a></td></tr></tbody></table></div><a name="tedious-parties"></a><pre class="programlisting"> create table <span class="bold"><b>parties</b></span> ( party_id not null @@ -370,7 +370,7 @@ </pre><p> The <tt class="computeroutput"><a href="permissions-tediously-explained.html#acs_rels">acs_rels</a></tt> table entries would look like so: - </p><div class="table"><a name="id2853272"></a><p class="title"><b>Table�8.10.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center"><tt class="computeroutput">rel_type</tt></th><th align="center"><tt class="computeroutput">object_one</tt></th><th align="center"><tt class="computeroutput">object_two</tt></th></tr></thead><tbody><tr><td align="center"> + </p><div class="table"><a name="id2854930"></a><p class="title"><b>Table�8.10.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center"><tt class="computeroutput">rel_type</tt></th><th align="center"><tt class="computeroutput">object_one</tt></th><th align="center"><tt class="computeroutput">object_two</tt></th></tr></thead><tbody><tr><td align="center"> membership_rel </td><td align="center"> Pranksters @@ -405,7 +405,7 @@ </pre><p> The relevant entries in the <tt class="computeroutput"><a href="permissions-tediously-explained.html#acs_rels">acs_rels</a></tt> look like so. - </p><div class="table"><a name="id2853492"></a><p class="title"><b>Table�8.11.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center"><tt class="computeroutput">rel_type</tt></th><th align="center"><tt class="computeroutput">object_one</tt></th><th align="center"><tt class="computeroutput">object_two</tt></th></tr></thead><tbody><tr><td align="center"> + </p><div class="table"><a name="id2855150"></a><p class="title"><b>Table�8.11.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center"><tt class="computeroutput">rel_type</tt></th><th align="center"><tt class="computeroutput">object_one</tt></th><th align="center"><tt class="computeroutput">object_two</tt></th></tr></thead><tbody><tr><td align="center"> composition_rel </td><td align="center"> Pranksters @@ -616,7 +616,7 @@ </pre><p> Note that in the above example, <tt class="computeroutput">acs_permissions</tt> had only one entry that needed to be deleted: - </p><div class="table"><a name="id2854129"></a><p class="title"><b>Table�8.12.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center"><tt class="computeroutput">object_id</tt></th><th align="center"><tt class="computeroutput">grantee_id</tt></th><th align="center"><tt class="computeroutput">privilege</tt></th></tr></thead><tbody><tr><td align="center"> + </p><div class="table"><a name="id2855787"></a><p class="title"><b>Table�8.12.�</b></p><table cellspacing="0" border="1"><colgroup><col align="center"><col align="center"><col align="center"></colgroup><thead><tr><th align="center"><tt class="computeroutput">object_id</tt></th><th align="center"><tt class="computeroutput">grantee_id</tt></th><th align="center"><tt class="computeroutput">privilege</tt></th></tr></thead><tbody><tr><td align="center"> default_context </td><td align="center"> registered_users Index: openacs-4/packages/acs-core-docs/www/postgres.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/postgres.html,v diff -u -r1.17 -r1.18 --- openacs-4/packages/acs-core-docs/www/postgres.html 31 Oct 2003 15:57:34 -0000 1.17 +++ openacs-4/packages/acs-core-docs/www/postgres.html 5 Nov 2003 11:48:10 -0000 1.18 @@ -3,13 +3,13 @@ OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. </p></div><p>Skip this section if you will run only Oracle.</p><p>OpenACS 5.0.0a4 will run with <a href="individual-programs.html#source-postgresql">PostGreSQL</a> 7.2.x, 7.3.2, - 7.3.3, and 7.3.4. 7.3.4 is the recommended version of PostgreSQL.</p><div class="itemizedlist"><ul type="disc"><li><p><a name="install-postgres-rpm"></a><b>Using the Red Hat RPM.�</b>Red Hat users: If you install PostGreSQL 7.3.4 from the Red Hat 9 RPM, you - can skip a few steps. These shell commands add a link so that the - data directory appears to be in the same place as in a source - install; start the service; create a new group for web service + 7.3.3, and 7.3.4. 7.3.4 is the recommended version of PostgreSQL.</p><div class="itemizedlist"><ul type="disc"><li><p><a name="install-postgres-rpm"></a><b>Using the Red Hat RPM.�</b>Red Hat users: If you install PostGreSQL 7.3.2 from the Red Hat 9 RPM, you + can skip a few steps. These shell commands add some links for compatibility with the directories from a source-based install; start the service; create a new group for web service users, and modify the postgres user's environment (<a href="postgres.html#install-postgres-env">more - information</a>):</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>ln -s /var/lib/pgsql/data /usr/local/pgsql/data</tt></b> + information</a>):</p><pre class="screen">[root@yourserver root]# <b class="userinput"><tt>ln -s /usr/lib/pgsql/ /var/lib/pgsql/lib</tt></b> +[root@yourserver root]# <b class="userinput"><tt>ln -s /var/lib/pgsql /usr/local/pgsql</tt></b> +[root@yourserver root]# <b class="userinput"><tt>ln -s /etc/init.d/postgresql /etc/init.d/postgres</tt></b> [root@yourserver root]# <b class="userinput"><tt>service postgresql start</tt></b> Initializing database: [ OK ] @@ -20,7 +20,8 @@ [root@yourserver root]# <b class="userinput"><tt>su - postgres</tt></b> -bash-2.05b$ <pre class="action"><span class="action"> -ln -s /var/lib/pgsql/data /usr/local/pgsql/data +ln -s /usr/lib/pgsql/ /var/lib/pgsql/lib +ln -s /var/lib/pgsql /usr/local/pgsql service postgresql start echo "export LD_LIBRARY_PATH=/usr/local/pgsql/lib" >> ~postgres/.bash_profile echo "export PATH=$PATH:/usr/local/pgsql/bin" >> ~postgres/.bash_profile @@ -62,7 +63,7 @@ Change to the postgres user and run <tt class="computeroutput">./configure</tt> to set the compilation options automatically. This is the point at which you can configure PostgreSQL in various ways. For example, if you want to enable - Unicode<a class="indexterm" name="id2815650"></a> support, add the flags <tt class="computeroutput">--enable-locale</tt> and <tt class="computeroutput">--enable-multibyte</tt>. If you want to see what the other possibilities are, run <tt class="computeroutput">./configure --help</tt>. + Unicode<a class="indexterm" name="id2820707"></a> support, add the flags <tt class="computeroutput">--enable-locale</tt> and <tt class="computeroutput">--enable-multibyte</tt>. If you want to see what the other possibilities are, run <tt class="computeroutput">./configure --help</tt>. </p><pre class="screen">[root@yourserver src]# <b class="userinput"><tt>su - postgres</tt></b> [postgres@yourserver pgsql]$<b class="userinput"><tt> cd /usr/local/src/postgresql-7.3.4</tt></b> [postgres@yourserver postgresql-7.3.4]$ <b class="userinput"><tt>./configure</tt></b> Index: openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html 31 Oct 2003 15:57:34 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/psgml-for-emacs.html 5 Nov 2003 11:48:10 -0000 1.10 @@ -1,4 +1,4 @@ -<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Add PSGML commands to emacs init file (OPTIONAL)</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix�B.�Install additional supporting software"><link rel="previous" href="install-cvs.html" title="Initialize CVS (OPTIONAL)"><link rel="next" href="install-daemontools.html" title="Install Daemontools (OPTIONAL)"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-cvs.html">Prev</a> </td><th width="60%" align="center">Appendix�B.�Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="install-daemontools.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="psgml-for-emacs"></a>Add PSGML commands to emacs init file (OPTIONAL)</h2></div></div><div></div></div><p><a class="indexterm" name="id2835462"></a> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Add PSGML commands to emacs init file (OPTIONAL)</title><meta name="generator" content="DocBook XSL Stylesheets V1.60.1"><link rel="home" href="index.html" title="OpenACS Core Documentation"><link rel="up" href="install-more-software.html" title="Appendix�B.�Install additional supporting software"><link rel="previous" href="install-cvs.html" title="Initialize CVS (OPTIONAL)"><link rel="next" href="install-daemontools.html" title="Install Daemontools (OPTIONAL)"><link rel="stylesheet" href="openacs.css" type="text/css"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><a href="http://openacs.org"><img src="/doc/images/alex.jpg" border="0"></a><table width="100%" summary="Navigation header" border="0"><tr><td width="20%" align="left"><a accesskey="p" href="install-cvs.html">Prev</a> </td><th width="60%" align="center">Appendix�B.�Install additional supporting software</th><td width="20%" align="right"> <a accesskey="n" href="install-daemontools.html">Next</a></td></tr></table><hr></div><div class="sect1" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="psgml-for-emacs"></a>Add PSGML commands to emacs init file (OPTIONAL)</h2></div></div><div></div></div><p><a class="indexterm" name="id2835419"></a> If you plan to write or edit any documentation with emacs, install a customized emacs configuration file with DocBook commands in the skeleton directory, so it will be used for all new users. The file also Index: openacs-4/packages/acs-core-docs/www/request-processor.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/request-processor.html,v diff -u -r1.18 -r1.19 --- openacs-4/packages/acs-core-docs/www/request-processor.html 31 Oct 2003 15:57:35 -0000 1.18 +++ openacs-4/packages/acs-core-docs/www/request-processor.html 5 Nov 2003 11:48:10 -0000 1.19 @@ -13,7 +13,7 @@ diagram summarizes the stages of the request processor assuming a URL request like <tt class="computeroutput">http://someserver.com/notes/somepage.adp</tt>. -</p><div class="mediaobject" align="center"><img src="images/rp-flow.gif" align="middle" longdesc="ld-id2839378.html"><div class="longdesc-link" align="right"><br clear="all"><span class="longdesc-link">[<a href="ld-id2839378.html" target="longdesc">D</a>]</span></div></div><p> +</p><div class="mediaobject" align="center"><img src="images/rp-flow.gif" align="middle" longdesc="ld-id2841932.html"><div class="longdesc-link" align="right"><br clear="all"><span class="longdesc-link">[<a href="ld-id2841932.html" target="longdesc">D</a>]</span></div></div><p> </p><div class="variablelist"><dl><dt><span class="term">Stage 1: Search Site Map</span></dt><dd><p> The first thing the RP does is to map the given URL to the appropriate Index: openacs-4/packages/acs-core-docs/www/tutorial-advanced.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-advanced.html,v diff -u -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/tutorial-advanced.html 31 Oct 2003 15:57:35 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/tutorial-advanced.html 5 Nov 2003 11:48:10 -0000 1.11 @@ -2,15 +2,15 @@ by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a><br> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2837411"></a>Overview</h3></div></div><div></div></div><p>This tutorial covers topics which are not essential to + </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2840397"></a>Overview</h3></div></div><div></div></div><p>This tutorial covers topics which are not essential to creating a minimal working package. Each section can be used independently of all of the others; all sections assume that you've completed the basic tutorial.</p><div class="itemizedlist"><ul type="disc"><li><p>How to enforce security so that users can't change other users records</p></li><li><p>How to use the content management tables so that ... what?</p></li><li><p>How to change the default stylesheets for Form Builder HTML forms.</p></li><li><p>How to make your package searchable with OpenFTS/Oracle</p></li><li><p>How to make your package send email notifications</p></li><li><p>How to prepare pagelets for inclusion in other pages</p></li><li><p>How and when to put procedures in a tcl procedure library</p></li><li><p>How to add general_comments to your pages</p></li><li><p>More on ad_form - data validation, other stuff. (plan to draw from Jon Griffin's doc)</p></li><li><p>How and when to implement caching</p></li><li><p>partialquery in xql</p></li><li><p>How to use the html/text entry widget to get the - "does this look right" confirm page </p></li><li><p>APM package dependencies</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2837512"></a>Write the Requirements and Design Specs</h3></div></div><div></div></div><p>It's time to document. For the tutorial we'll use + "does this look right" confirm page </p></li><li><p>APM package dependencies</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2840498"></a>Write the Requirements and Design Specs</h3></div></div><div></div></div><p>It's time to document. For the tutorial we'll use pre-written documentation. When creating a package from scratch, start by copying the documentation template from <tt class="computeroutput">/var/lib/aolserver/openacs-dev/packages/acs-core-docs/xml/docs/xml/package-documentation-template.xml</tt> @@ -60,7 +60,7 @@ Writing bi01.html for bibliography Writing index.html for book [service0@yourserver xml]$</pre><p>Verify that the documentation was generated and reflects - your changes by browsing to <tt class="computeroutput">http://<span class="replaceable"><span class="replaceable">yoursite</span></span>:8000/samplenote/doc</tt></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2837683"></a>Add the new package to CVS</h3></div></div><div></div></div><p>Before you do any more work, make sure that your work is + your changes by browsing to <tt class="computeroutput">http://<span class="replaceable"><span class="replaceable">yoursite</span></span>:8000/samplenote/doc</tt></p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2840954"></a>Add the new package to CVS</h3></div></div><div></div></div><p>Before you do any more work, make sure that your work is protected by putting it all into cvs. The <tt class="computeroutput">cvs add</tt> command is not recursive, so you'll have to traverse the directory tree manually and add as you go. (<a href="http://www.piskorski.com/docs/cvs-conventions.html" target="_top">More on @@ -120,7 +120,7 @@ initial revision: 1.1 done <span class="emphasis"><em>(many lines omitted)</em></span> -[service0@yourserver samplenote]$</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2839733"></a>Delete with confirmation</h3></div></div><div></div></div><p>We need a way to delete records. We'll create a +[service0@yourserver samplenote]$</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2841102"></a>Delete with confirmation</h3></div></div><div></div></div><p>We need a way to delete records. We'll create a recursive confirmation page.</p><p>Add this column to the table_def in index.tcl</p><pre class="programlisting">{delete "" {} {<td><a href="note-delete?note_id=$note_id">Delete</a></td>}}</pre><p>Create the delete confirmation/execution page.</p><pre class="screen">[service0@yourserver www]$ <b class="userinput"><tt>emacs note-delete.tcl</tt></b></pre><pre class="programlisting">ad_page_contract { A page that gets confirmation and then delete notes. @@ -180,7 +180,7 @@ <formtemplate id="note-del-confirm"></formtemplate> </form></pre><p>The ADP is very simple. The <tt class="computeroutput">formtemplate</tt> tag outputs the HTML -form generated by the ad_form command with the matching name. Test it by adding the new files in the APM and then deleting a few samplenotes.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2839881"></a>General_comments</h3></div></div><div></div></div><p>You can track comments for any ACS Object. Here we'll track +form generated by the ad_form command with the matching name. Test it by adding the new files in the APM and then deleting a few samplenotes.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2838769"></a>General_comments</h3></div></div><div></div></div><p>You can track comments for any ACS Object. Here we'll track comments for notes. On the notes.tcl/adp pair, which is used to display individual notes, we want to put a link to add comments at the bottom of the screen. If there are any comments, we want to @@ -201,13 +201,13 @@ there are comments. Then you pass the note id, which is also the acs_object id.</p><p>We put our two new variables in the notes.adp page.</p><pre class="programlisting"><a href="@comment_add_url@">Add a comment</a> -@comments_html@</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2839952"></a>Prepare the package for distribution.</h3></div></div><div></div></div><p>Browse to the package manager. Click on +@comments_html@</pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2838840"></a>Prepare the package for distribution.</h3></div></div><div></div></div><p>Browse to the package manager. Click on <tt class="computeroutput"><span class="guilabel"><span class="guilabel">tutorialapp</span></span></tt>.</p><p>Click on <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Generate a distribution file for this package from the filesystem</span></span></tt>. </p><p>Click on the file size (<tt class="computeroutput"><span class="guilabel"><span class="guilabel">37.1KB</span></span></tt>) after the label <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Distribution File:</span></span></tt> and save the file to - /tmp.</p><p><a class="indexterm" name="id2839999"></a> + /tmp.</p><p><a class="indexterm" name="id2838887"></a> </p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-debug.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="dev-guide.html">Next</a></td></tr><tr><td width="40%" align="left">Debugging and Automated Testing </td><td width="20%" align="center"><a accesskey="u" href="tutorial.html">Up</a></td><td width="40%" align="right"> Chapter�8.�Development Reference</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/tutorial-advanced.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/tutorial-database.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-database.html,v diff -u -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/tutorial-database.html 31 Oct 2003 15:57:35 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/tutorial-database.html 5 Nov 2003 11:48:10 -0000 1.11 @@ -2,7 +2,7 @@ by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a><br> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2832777"></a>Code the data model</h3></div></div><div></div></div><p>We create all database objects with scripts in the + </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2820344"></a>Code the data model</h3></div></div><div></div></div><p>We create all database objects with scripts in the <tt class="computeroutput">myfirstpackage/sql/</tt> directory. All database scripts are database-specific and are thus in either the <tt class="computeroutput">myfirstpackage/sql/oracle</tt> or @@ -37,7 +37,7 @@ <tt class="computeroutput">@author</tt> which will be picked up by the API browser. The string <tt class="computeroutput">$Id$</tt> will automatically be - expanded when the file is checked in to cvs.</p><pre class="screen">[service0@yourserver postgresql]$ <b class="userinput"><tt>emacs myfirstpackage-create.sql</tt></b></pre><p>Paste this into the file and save and close.</p><div class="figure"><a name="id2832421"></a><p class="title"><b>Figure�7.2.�Database Creation Script - master create file</b></p><pre class="programlisting">-- + expanded when the file is checked in to cvs.</p><pre class="screen">[service0@yourserver postgresql]$ <b class="userinput"><tt>emacs myfirstpackage-create.sql</tt></b></pre><p>Paste this into the file and save and close.</p><div class="figure"><a name="id2832515"></a><p class="title"><b>Figure�7.2.�Database Creation Script - master create file</b></p><pre class="programlisting">-- -- @author rhs@mit.edu -- @cvs-id $Id$ -- @@ -57,7 +57,7 @@ object. Notice the use of "mfp." This token, derived from "My First Package," ensures that our object is unlikely to conflict with objects from other packages.</p><p>Create a database file to drop everything if the package - is uninstalled.</p><pre class="screen">[service0@yourserver postgresql]$ <b class="userinput"><tt>emacs myfirstpackage-drop.sql</tt></b></pre><div class="figure"><a name="id2836333"></a><p class="title"><b>Figure�7.3.�Database deletion script</b></p><pre class="programlisting">-- packages/myfirstpackage/sql/myfirstpackage-drop.sql + is uninstalled.</p><pre class="screen">[service0@yourserver postgresql]$ <b class="userinput"><tt>emacs myfirstpackage-drop.sql</tt></b></pre><div class="figure"><a name="id2835314"></a><p class="title"><b>Figure�7.3.�Database deletion script</b></p><pre class="programlisting">-- packages/myfirstpackage/sql/myfirstpackage-drop.sql -- drop script -- -- @author joel@aufrecht.org @@ -77,4 +77,9 @@ (1 row) [service0@yourserver postgresql]$</pre><p>If there are errors, use them to debug the sql file and try again. If there are errors in the database table creation, you may need to run the drop script to drop the table so that you can recreate it. The drop script will probably have errors since some of the things it's trying to drop may be missing. They can be ignored.</p><p>Once you get the same output as shown above, test the drop script:</p><pre class="screen">[service0@yourserver postgresql]$ <b class="userinput"><tt>psql -f myfirstpackage-drop.sql</tt></b> -[service0@yourserver postgresql]$</pre><p>Once both scripts are working without errors, run the create script one last time and proceed.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-newpackage.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial-pages.html">Next</a></td></tr><tr><td width="40%" align="left">Creating a Package </td><td width="20%" align="center"><a accesskey="u" href="tutorial.html">Up</a></td><td width="40%" align="right"> Creating Web Pages</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/tutorial-database.html#comments">View comments on this page at openacs.org</a></center></body></html> + content_type__drop_type +------------------------- + 0 +(1 row) + +[service0@yourserver postgresql]$</pre><p>Once both scripts are working without errors, <span class="emphasis"><em>run the create script one last time</em></span> and proceed.</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="tutorial-newpackage.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="tutorial-pages.html">Next</a></td></tr><tr><td width="40%" align="left">Creating a Package </td><td width="20%" align="center"><a accesskey="u" href="tutorial.html">Up</a></td><td width="40%" align="right"> Creating Web Pages</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/tutorial-database.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/tutorial-debug.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-debug.html,v diff -u -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/tutorial-debug.html 31 Oct 2003 15:57:35 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/tutorial-debug.html 5 Nov 2003 11:48:10 -0000 1.11 @@ -2,7 +2,7 @@ by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a><br> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2835330"></a>Debugging</h3></div></div><div></div></div><p><b>Developer Support.�</b>The Developer Support package adds several goodies: debug + </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2819173"></a>Debugging</h3></div></div><div></div></div><p><b>Developer Support.�</b>The Developer Support package adds several goodies: debug information for every page; the ability to log comments to the page instead of the error log, and fast user switching so that you can test pages as anonymous and as dummy users without logging @@ -24,17 +24,17 @@ ?�searches�backward�<br> /�searches�forward.�<br> ����������</p></div><p> - </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2835288"></a>Manual testing</h3></div></div><div></div></div><p>Make a list of basic tests to make sure it works</p><div class="segmentedlist"><table border="0"><thead><tr><th>Test Num</th><th>Action</th><th>Expected Result</th></tr></thead><tbody><tr><td>001</td><td>Browse to the index page while not logged in and + </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2837497"></a>Manual testing</h3></div></div><div></div></div><p>Make a list of basic tests to make sure it works</p><div class="segmentedlist"><table border="0"><thead><tr><th>Test Num</th><th>Action</th><th>Expected Result</th></tr></thead><tbody><tr><td>001</td><td>Browse to the index page while not logged in and while one or more notes exist.</td><td>No edit or delete or add links should appear.</td></tr><tr><td>002</td><td>Browse to the index page while logged in. An Edit link should appear. Click on it. Fill out the form and click Submit.</td><td>The text added in the form should be visible on the index page.</td></tr></tbody></table></div><p>Other things to test: try to delete someone else's note. Try to delete your own note. Edit your own note. - Search for a note.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2837867"></a>Write automated tests</h3></div></div><div></div></div><div class="authorblurb"><p> + Search for a note.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2837577"></a>Write automated tests</h3></div></div><div></div></div><div class="authorblurb"><p> by <a href="mailto:simon@collaboraid.net" target="_top">Simon Carstensen</a><br> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </p></div><p><a class="indexterm" name="id2837886"></a>It seems to me that a lot of + </p></div><p><a class="indexterm" name="id2837597"></a>It seems to me that a lot of people have been asking for some guidelines on how to write automated tests. I've done several tests by now and have found the process to be extremely easy and useful. It's a joy to work with automated testing Index: openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html,v diff -u -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 31 Oct 2003 15:57:35 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/tutorial-newpackage.html 5 Nov 2003 11:48:10 -0000 1.11 @@ -2,7 +2,7 @@ by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a><br> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="tutorial-picture"></a>The basic coding model</h3></div></div><div></div></div><p>...</p><img src="images/code-model.png"></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2833013"></a>Overview</h3></div></div><div></div></div><p>To start developing new code in OpenACS, we build a new + </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="tutorial-picture"></a>The basic coding model</h3></div></div><div></div></div><p>...</p><img src="images/code-model.png"></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2817614"></a>Overview</h3></div></div><div></div></div><p>To start developing new code in OpenACS, we build a new package. A package is a a discrete collection of web pages, tcl code, and database tables and procedures. A package with user interface is called an <span class="emphasis"><em>application</em></span>; a package which provides @@ -15,11 +15,11 @@ writing web pages, debugging, and automatic regression testing. </p><p>In this tutorial, we will make an application package for displaying a list of text notes. -</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2821725"></a>Before you begin</h3></div></div><div></div></div><p>You will need:</p><div class="itemizedlist"><ul type="disc"><li><p>A computer with a working installation of +</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2834212"></a>Before you begin</h3></div></div><div></div></div><p>You will need:</p><div class="itemizedlist"><ul type="disc"><li><p>A computer with a working installation of OpenACS. If you don't have this, see <a href="install-overview.html" title="Chapter�2.�Installation Overview">Chapter�2, <i>Installation Overview</i></a>. </p></li><li><p>Example files, which are included in the standard OpenACS 5.0.0a4 distribution. - </p></li></ul></div><div class="figure"><a name="id2836405"></a><p class="title"><b>Figure�7.1.�Assumptions in this section</b></p><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col></colgroup><tbody><tr><td>Fully qualified domain name of your server</td><td><span class="replaceable"><span class="replaceable">yourserver.test</span></span></td></tr><tr><td>URL of your server</td><td><span class="replaceable"><span class="replaceable">http://yourserver.test:8000</span></span></td></tr><tr><td>Name of development account</td><td><span class="replaceable"><span class="replaceable">service0</span></span></td></tr><tr><td>New Package key</td><td><span class="replaceable"><span class="replaceable">myfirstpackage</span></span></td></tr></tbody></table></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2833092"></a>Use the APM to initialize a new package</h3></div></div><div></div></div><p>We use the <a href="packages.html" target="_top">ACS Package Manager</a> (APM) to add, remove, and + </p></li></ul></div><div class="figure"><a name="id2834530"></a><p class="title"><b>Figure�7.1.�Assumptions in this section</b></p><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col></colgroup><tbody><tr><td>Fully qualified domain name of your server</td><td><span class="replaceable"><span class="replaceable">yourserver.test</span></span></td></tr><tr><td>URL of your server</td><td><span class="replaceable"><span class="replaceable">http://yourserver.test:8000</span></span></td></tr><tr><td>Name of development account</td><td><span class="replaceable"><span class="replaceable">service0</span></span></td></tr><tr><td>New Package key</td><td><span class="replaceable"><span class="replaceable">myfirstpackage</span></span></td></tr></tbody></table></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2837730"></a>Use the APM to initialize a new package</h3></div></div><div></div></div><p>We use the <a href="packages.html" target="_top">ACS Package Manager</a> (APM) to add, remove, and upgrade packages. It handles package meta-data, such as lists of files that belong in the package. Each package is uniquely identified by a package key. To start developing a new @@ -28,7 +28,7 @@ the initial directories, meta-information files, and database entries for a new package. (<a href="apm-requirements.html" target="_top">More info on APM</a>) </p><div class="orderedlist"><ol type="1"><li><p>Browse to - <tt class="computeroutput">http://<span class="replaceable"><span class="replaceable">yourserver</span></span>:8000/<a href="/acs-admin/apm" target="_top">acs-admin/apm</a></tt>. + <tt class="computeroutput">http://<span class="replaceable"><span class="replaceable">yourserver:8000</span></span><a href="/acs-admin/apm" target="_top">/acs-admin/apm</a></tt>. </p></li><li><p>Click <tt class="computeroutput">Create a New Package</tt>.</p><p>Fill in the fields listed below. Tab through the rest. (Some will change automatically. Don't mess with those.) </p><div class="itemizedlist"><ul type="disc"><li><p> @@ -51,7 +51,7 @@ </p></li></ol></div><p>This creates a package rooted at <tt class="computeroutput">/var/lib/aolserver/<span class="replaceable"><span class="replaceable">service0</span></span>/packages/<span class="replaceable"><span class="replaceable">myfirstpackage</span></span></tt>. This is the "home directory" of our new package, and all - files in the package will be within this directory.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2836170"></a>Mount the package in the site map</h3></div></div><div></div></div><p>In order to see your work in progress, you must create a + files in the package will be within this directory.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2837933"></a>Mount the package in the site map</h3></div></div><div></div></div><p>In order to see your work in progress, you must create a map between the URL space of incoming requests and the package. You do this by mounting the package in the Site Map. This creates a link between the incoming URL and an @@ -61,7 +61,7 @@ code and tables. This requires that a package be developed <span class="emphasis"><em>package-aware</em></span>. You'll see how to do that in this tutorial.</p><div class="orderedlist"><ol type="1"><li><p>Browse to -<tt class="computeroutput">http://yourserver.test:8000<a href="/acs-admin/site-map/" target="_top">/admin/site-map/</a></tt>.</p></li><li><p>Click the <tt class="computeroutput"><span class="guilabel"><span class="guilabel">new sub +<tt class="computeroutput"><span class="replaceable"><span class="replaceable">http://yourserver.test:8000</span></span><a href="/admin/site-map/" target="_top">/admin/site-map/</a></tt>.</p></li><li><p>Click the <tt class="computeroutput"><span class="guilabel"><span class="guilabel">new sub folder</span></span></tt> link on the top row in the Site Map table.</p></li><li><p>Type <b class="userinput"><tt>note</tt></b> and click <tt class="computeroutput"><span class="guibutton"><span class="guibutton">New</span></span></tt>. </p></li><li><p>This creates a new row called Index: openacs-4/packages/acs-core-docs/www/tutorial-pages.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-pages.html,v diff -u -r1.10 -r1.11 --- openacs-4/packages/acs-core-docs/www/tutorial-pages.html 31 Oct 2003 15:57:35 -0000 1.10 +++ openacs-4/packages/acs-core-docs/www/tutorial-pages.html 5 Nov 2003 11:48:10 -0000 1.11 @@ -2,17 +2,16 @@ by <a href="mailto:joel@aufrecht.org" target="_top">Joel Aufrecht</a><br> OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. - </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2831047"></a>Build the "Index" page</h3></div></div><div></div></div><p>Each user-visible page in your package has, typically, + </p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2817770"></a>Build the "Index" page</h3></div></div><div></div></div><p>Each user-visible page in your package has, typically, three parts. The <tt class="computeroutput">xql</tt> file contains any database queries, the <tt class="computeroutput">tcl</tt> file holds the procedural logic for the page and does things like check permissions, invoke the database queries, and modify variables, and the <tt class="computeroutput">adp</tt> page holds html. The default page in any directory is <tt class="computeroutput">index</tt>, so we'll build that first, starting with the tcl file: -</p><pre class="screen">[service0@yourserver samplenote]$<b class="userinput"><tt> mkdir /web/service0/packages/samplenote/www</tt></b> -[service0@yourserver samplenote]$<b class="userinput"><tt> cd /web/service0/packages/samplenote/www</tt></b> -[service0@yourserver www]$ <b class="userinput"><tt>emacs index.tcl</tt></b></pre><p>Paste this into the file.</p><pre class="programlisting">ad_page_contract { +</p><pre class="screen">[service0@yourserver postgresql]$<b class="userinput"><tt> cd /var/lib/aolserver/service0/myfirstpackages/www</tt></b> +[service0@yourserver www <b class="userinput"><tt>emacs index.tcl</tt></b></pre><p>Paste this into the file.</p><pre class="programlisting">ad_page_contract { This is the main page for the package. It displays all of the Notes and provides links to edit them and to create new Notes. @author rhs@mit.edu @@ -69,7 +68,7 @@ </queryset></pre><p>Create the user-visible page.</p><pre class="screen">[service0@yourserver www]$ <b class="userinput"><tt>emacs index.adp</tt></b></pre><p>The first line indicates that this page should be rendered within the the master template, which defaults to <tt class="computeroutput">/web/service0/www/default-master</tt>. The second line passes a <tt class="computeroutput">title</tt> variable to the master template. The third line inserts the contents of the variable <tt class="computeroutput">table_html</tt>. The last line is a link to a page we haven't created yet.</p><pre class="programlisting"><master> <property name="title">Sample Notes</property> @table_html@ -<p><a href="note-edit">Add a note</a></p></pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2835074"></a>Making the APM load your files</h3></div></div><div></div></div><p>Before we can test these files, we have to notify the +<p><a href="note-edit">Add a note</a></p></pre></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2837296"></a>Making the APM load your files</h3></div></div><div></div></div><p>Before we can test these files, we have to notify the package manager that they exist. (More precisely, the tcl and adp will work fine as-is, but the xql file will not be recognized until we tell the APM about it.).</p><div class="itemizedlist"><ul type="disc"><li><p> Go to <tt class="computeroutput">http://yourserver.test:8000/acs-admin/apm</tt></p></li><li><p>Click on the <tt class="computeroutput">samplenote</tt> link</p></li><li><p>Click <tt class="computeroutput">Manage file information</tt></p></li><li><p> @@ -85,7 +84,7 @@ to load the contents of the XQL into memory so that it can be used, and to reload it whenever the file is changed. The watch will last until the server is restarted. - </p></li></ul></div><p>Now that the APM is aware of your files, check to make sure that the self-documenting code is working.</p><div class="itemizedlist"><ul type="disc"><li><p>Browse to <tt class="computeroutput">http://yourserver.test:8000/api-doc/</tt></p></li><li><p>Click <tt class="computeroutput">Notes 0.1d</tt></p></li><li><p>Click <tt class="computeroutput">Content Pages</tt></p></li><li><p>Click <tt class="computeroutput">index.tcl</tt> and examine the results.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2835214"></a>Test the index page</h3></div></div><div></div></div><p>Go to <tt class="computeroutput">http://<span class="replaceable"><span class="replaceable">yourserver.test:8000</span></span>/note/</tt>. You should see this:</p><pre class="screen"> + </p></li></ul></div><p>Now that the APM is aware of your files, check to make sure that the self-documenting code is working.</p><div class="itemizedlist"><ul type="disc"><li><p>Browse to <tt class="computeroutput">http://yourserver.test:8000/api-doc/</tt></p></li><li><p>Click <tt class="computeroutput">Notes 0.1d</tt></p></li><li><p>Click <tt class="computeroutput">Content Pages</tt></p></li><li><p>Click <tt class="computeroutput">index.tcl</tt> and examine the results.</p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2837436"></a>Test the index page</h3></div></div><div></div></div><p>Go to <tt class="computeroutput">http://<span class="replaceable"><span class="replaceable">yourserver.test:8000</span></span>/note/</tt>. You should see this:</p><pre class="screen"> Sample Notes Your Workspace : Main Site : Sample Note @@ -94,7 +93,7 @@ Add a note. foo@yourserver.test -</pre><p>Since our table is empty, it's a pretty boring page. So next we'll make it possible to add records. </p><p>If you get any other output, such as an error message, skip to <a href="tutorial-debug.html" title="Debugging and Automated Testing">Section�, “Debugging and Automated Testing”</a>.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2836971"></a>Add the add/edit page</h3></div></div><div></div></div><p>We'll create a single page to handle both adding and +</pre><p>Since our table is empty, it's a pretty boring page. So next we'll make it possible to add records. </p><p>If you get any other output, such as an error message, skip to <a href="tutorial-debug.html" title="Debugging and Automated Testing">Section�, “Debugging and Automated Testing”</a>.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2840006"></a>Add the add/edit page</h3></div></div><div></div></div><p>We'll create a single page to handle both adding and editing records. In this recursive approach, the same tcl function can present a blank HTML form, present the same form pre-loaded with an existing record, and handle the resulting @@ -173,7 +172,7 @@ <tt class="computeroutput">title</tt>, for both variables but wrap it in curly brackets for context so that the spaces aren't interpreted separators. The formtemplate tag outputs the form - html with the matching name.</p><p>Go to the APM as before and reload. Then test all this by going to the package home page and adding and editing a few records.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2837136"></a>Adding files to cvs</h3></div></div><div></div></div><p>Put your new work into source control.</p><pre class="screen">[service0@yourserver www]$ <b class="userinput"><tt>cvs add *.adp *.tcl *.xql</tt></b> + html with the matching name.</p><p>Go to the APM as before and reload. Then test all this by going to the package home page and adding and editing a few records.</p></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2840171"></a>Adding files to cvs</h3></div></div><div></div></div><p>Put your new work into source control.</p><pre class="screen">[service0@yourserver www]$ <b class="userinput"><tt>cvs add *.adp *.tcl *.xql</tt></b> cvs add: cannot add special file `CVS'; skipping cvs add: doc/CVS already exists cvs add: scheduling file `index.adp' for addition Index: openacs-4/packages/acs-core-docs/www/unix-installation.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/unix-installation.html,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/unix-installation.html 31 Oct 2003 15:57:35 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/unix-installation.html 5 Nov 2003 11:48:10 -0000 1.4 @@ -8,5 +8,5 @@ information on FreeBSD installation</a>)</p></div></li></ul></div><p>and optionally these programs, which are included in most distributions:</p><div class="itemizedlist"><ul type="disc"><li><p>emacs</p></li><li><p>cvs (and <a href="install-cvs.html" title="Initialize CVS (OPTIONAL)">initialize</a> it)</p></li><li><p>ImageMagick</p></li><li><p>DocBook and supporting software (and <a href="psgml-for-emacs.html" title="Add PSGML commands to emacs init file (OPTIONAL)">install</a> emacs keybindings for DocBook SGML)</p></li><li><p>daemontools (<a href="install-daemontools.html" title="Install Daemontools (OPTIONAL)">install from source</a>)</p></li><li><p>a Mail Transport Agent, such as exim or sendmail (or <a href="install-qmail.html" title="Install qmail (OPTIONAL)">install qmail from source</a>)</p></li></ul></div><p>To install a machine to the specifications of the Reference - Platform, do the <a href="install-redhat.html" title="Appendix�A.�Install Red Hat 8.0">walkthrough of the + Platform, do the <a href="install-redhat.html" title="Appendix�A.�Install Red Hat 8/9">walkthrough of the Red Hat 8.0 Install for OpenACS</a>.</p></div><div class="cvstag">($Id$)</div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="complete-install.html">Prev</a> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right"> <a accesskey="n" href="oracle.html">Next</a></td></tr><tr><td width="40%" align="left">Chapter�3.�Complete Installation </td><td width="20%" align="center"><a accesskey="u" href="complete-install.html">Up</a></td><td width="40%" align="right"> Install Oracle 8.1.7</td></tr></table><hr><address><a href="mailto:docs@openacs.org">docs@openacs.org</a></address></div><a name="comments"></a><center><a href="http://openacs.org/doc/unix-installation.html#comments">View comments on this page at openacs.org</a></center></body></html> Index: openacs-4/packages/acs-core-docs/www/upgrade-detail.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/upgrade-detail.html,v diff -u -r1.12 -r1.13 --- openacs-4/packages/acs-core-docs/www/upgrade-detail.html 31 Oct 2003 15:57:35 -0000 1.12 +++ openacs-4/packages/acs-core-docs/www/upgrade-detail.html 5 Nov 2003 11:48:10 -0000 1.13 @@ -9,13 +9,13 @@ manual intervention should be required. If you are running OpenACS prior to 4.5, upgrading will require manual effort.</p><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="upgrade-4.5-to-4.6"></a>Checklist</h3></div></div><div></div></div><p>The required platform for OpenACS 4.6 is the same as 4.5, with the excepion of OpenFTS. You now need OpenFTS 0.3.2, not 0.2. - OpenACS 4.6 does not support PostGreSQL 7.3.</p><div class="itemizedlist"><ul type="circle"><li style="list-style-type: circle"><p>A computer with OpenACS 4.5.</p></li><li style="list-style-type: circle"><p><a href="http://openacs.org/projects/openacs/download/" target="_top">OpenACS 4.6 tarball</a></p></li><li style="list-style-type: circle"><p>Required for Full Text Search on PostGreSQL: <a href="http://openfts.sourceforge.net" target="_top">OpenFTS 0.3.2</a></p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2817676"></a>Overview</h3></div></div><div></div></div><p>OpenACS consists of files and a database schema. The files + OpenACS 4.6 does not support PostGreSQL 7.3.</p><div class="itemizedlist"><ul type="circle"><li style="list-style-type: circle"><p>A computer with OpenACS 4.5.</p></li><li style="list-style-type: circle"><p><a href="http://openacs.org/projects/openacs/download/" target="_top">OpenACS 4.6 tarball</a></p></li><li style="list-style-type: circle"><p>Required for Full Text Search on PostGreSQL: <a href="http://openfts.sourceforge.net" target="_top">OpenFTS 0.3.2</a></p></li></ul></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2828142"></a>Overview</h3></div></div><div></div></div><p>OpenACS consists of files and a database schema. The files in the OpenACS 4.6 tarball include database upgrade scripts. To start the upgrade, replace your existing files with the new files and then restart the server. Then, browse to the APM, which will detect the new packages and offer to run the appropriate database upgrade scripts. After restarting the server again, the upgrade is - complete.</p><div class="figure"><a name="id2817696"></a><p class="title"><b>Figure�5.1.�Assumptions in this section</b></p><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col></colgroup><tbody><tr><td>name of OpenACS user</td><td><span class="replaceable"><span class="replaceable">nsadmin</span></span></td></tr><tr><td>OpenACS server name</td><td><span class="replaceable"><span class="replaceable">openacs-dev</span></span></td></tr><tr><td>Root of OpenACS file tree</td><td><span class="replaceable"><span class="replaceable">/web/openacs-dev</span></span></td></tr><tr><td>Database backup directory</td><td><span class="replaceable"><span class="replaceable">/backup/openacs/</span></span></td></tr></tbody></table></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2826540"></a><a class="indexterm" name="id2826543"></a>Upgrading on Linux/Unix</h3></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p><b>Make a Backup.�</b>Back up the database and file system (see <a href="backup-recovery.html#snapshot-backup" title="Snapshot backup and recovery">Section�, “Snapshot backup and recovery”</a>).</p></li><li><p><b>OPTIONAL: Upgrade OpenFTS.�</b>OpenACS Full Text Search requires several pieces: the OpenFTS code, some database functions, and the OpenFTS Engine. If you have OpenFTS 0.2, you'll need to upgrade to to OpenFTS 0.3.2. This is backwards-compatible - + complete.</p><div class="figure"><a name="id2828161"></a><p class="title"><b>Figure�5.1.�Assumptions in this section</b></p><div class="informaltable"><table cellspacing="0" border="1"><colgroup><col><col></colgroup><tbody><tr><td>name of OpenACS user</td><td><span class="replaceable"><span class="replaceable">nsadmin</span></span></td></tr><tr><td>OpenACS server name</td><td><span class="replaceable"><span class="replaceable">openacs-dev</span></span></td></tr><tr><td>Root of OpenACS file tree</td><td><span class="replaceable"><span class="replaceable">/web/openacs-dev</span></span></td></tr><tr><td>Database backup directory</td><td><span class="replaceable"><span class="replaceable">/backup/openacs/</span></span></td></tr></tbody></table></div></div></div><div class="sect2" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2827967"></a><a class="indexterm" name="id2827970"></a>Upgrading on Linux/Unix</h3></div></div><div></div></div><div class="orderedlist"><ol type="1"><li><p><b>Make a Backup.�</b>Back up the database and file system (see <a href="backup-recovery.html#snapshot-backup" title="Snapshot backup and recovery">Section�, “Snapshot backup and recovery”</a>).</p></li><li><p><b>OPTIONAL: Upgrade OpenFTS.�</b>OpenACS Full Text Search requires several pieces: the OpenFTS code, some database functions, and the OpenFTS Engine. If you have OpenFTS 0.2, you'll need to upgrade to to OpenFTS 0.3.2. This is backwards-compatible - completing this step will not break a working OpenFTS Engine from 4.5. </p><div class="orderedlist"><ol type="a"><li><p>Uninstall the old OpenFTS Engine</p><div class="orderedlist"><ol type="i"><li><p><span class="bold"><b>Browse to <tt class="computeroutput">http://<span class="replaceable"><span class="replaceable">yourserver</span></span>/openfts</tt>.</b></span> </p></li><li><p><span class="bold"><b>Click <tt class="computeroutput"><span class="guilabel"><span class="guilabel">Administration</span></span></tt>.</b></span></p></li><li><p><span class="bold"><b>Click <tt class="computeroutput"><span class="guibutton"><span class="guibutton">Drop OpenFTS Engine</span></span></tt></b></span></p></li></ol></div></li><li><p>Build and install the new OpenFTS driver and supporting tcl procedures. (This section of shell code is not fully documented; please exercise care.)</p><pre class="screen">cd /usr/local/src/ Index: openacs-4/packages/acs-core-docs/www/files/qmail.rc.txt =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/files/qmail.rc.txt,v diff -u -r1.2 -r1.3 --- openacs-4/packages/acs-core-docs/www/files/qmail.rc.txt 28 Apr 2003 04:02:44 -0000 1.2 +++ openacs-4/packages/acs-core-docs/www/files/qmail.rc.txt 5 Nov 2003 11:48:11 -0000 1.3 @@ -1,7 +1,7 @@ #!/bin/sh -# Using splogger to send the log through syslog. -# Using qmail-local to deliver messages to ~/Mailbox by default. +# Using splogger for logging. +# Using qmail-local to deliver messages to ~/Maildir/ by default. exec env - PATH="/var/qmail/bin:$PATH" \ qmail-start ./Maildir/ splogger qmail Index: openacs-4/packages/acs-core-docs/www/images/code-model.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/images/code-model.png,v diff -u -r1.1 -r1.2 Binary files differ Index: openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-db.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-db.xml,v diff -u -r1.5 -r1.6 --- openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-db.xml 31 Oct 2003 15:57:36 -0000 1.5 +++ openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-db.xml 5 Nov 2003 11:48:11 -0000 1.6 @@ -113,8 +113,13 @@ <para>If there are errors, use them to debug the sql file and try again. If there are errors in the database table creation, you may need to run the drop script to drop the table so that you can recreate it. The drop script will probably have errors since some of the things it's trying to drop may be missing. They can be ignored.</para> <para>Once you get the same output as shown above, test the drop script:</para> <screen>[service0@yourserver postgresql]$ <userinput>psql -f myfirstpackage-drop.sql</userinput> + content_type__drop_type +------------------------- + 0 +(1 row) + [service0@yourserver postgresql]$</screen> - <para>Once both scripts are working without errors, run the create script one last time and proceed.</para> + <para>Once both scripts are working without errors, <emphasis>run the create script one last time</emphasis> and proceed.</para> </sect2> </sect1> \ No newline at end of file Index: openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-pages.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-pages.xml,v diff -u -r1.3 -r1.4 --- openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-pages.xml 20 Aug 2003 16:20:18 -0000 1.3 +++ openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial-pages.xml 5 Nov 2003 11:48:11 -0000 1.4 @@ -22,9 +22,8 @@ <computeroutput>index</computeroutput>, so we'll build that first, starting with the tcl file: </para> - <screen>[service0@yourserver samplenote]$<userinput> mkdir /web/service0/packages/samplenote/www</userinput> -[service0@yourserver samplenote]$<userinput> cd /web/service0/packages/samplenote/www</userinput> -[service0@yourserver www]$ <userinput>emacs index.tcl</userinput></screen> + <screen>[service0@yourserver postgresql]$<userinput> cd /var/lib/aolserver/service0/myfirstpackages/www</userinput> +[service0@yourserver www <userinput>emacs index.tcl</userinput></screen> <para>Paste this into the file.</para> <programlisting>ad_page_contract { This is the main page for the package. It displays all of the Notes and provides links to edit them and to create new Notes. Index: openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial.xml,v diff -u -r1.7 -r1.8 --- openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial.xml 31 Oct 2003 15:57:36 -0000 1.7 +++ openacs-4/packages/acs-core-docs/www/xml/developers-guide/tutorial.xml 5 Nov 2003 11:48:11 -0000 1.8 @@ -95,8 +95,8 @@ <orderedlist> <listitem> <para>Browse to - <computeroutput>http://<replaceable>yourserver</replaceable>:8000/<ulink - url="/acs-admin/apm">acs-admin/apm</ulink></computeroutput>. + <computeroutput>http://<replaceable>yourserver:8000</replaceable><ulink + url="/acs-admin/apm">/acs-admin/apm</ulink></computeroutput>. </para> </listitem> <listitem> @@ -154,8 +154,8 @@ in this tutorial.</para> <orderedlist> <listitem><para>Browse to -<computeroutput>http://yourserver.test:8000<ulink - url="/acs-admin/site-map/">/admin/site-map/</ulink></computeroutput>.</para> +<computeroutput><replaceable>http://yourserver.test:8000</replaceable><ulink + url="/admin/site-map/">/admin/site-map/</ulink></computeroutput>.</para> </listitem> <listitem> <para>Click the <computeroutput><guilabel>new sub Index: openacs-4/packages/acs-core-docs/www/xml/images/code-model.png =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/images/code-model.png,v diff -u -r1.1 -r1.2 Binary files differ Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/aolserver.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/aolserver.xml,v diff -u -r1.13 -r1.14 --- openacs-4/packages/acs-core-docs/www/xml/install-guide/aolserver.xml 14 Oct 2003 10:05:44 -0000 1.13 +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/aolserver.xml 5 Nov 2003 11:48:12 -0000 1.14 @@ -16,16 +16,25 @@ <formalpara> <title>Unpack the Aolserver tarball</title> <para>Download the <link -linkend="source-aolserver">aolserver tarball</link> to <computeroutput>/tmp/aolserver3.3oacs1.tar.gz</computeroutput>. As <computeroutput>root</computeroutput>, untar - <computeroutput>aolserver3.3oacs1.tar.gz</computeroutput> - into <computeroutput>/usr/local/src</computeroutput>. - </para> +linkend="source-aolserver">aolserver tarball</link> and unpack it.</para> </formalpara> <screen>[root@yourserver root]# <userinput>cd /usr/local/src</userinput> -[root@yourserver src]# <userinput>tar xzf /tmp/aolserver3.3oacs1.tar.gz</userinput> +[root@yourserver src]# <userinput>wget --passive http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz</userinput> +--15:38:08-- http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz + => `aolserver3.3oacs1.tar.gz' +Resolving uptime.openacs.org... done. +Connecting to uptime.openacs.org[207.166.200.199]:80... connected. +HTTP request sent, awaiting response... 200 OK +Length: 3,858,074 [application/x-compressed] + +100%[====================================>] 3,858,074 66.56K/s ETA 00:00 + +15:39:05 (66.56 KB/s) - `aolserver3.3oacs1.tar.gz' saved [3858074/3858074] +[root@yourserver src]# <userinput>tar xzf aolserver3.3oacs1.tar.gz</userinput> [root@yourserver src]# <action>cd /usr/local/src -tar xzf /tmp/aolserver3.3oacs1.tar.gz</action></screen> +wget --passive http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz +tar xzf aolserver3.3oacs1.tar.gz</action></screen> </listitem> <listitem id="install-aolserver-compile"> @@ -135,18 +144,29 @@ <formalpara> <title>Install tDOM</title> <para>Download the <link linkend="source-tdom">tDOM - tarball</link> to - <computeroutput>/tmp/tDOM-0.7.7.tar.gz</computeroutput>, - unpack it, adjust the configuration file to match our patched + tarball</link>, unpack it, adjust the configuration file to match our patched distribution of aolserver, and compile it.</para> </formalpara> <screen>[root@yourserver root]# <userinput>cd /usr/local/src</userinput> -[root@yourserver src]# <userinput>tar xzf /tmp/tDOM-0.7.7.tar.gz</userinput> -[root@yourserver src]# <userinput>cd tDOM-0.7.7/unix</userinput> +[root@yourserver src]# <userinput>wget --passive http://www.tdom.org/tDOM-0.7.8.tar.gz</userinput> +--16:40:58-- http://www.tdom.org/tDOM-0.7.8.tar.gz + => `tDOM-0.7.8.tar.gz' +Resolving www.tdom.org... done. +Connecting to www.tdom.org[212.14.81.4]:80... connected. +HTTP request sent, awaiting response... 200 OK +Length: 826,613 [application/x-compressed] + +100%[====================================>] 826,613 138.06K/s ETA 00:00 + +16:41:04 (138.06 KB/s) - `tDOM-0.7.8.tar.gz' saved [826613/826613] + +[root@yourserver src]# <userinput>tar xzf tDOM-0.7.8.tar.gz</userinput> +[root@yourserver src]# <userinput>cd tDOM-0.7.8/unix</userinput> [root@yourserver unix]# <action>cd /usr/local/src -tar xzf /tmp/tDOM-0.7.7.tar.gz -cd unix</action> </screen> +wget --passive http://www.tdom.org/tDOM-0.7.8.tar.gz +tar xzf tDOM-0.7.8.tar.gz +cd tDOM-0.7.8/unix</action> </screen> <para>Edit the file CONFIG and change this section: <programlisting># ---------------------------------------------------- # aolsrc="/usr/src/aolserver-3.4" @@ -172,10 +192,16 @@ <emphasis>(many lines omitted)</emphasis> -Wl,-rpath,/usr/local/lib -o tcldomsh;\ fi -[root@yourserver unix]# <userinput>cp libtdom0.7.7.so /usr/local/aolserver/bin/</userinput> +[root@yourserver unix]# <userinput>cp libtdom0.7.8.so /usr/local/aolserver/bin/</userinput> +[root@yourserver unix]# <userinput>cd /usr/local/aolserver/bin/</userinput> +[root@yourserver bin]# <userinput>ln -s libtdom0.7.8.so libtdom.so</userinput> +[root@yourserver bin]# + <action>sh CONFIG make -cp libtdom0.7.7.so /usr/local/aolserver/bin/</action></screen> +cp libtdom0.7.8.so /usr/local/aolserver/bin/ +cd /usr/local/aolserver/bin +ln -s libtdom0.7.8.so libtdom.so</action></screen> </para> </listitem> <listitem> Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/openacs.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/openacs.xml,v diff -u -r1.11 -r1.12 --- openacs-4/packages/acs-core-docs/www/xml/install-guide/openacs.xml 14 Oct 2003 10:03:23 -0000 1.11 +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/openacs.xml 5 Nov 2003 11:48:12 -0000 1.12 @@ -5,50 +5,40 @@ %myvars; ]> <sect1 id="openacs" xreflabel="Install OpenACS &version;"> -<title>Install OpenACS &version;</title> + <title>Install OpenACS &version;</title> <authorblurb> - by <ulink url="mailto:vinod@kurup.com">Vinod Kurup</ulink> + by <ulink url="mailto:vinod@kurup.com">Vinod Kurup</ulink> </authorblurb> <sect2 id="openacs-setup"> - <title>Set up the file system for an OpenACS Service</title> - <orderedlist> - - <listitem id="make-web-directory"> - <para>The reference install stores all OpenACS services in - <computeroutput>/var/lib/aolserver</computeroutput>, with one subdirectory per service. The first time you install a service, you must create - that directory and set its permissions:</para> - <screen>[root@yourserver root]# <userinput>mkdir /var/lib/aolserver</userinput> + <title>Set up the file system for one or more OpenACS Sites</title> + <para>For Linux Standard Base compliance and ease of backup, + all of the files in each OpenACS site are stored in a + subdirectory of + <computeroutput>/var/lib/aolserver</computeroutput>, one + subdirectory per site. The first time you install an OpenACS + site on a server, you must create the parent directory and set its permissions:</para> + <screen>[root@yourserver root]# <userinput>mkdir /var/lib/aolserver</userinput> [root@yourserver root]# <userinput>chgrp web /var/lib/aolserver</userinput> [root@yourserver root]# <userinput>chmod 770 /var/lib/aolserver</userinput> [root@yourserver root]# <action>mkdir /var/lib/aolserver chgrp web /var/lib/aolserver chmod 770 /var/lib/aolserver</action></screen> - </listitem> - - <listitem id="install-openacs-download"> - <para>You should already have downloaded the OpenACS tarball - to the <computeroutput>/tmp</computeroutput> directory. If - not, <link linkend="openacs-download">download the OpenACS - tarball</link> and save it in - <computeroutput>/tmp</computeroutput> and proceed:</para> - - </listitem> - <listitem id="install-aolserver-user-accounts"> - <para>Set up your user account.</para> - - <para> + </sect2> + <sect2 id="install-aolserver-user-accounts"> + <title>Set up a user account for each site.</title> + <para> AOLserver needs to be started as the root user if you want to use port 80. Once it starts, though, it will drop the root privileges and run as another user, which you must specify on the command line. It's important that this user has as few privileges as possible. Why? Because if an intruder somehow breaks in through AOLserver, you don't want her to have any ability to do damage to the rest of your server.</para> - <para>At the same time, AOLserver needs to have write access to + <para>At the same time, AOLserver needs to have write access to some files on your system in order for OpenACS to function properly. So, we'll run AOLserver with a different user account for each different service. A service name should be a single @@ -57,72 +47,68 @@ example "<replaceable>service0</replaceable>" might be the service name for the <ulink url="http://service0.net/"><replaceable>service0</replaceable>.net</ulink> community.</para> - <para>For the &version;-P and &version;-O Reference Platform, - we'll use a server named <replaceable>service0</replaceable> and - a user named <replaceable>service0</replaceable>. We'll leave the password - blank for increased security. The only way to log in will be - with ssh certificates. The only people who should log in are + <para>We'll leave the password blank, which prevents login by + password, for increased security. The only way to log in will + be with ssh certificates. The only people who should log in are developers for that specific instance. Add this user, and put - it in the <computeroutput>web</computeroutput> group so that it - can use database commands associated with that group. + it in the <computeroutput><replaceable>service0</replaceable></computeroutput> group so that it + can use database and server commands associated with that group. </para> - <screen>[root@yourserver root]# <userinput>useradd -g web <replaceable>service0</replaceable> -d /home/<replaceable>service0</replaceable></userinput> + <screen>[root@yourserver root]# <userinput>groupadd <replaceable>web</replaceable></userinput> +[root@yourserver root]# <userinput>useradd -g <replaceable>service0</replaceable> -G web <replaceable>service0</replaceable> -d /home/<replaceable>service0</replaceable></userinput> [root@yourserver root]#</screen> - - <para>Set up database environment variables. They are - necessary for working with the database. -</para> - - <screen>[root@yourserver root]# <userinput>su - <replaceable>service0</replaceable></userinput> -[service0@yourserver service0]$ <userinput>emacs .bashrc</userinput></screen> - <para>Put in the appropriate lines for the database you are running. If you will use both databases, put in both sets of lines.</para> - <itemizedlist> - <listitem> - <para>PostGreSQL:</para> - <programlisting>export LD_LIBRARY_PATH=LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib -export PATH=$PATH:/usr/local/pgsql/bin</programlisting> - </listitem> - <listitem> - <para>Oracle. These environment variables are specific for a local Oracle - installation communicating via IPC. If you are connecting to a remote - Oracle installation, you'll need to adjust these appropriately. Also, - make sure that the '8.1.7' matches your Oracle version. -</para> - <programlisting>export ORACLE_BASE=/ora8/m01/app/oracle -export ORACLE_HOME=$ORACLE_BASE/product/<replaceable>8.1.7</replaceable> -export PATH=$PATH:$ORACLE_HOME/bin -export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib -export ORACLE_SID=ora8 -export ORACLE_TERM=vt100 -export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data</programlisting> - </listitem> - </itemizedlist> - <para>Test this by logging out and back in as - <computeroutput><replaceable>service0</replaceable></computeroutput> and checking the paths.</para> - <screen>[service0@yourserver service0]$ <userinput>exit</userinput> -logout -[root@yourserver src]# <userinput>su - <userinput><replaceable>service0</replaceable></userinput></userinput> -[postgres@yourserver pgsql]$ <userinput>env | grep PATH</userinput> + </sect2> + + <sect2 id="install-with-script"> + <title>Install with automated script (EXPERIMENTAL)</title> + <para>Starting with OpenACS 5.0, an experimental script is + available to automate all of the steps for the rest of this section. Requires tclwebtest. If you are not feeling lucky, skip to <xref + linkend="install-from-tarball"/>.</para> + <orderedlist> + <listitem> + <para>Get the install script from CVS:</para> + <screen>[root@yourserver root]# <userinput>su - <replaceable>service0</replaceable></userinput> +[service0@yourserver service0]$ <userinput>cvs -d :pserver:anonymous@openacs.org:/cvsroot co -d install openacs-4/etc/install</userinput> +cvs server: Updating install +U install/README +U install/TODO + ... many lines omitted ... +U install/tcl/twt-procs.tcl +U install/tcl/user-procs.tcl +[service0@yourserver service0]$ <userinput>cd install</userinput> </screen> -<para>For PostGreSQL, you should see:</para> - <screen> -LD_LIBRARY_PATH=LD_LIBRARY_PATH=:/usr/local/pgsql/lib -PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/usr/local/pgsql/bin:/usr/local/pgsql/bin</screen> - <para>For Oracle:</para> - <screen>ORACLE_BASE=/ora8/m01/app/oracle -ORACLE_HOME=/ora8/m01/app/oracle/product/8.1.7 -PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/ora8/m01/app/oracle/product/8.1.7/bin -LD_LIBRARY_PATH=/ora8/m01/app/oracle/product/8.1.7/lib:/lib:/usr/lib -ORACLE_SID=ora8 -ORACLE_TERM=vt100 -ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data</screen> - <screen>[service0@yourserver service0]$ <userinput>exit</userinput> -logout - -[root@yourserver root]#</screen> + <para>Edit + <computeroutput>/home/<replaceable>service0/install/install.tcl</replaceable></computeroutput>install.tcl + file and change the values as documented in the file.</para> + <para>Run the file as root.</para> + <screen>[service0@yourserver service0]$ <userinput>exit</userinput> +[root@yourserver root]# <userinput>./home/service0/install/install.sh</userinput> +/home/service0/install/install.sh: Starting installation with config_file +/home/service0/install/install.tcl. Using serverroot=/var/lib/aolserver/ +service0, server_url=http://0.0.0.0:8000, do_checkout=yes, do_install=yes, +dotlrn=no, and database=postgres., use_daemontools=true + ... many lines omitted ... +./install.sh: Finished (re)installing /var/lib/aolserver/service0 at Wed Nov +5 13:27:17 CET 2003. Access the new site at http://127.0.0.1:8000 with admin +username admin@yourserver.test and password 1 +[root@yourserver root]# +<action>exit +./home/<replaceable>service0</replaceable>/install/install.sh</action></screen> </listitem> - <listitem id="unpack-openacs"> + </orderedlist> + <para>You can proceed to <xref linkend="install-next-steps"/>.</para> + </sect2> + + <sect2 id="install-from-tarball"> + <title>Install from tarball</title> + <para>You should already have downloaded the OpenACS tarball + to the <computeroutput>/tmp</computeroutput> directory. If + not, <link linkend="openacs-download">download the OpenACS + tarball</link> and save it in + <computeroutput>/tmp</computeroutput> and proceed:</para> + <orderedlist> + <listitem id="install-openacs-download"> <para>Unpack the OpenACS tarball and rename it to <computeroutput>service0</computeroutput>. Secure the directory so that only the owner can access it. Check the permissions by listing the directory.</para> <screen>[root@yourserver root]# <userinput>su - <replaceable>service0</replaceable></userinput> [service0@yourserver service0]$ <userinput>cd /var/lib/aolserver</userinput> @@ -148,36 +134,22 @@ <listitem> <para><link linkend="cvs-service-import">Add the Service to CVS</link> (OPTIONAL)</para> </listitem> - <listitem> - <para>(This step should be obsoleted by the 5.0.0 tarball, as - these directories will be included in the tarball)Set up several additional directories in the service root: - <computeroutput>etc</computeroutput> is for configuration and control files, <computeroutput>log</computeroutput> is for error and request (web page hit) log files, and <computeroutput>database-backup</computeroutput> is for database backup files. If you did the CVS step, note that these new directories are excluded from that step so that you can decide whether or not you want your logs and config files in source control.</para> - <screen>[root@yourserver root]# <userinput>su - <replaceable>service0</replaceable></userinput> -[service0@yourserver service0]$ <userinput>mkdir /var/lib/aolserver/<replaceable>service0</replaceable>/etc /var/lib/aolserver/<replaceable>service0</replaceable>/log /var/lib/aolserver/<replaceable>service0</replaceable>/database-backup</userinput> -[service0@yourserver aolserver]$ <userinput>exit</userinput> -logout - -[root@yourserver aolserver]# -<action>su - service0 -mkdir /var/lib/aolserver/<replaceable>service0</replaceable>/etc /var/lib/aolserver/<replaceable>service0</replaceable>/log /var/lib/aolserver/<replaceable>service0</replaceable>/database-backup -exit</action></screen> - </listitem> - </orderedlist> - </sect2> - - <sect2 id="install-openacs-prepare-oracle" xreflabel="Prepare Oracle for OpenACS"> - <title>Prepare Oracle for OpenACS</title> - - <para>If you won't be using Oracle, skip to <xref - linkend="install-openacs-prepare-postgres"/></para> - <para> + <para>Prepare the database</para> + <itemizedlist> + <listitem> + <formalpara id="install-openacs-prepare-oracle"> + <title>Prepare Oracle for OpenACS</title> + <para>If you won't be using Oracle, skip to <xref + linkend="install-openacs-prepare-postgres"/></para> + </formalpara> + <para> You should be sure that your user account (e.g. <computeroutput><replaceable>service0</replaceable></computeroutput>) is in the <computeroutput>dba</computeroutput> group. </para> - <orderedlist> - <listitem><para> + <orderedlist> + <listitem><para> Verify membership by typing <computeroutput>groups</computeroutput> when you login: @@ -204,7 +176,7 @@ your regular user. </para></listitem> - <listitem><para> + <listitem><para> Connect to Oracle using <computeroutput>svrmgrl</computeroutput> and login: @@ -215,7 +187,7 @@ Connected.</programlisting> </para></listitem> - <listitem><para> + <listitem><para> Determine where the system tablespaces are stored: <programlisting> @@ -232,7 +204,7 @@ /ora8/m01/app/oracle/oradata/ora8/drsys01.dbf</programlisting> </para></listitem> - <listitem><para> + <listitem><para> Using the above output, you should determine where to store your tablespace. As a general rule, you'll want to store your tablespace on a mount point under the @@ -250,7 +222,7 @@ <computeroutput>/ora8/m02/oradata/ora8/</computeroutput>. </para></listitem> - <listitem><para> + <listitem><para> Create the directory for the datafile; to do this, exit from <computeroutput>svrmgrl</computeroutput> and login as <computeroutput>root</computeroutput> for this step: </para> @@ -264,9 +236,9 @@ root:~# chmod 775 /ora8/m02/oradata/ora8 root:~# exit <replaceable>service0</replaceable>:~$</programlisting> - </listitem> + </listitem> - <listitem><para> + <listitem><para> Create a tablespace for the service. It is important that the tablespace can <computeroutput>autoextend</computeroutput>. This @@ -290,14 +262,14 @@ maxsize 300M extent management local uniform size 32K;</programlisting> - </listitem> + </listitem> - <listitem><para> + <listitem><para> Create a database user for this service. Give the user access to the tablespace and rights to connect. We'll use <computeroutput><replaceable>service0</replaceable>password</computeroutput> as our password.</para> - <para> + <para> Write down what you specify as <emphasis>service_name</emphasis> (i.e. <computeroutput><replaceable>service0</replaceable></computeroutput>) and <emphasis>database_password</emphasis> @@ -314,13 +286,13 @@ SVRMGR> alter user <emphasis><replaceable>service0</replaceable></emphasis> quota unlimited on <emphasis><replaceable>service0</replaceable></emphasis>; SVRMGR> exit;</programlisting> - <para> + <para> Your table space is now ready. In case you are trying to delete a previous OpenACS installation, consult these commands in <xref - linkend="install-openacs-delete-tablespace"/> below. + linkend="install-openacs-delete-tablespace"/> below. </para></listitem> - <listitem><para> + <listitem><para> Make sure that you can login to Oracle using your <emphasis>service_name</emphasis> account: </para> @@ -334,22 +306,28 @@ SQL> exit</programlisting> - <para> + <para> You should see today's date in a format 'YYYY-MM-DD.' If you can't login, try redoing step 1 again. If the date is in the wrong format, make sure you followed the steps outlined in <xref linkend="install-oracle-troubleshooting"/> </para></listitem> - - </orderedlist> - </sect2> - - <sect2 id="install-openacs-prepare-postgres"> - <title>Prepare PostgreSQL for an OpenACS Service</title> - <orderedlist> - <listitem id="create-service-db-user"> - <para>Create a user in the database matching the service name.</para> - <screen>[root@yourserver root]# <userinput>su - postgres</userinput> + + </orderedlist> + </listitem> + <listitem> + <formalpara id="install-openacs-prepare-postgres"> + <title>Prepare PostgreSQL for an OpenACS Service</title> + <para></para> + </formalpara> + <itemizedlist> + <listitem id="create-service-db-user"> + <para>PostGreSQL:</para> + <para>Create a user in the database matching the service + name. With default PostGreSQL authentication the name of + the user of the process will be matched to this account + automatically.</para> + <screen>[root@yourserver root]# <userinput>su - postgres</userinput> [postgres@yourserver pgsql]$ <userinput>createuser <replaceable>service0</replaceable></userinput> Shall the new user be allowed to create databases? (y/n) <userinput>y</userinput> Shall the new user be allowed to create more new users? (y/n) <userinput>y</userinput> @@ -358,125 +336,131 @@ logout [root@yourserver root]#</screen> - </listitem> - <listitem id="create-database"> - <para>Create a database with the same name as our service name, <replaceable>service0</replaceable>.</para> - <screen>[root@yourserver root]# <userinput>su - <replaceable>service0</replaceable></userinput> + </listitem> + <listitem id="create-database"> + <para>Create a database with the same name as our service name, <replaceable>service0</replaceable>.</para> + <screen>[root@yourserver root]# <userinput>su - <replaceable>service0</replaceable></userinput> [service0@yourserver service0]$ <userinput>createdb -E UNICODE <replaceable>service0</replaceable></userinput> CREATE DATABASE [service0@yourserver service0]$ <action>su - <replaceable>service0</replaceable> createdb -E UNICODE <replaceable>service0</replaceable></action></screen> - </listitem> - <listitem> - <para>Automate daily database Vacuuming. This is a process which cleans out discarded data from the database. A quick way to automate vacuuming is to edit the cron file for the database user.</para> - <indexterm> - <primary>Postgres</primary> - <secondary>Vacuuming</secondary> - </indexterm> - <screen>[service0@yourserver service0]$ <userinput>export EDITOR=emacs;crontab -e</userinput></screen> - <para>Add this line to the file. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day.</para> - <programlisting>0 1 * * * /usr/local/pgsql/bin/vacuumdb --analyze <replaceable>service0</replaceable></programlisting> - </listitem> - <listitem> - <para><link linkend="install-openfts-postgres">Add Full Text Search Support</link> (OPTIONAL)</para> - </listitem> - <listitem id="db-setup-exit"> - <screen>[service0@yourserver service0]$ <userinput>exit</userinput> + </listitem> + <listitem> + <para>Automate daily database Vacuuming. This is a process which cleans out discarded data from the database. A quick way to automate vacuuming is to edit the cron file for the database user.</para> + <indexterm> + <primary>Postgres</primary> + <secondary>Vacuuming</secondary> + </indexterm> + <screen>[service0@yourserver service0]$ <userinput>export EDITOR=emacs;crontab -e</userinput></screen> + <para>Add this line to the file. The numbers and stars at the beginning are cron columns that specify when the program should be run - in this case, whenever the minute is 0 and the hour is 1, i.e., 1:00 am every day.</para> + <programlisting>0 1 * * * /usr/local/pgsql/bin/vacuumdb --analyze <replaceable>service0</replaceable></programlisting> + </listitem> + <listitem> + <para><link linkend="install-openfts-postgres">Add Full Text Search Support</link> (OPTIONAL)</para> + </listitem> + <listitem id="db-setup-exit"> + <screen>[service0@yourserver service0]$ <userinput>exit</userinput> logout [root@yourserver root]# </screen> + </listitem> + </itemizedlist> + </listitem> + </itemizedlist> </listitem> - </orderedlist> - </sect2> - - <sect2 id="install-openacs-configure-aol"> - <title>Configure an AOLserver Service for OpenACS</title> - <orderedlist> - <listitem id="configure-config-tcl"> - <para> + <listitem id="install-openacs-configure-aol"> + <formalpara> + <title>Configure an AOLserver Service for OpenACS</title> + <para></para> + </formalpara> + <orderedlist> + <listitem id="configure-config-tcl"> + <para> The AOLserver architecture lets you run an arbitrary number of virtual servers. A virtual server is an HTTP service running on a specific port, e.g. port 80. In order for OpenACS to work, you need to configure a virtual server. The Reference Platform uses a configuration file included in the OpenACS tarball, <computeroutput>/var/lib/aolserver/<replaceable>service0</replaceable>/etc/config.tcl</computeroutput>. Open it in an editor to adjust the parameters.</para> - <indexterm> - <primary>AOLserver</primary> - <secondary>configuration</secondary> - </indexterm> - - <screen>[root@yourserver root]# <userinput>su - <replaceable>service0</replaceable></userinput> + <indexterm> + <primary>AOLserver</primary> + <secondary>configuration</secondary> + </indexterm> + + <screen>[root@yourserver root]# <userinput>su - <replaceable>service0</replaceable></userinput> [service0@yourserver service0]$ <userinput>cd /var/lib/aolserver/<replaceable>service0</replaceable>/etc</userinput> [service0@yourserver etc]# <userinput>emacs config.tcl</userinput> </screen> - <para> + <para> You can continue without changing any values in the file. However, if you don't change <computeroutput>address</computeroutput> to match the computer's ip address, you won't be able to browse to your server from other machines. </para> - - <itemizedlist> - <listitem><para><emphasis>httpport</emphasis> - If you want your + + <itemizedlist> + <listitem><para><emphasis>httpport</emphasis> - If you want your server on a different port, enter it here. The Reference Platform port is 8000, which is suitable for development use. Port 80 is the standard http port - it's the port used by your browser when you enter http://yourserver.test. So you should use port 80 for your production site.</para></listitem> - - <listitem> - <para><emphasis>httpsport</emphasis> - This is the + + <listitem> + <para><emphasis>httpsport</emphasis> - This is the port for https requests. The Reference Platform https port is 8443. If http port is set to 80, httpsport should be 143 to match the standard.</para> - </listitem> - - <listitem><para> + </listitem> + + <listitem><para> <emphasis>address</emphasis> - The IP address of the server. If you are hosting multiple IPs on one computer, this is the address specific to the web site. Each virtual server will ignore any requests directed at other addresses.</para> - </listitem> - <listitem> - <para><emphasis>server</emphasis> - This is the keyword that, by convention, identifies the service. It is also used as part of the path for the service root, as the name of the user for running the service, as the name of the database, and in various dependent places. The Reference Platform uses <replaceable>service0</replaceable>. + </listitem> + <listitem> + <para><emphasis>server</emphasis> - This is the keyword that, by convention, identifies the service. It is also used as part of the path for the service root, as the name of the user for running the service, as the name of the database, and in various dependent places. The Reference Platform uses <replaceable>service0</replaceable>. </para></listitem> - - <listitem><para><emphasis>db_name</emphasis> - In almost all cases, + + <listitem><para><emphasis>db_name</emphasis> - In almost all cases, this can be kept as a reference to $server. If for some reason, the tablespace you are using is different than your servername, then you can set it here. You should have a good reason for doing this. </para></listitem> - <listitem><para> + <listitem><para> <emphasis>servername</emphasis> - This is just a *pretty* name for your server.</para> - </listitem> - - <listitem> - <para><emphasis>user_account</emphasis> - The account that + </listitem> + + <listitem> + <para><emphasis>user_account</emphasis> - The account that will both own OpenACS files and connect to the database (for Postgresql).</para> + </listitem> + + <listitem> + <para><emphasis>debug</emphasis> - Set to true for a very verbose error log, including many lines for every page view, success or failure.</para> + </listitem> + </itemizedlist> </listitem> - <listitem> - <para><emphasis>debug</emphasis> - Set to true for a very verbose error log, including many lines for every page view, success or failure.</para> - </listitem> - </itemizedlist> - </listitem> - <listitem> - <para> + <para> AOLServer is very configurable. These settings should get you started, but for more options, read the <ulink url="http://aolserver.com/docs/admin/config.html">AOLServer docs</ulink>. </para> - </listitem> - <listitem> - <para><link linkend="enable-openfts">Enable OpenFTS Full Text Search</link> (OPTIONAL)</para> - </listitem> - <listitem> - <para><link linkend="install-ssl">Install nsopenssl + </listitem> + <listitem> + <para><link linkend="enable-openfts">Enable OpenFTS Full Text Search</link> (OPTIONAL)</para> + </listitem> + <listitem> + <para><link linkend="install-ssl">Install nsopenssl for SSL support.</link> (OPTIONAL)</para> + </listitem> + </orderedlist> </listitem> - </orderedlist> - </sect2> - - <sect2 id="verify-aolserver-startup"> - <title>Verify AOLserver startup</title> - <orderedlist> + <listitem id="verify-aolserver-startup"> + <formalpara> + <title>Verify AOLserver startup</title> + <para></para> + </formalpara> + <orderedlist> <listitem id="start-aolserver"> <para> Kill any current running AOLserver processes and start a new @@ -532,17 +516,17 @@ <para><link linkend="install-openacs-keepalive">Automate AOLserver keepalive</link> (OPTIONAL)</para> </listitem> - </orderedlist> - </sect2> - - <sect2 id="install-openacs-using-installer" xreflabel="Using the OpenACS Installer"> - <title>Configure a Service with the OpenACS Installer</title> - - <para> + </orderedlist> + </listitem> + <listitem id="install-openacs-using-installer"> + <formalpara> + <title>Configure a Service with the OpenACS + Installer</title> + <para> Now that you've got AOLserver up and running, let's install OpenACS &version;. </para> - + </formalpara> <itemizedlist> <listitem><para> You should see a page from the webserver titled @@ -565,17 +549,17 @@ </para> - <programlisting> + <programlisting> Loading package .info files ... this will take a few minutes</programlisting> - <para> + <para> This will really take a few minutes. Have faith! Finally, another <computeroutput>Next</computeroutput> button will appear at the bottom - click it. </para> - </listitem> + </listitem> <listitem><para> @@ -612,28 +596,28 @@ you'll need to manually restart your service. </para> <screen>[service0@yourserver service0]$ <userinput>/usr/local/aolserver/bin/nsd-postgres -t /var/lib/aolserver/<emphasis><replaceable>service0</replaceable></emphasis>/config.tcl</userinput></screen> - </listitem> + </listitem> <listitem><para> Give the server a few minutes to start up. Then reload the final page above. You should see the front page, with an area to login near the upper right. Congratulations, OpenACS &version; is now up and running! </para></listitem> + </itemizedlist> + </listitem> + </orderedlist> + </sect2> - + <sect2 id="install-next-steps"> + <title>Next Steps</title> + <itemizedlist> <listitem> <para>Install Full Text Search (OPTIONAL). If you have <link linkend="install-openfts">installed OpenFTS</link> and enabled OpenFTS, you can now <link linkend="install-fts-engine">install</link> the OpenFTS Driver package and Full Text Search Engine package in the OpenACS service.</para> - </listitem> - </itemizedlist> - </sect2> - <sect2> - <title>Next Steps</title> - <itemizedlist> <listitem> <para>This is a good time to make a <link linkend="snapshot-backup">backup</link> of your service. If this is a @@ -651,6 +635,69 @@ </listitem> <listitem><para>Proceed to the <link linkend="tutorial">tutorial</link> to learn how to develop your own packages.</para> </listitem> + <listitem> + <para>Set up database environment variables for the site + user. These settings are necessary for working with the + database while logged in as the service user. They do not + directly affect the service's run-time connection with the + database, because those environmental variables are set by the + wrapper scripts nsd-postgres and nsd-oracle.</para> + + <screen>[root@yourserver root]# <userinput>su - <replaceable>service0</replaceable></userinput> +[service0@yourserver service0]$ <userinput>emacs .bashrc</userinput></screen> + <para>Put in the appropriate lines for the database you are running. If you will use both databases, put in both sets of lines.</para> + <itemizedlist> + <listitem> + <para>PostGreSQL:</para> + <programlisting>export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib +export PATH=$PATH:/usr/local/pgsql/bin</programlisting> + </listitem> + <listitem> + <para>Oracle. These environment variables are specific for a local Oracle + installation communicating via IPC. If you are connecting to a remote + Oracle installation, you'll need to adjust these appropriately. Also, + make sure that the '8.1.7' matches your Oracle version. +</para> + <programlisting>export ORACLE_BASE=/ora8/m01/app/oracle +export ORACLE_HOME=$ORACLE_BASE/product/<replaceable>8.1.7</replaceable> +export PATH=$PATH:$ORACLE_HOME/bin +export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib +export ORACLE_SID=ora8 +export ORACLE_TERM=vt100 +export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data</programlisting> + </listitem> + </itemizedlist> + + <para>Test this by logging out and back in as + <computeroutput><replaceable>service0</replaceable></computeroutput> and checking the paths.</para> + <screen>[service0@yourserver service0]$ <userinput>exit</userinput> +logout +[root@yourserver src]# <userinput>su - <userinput><replaceable>service0</replaceable></userinput></userinput> +[postgres@yourserver pgsql]$ <userinput>env | grep PATH</userinput> +</screen> + <itemizedlist> + <listitem> + <para>For PostGreSQL, you should see:</para> + <screen> +LD_LIBRARY_PATH=LD_LIBRARY_PATH=:/usr/local/pgsql/lib +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/usr/local/pgsql/bin:/usr/local/pgsql/bin</screen> + </listitem> + <listitem> + <para>For Oracle:</para> + <screen>ORACLE_BASE=/ora8/m01/app/oracle +ORACLE_HOME=/ora8/m01/app/oracle/product/8.1.7 +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin/X11:/usr/X11R6/bin:/root/bin:/ora8/m01/app/oracle/product/8.1.7/bin +LD_LIBRARY_PATH=/ora8/m01/app/oracle/product/8.1.7/lib:/lib:/usr/lib +ORACLE_SID=ora8 +ORACLE_TERM=vt100 +ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data</screen> + </listitem> + </itemizedlist> + <screen>[service0@yourserver service0]$ <userinput>exit</userinput> +logout + +[root@yourserver root]#</screen> + </listitem> <listitem><para>Test your <link linkend="backup-recovery">backup and recovery</link> procedure.</para> </listitem> </itemizedlist> Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/other-software.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/other-software.xml,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-core-docs/www/xml/install-guide/other-software.xml 28 Oct 2003 22:07:41 -0000 1.6 +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/other-software.xml 5 Nov 2003 11:48:12 -0000 1.7 @@ -75,16 +75,10 @@ <primary>daemontools</primary> <secondary>installation</secondary> </indexterm> - <itemizedlist> + <para><link linkend="daemontools-download">download daemontools</link> and install it.</para> + <itemizedlist> <listitem> - <para>Red Hat</para> - <para>Make sure you have the source tarball in - <computeroutput>/tmp</computeroutput>, or <link - linkend="daemontools-download">download it</link>. (The -p - flag in mkdir causes all implied directories in the path - to be made as well.)</para> - <para>(Red Hat 9.0: put -<programlisting>#include <errno.h></programlisting> as the first line of <computeroutput>/package/admin/daemontools-0.76/src/error.h</computeroutput>. <ulink url="http://www.riverside.org/archive/html/djbdns/2003-01/msg00307.html">More information</ulink>)</para> + <para>Red Hat 8</para> <screen>[root@yourserver root]# <userinput>mkdir -p /package</userinput> [root@yourserver root]# <userinput>chmod 1755 /package/</userinput> [root@yourserver root]# <userinput>cd /package/</userinput> @@ -105,6 +99,48 @@ package/install</action></screen> </listitem> <listitem> + <para>Red Hat 9</para> + <para>Make sure you have the source tarball in + <computeroutput>/tmp</computeroutput>, or <link + linkend="daemontools-download">download it</link>. +</para> + <screen>[root@yourserver root]# <userinput>mkdir -p /package</userinput> +[root@yourserver root]# <userinput>chmod 1755 /package/</userinput> +[root@yourserver root]# <userinput>cd /package/</userinput> +[root@yourserver package]# <userinput>tar xzf /tmp/daemontools-0.76.tar.gz</userinput> +[root@yourserver package]# <userinput>cd admin</userinput> +[root@yourserver admin]# <userinput>wget http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch</userinput> +--14:19:24-- http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch + => `daemontools-0.76.errno.patch' +Resolving moni.csi.hu... done. +Connecting to moni.csi.hu[141.225.11.87]:80... connected. +HTTP request sent, awaiting response... 200 OK +Length: 355 [text/plain] + +100%[====================================>] 355 346.68K/s ETA 00:00 + +14:19:24 (346.68 KB/s) - `daemontools-0.76.errno.patch' saved [355/355] + +[root@yourserver admin]# <userinput>cd daemontools-0.76</userinput> +[root@yourserver daemontools-0.76]# <userinput>patch -p1 < ../daemontools-0.76.errno.patch</userinput> +[root@yourserver daemontools-0.76]# <userinput>package/install</userinput> +Linking ./src/* into ./compile... +(many lines omitted) +Creating /service... +Adding svscanboot to inittab... +init should start svscan now. +[root@yourserver root]# +<action>mkdir -p /package +chmod 1755 /package +cd /package +tar xzf /tmp/daemontools-0.76.tar.gz +cd admin +wget http://moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch +cd daemontools-0.76 +patch -p1 < ../daemontools-0.76.errno.patch +package/install</action></screen> + </listitem> + <listitem> <para>Debian</para> <screen>root:~# <userinput>apt-get install daemontools-installer</userinput> root:~# <userinput>build-daemontools</userinput></screen> @@ -131,18 +167,32 @@ </sect1> <sect1 id="install-qmail"> <title>Install qmail (OPTIONAL)</title> - <para>Qmail is a Mail Transfer Agent. It handles incoming and outgoing mail. Install qmail if you want your OpenACS server to send and receive mail, and you don't want to use an alternate MTA.</para> + <para>Qmail is a Mail Transfer Agent. It handles incoming and + outgoing mail. Install qmail if you want your OpenACS server to + send and receive mail, and you don't want to use an alternate + MTA.</para> + <para>Red Hat 9: all djb tools (qmail, daemontools, ucspi) will + fail to compile in Red Hat 9 because of changes to glibc (<ulink url="http://moni.csi.hu/pub/glibc-2.3.1/">patches</ulink>)</para> <orderedlist> <listitem> <formalpara> <title>Install ucspi</title> <para>This program handles incoming tcp connections. - <link linkend="ucspi-download">Download ucspi</link> and install it.</para> + <link linkend="ucspi-download">Download ucspi</link> and install it.</para> </formalpara> - <para>Red Hat 9.0: put <programlisting>#include <errno.h></programlisting> as the first line of <computeroutput>error.h</computeroutput>. <ulink url="http://www.riverside.org/archive/html/djbdns/2003-01/msg00307.html">More information</ulink>)</para> <screen>[root@yourserver root]# <userinput>cd /usr/local/src</userinput> -[root@yourserver src]# <userinput>tar xzf /tmp/ucspi-tcp-0.88.tar.gz</userinput> -[root@yourserver src]# <userinput>cd ucspi-tcp-0.88</userinput> +[root@yourserver src]# <userinput>wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz</userinput> +[root@yourserver src]# <userinput>tar xzf ucspi-tcp-0.88.tar.gz</userinput> +<action>cd /usr/local/src +wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz +tar xzf ucspi-tcp-0.88.tar.gz </action></screen> + <para>Red Hat 9 only</para> +<screen><action>wget http://moni.csi.hu/pub/glibc-2.3.1/ucspi-tcp-0.88.errno.patch +cd ucspi-tcp-0.88 +patch -p1 <../ucspi-tcp-0.88.errno.patch +cd ..</action></screen> + <para>All platforms continue:</para> +<screen>[root@yourserver src]# <userinput>cd ucspi-tcp-0.88</userinput> [root@yourserver ucspi-tcp-0.88]#<userinput> make</userinput> ( cat warn-auto.sh; \ echo 'main="$1"; shift'; \ @@ -153,8 +203,7 @@ ./install ./instcheck [root@yourserver ucspi-tcp-0.88]# -<action>cd /usr/local/src -tar xzf /tmp/ucspi-tcp-0.88.tar.gz +<action> cd ucspi-tcp-0.88 make make setup check</action></screen> @@ -196,15 +245,20 @@ </formalpara> <para><link linkend="ucspi-download">Download qmail</link>, set up the standard supporting users and build the binaries:</para> - <para>Red Hat 9.0: Put -<programlisting>#include <errno.h></programlisting> -as the first line of - <computeroutput>/usr/local/src/qmail-1.03/error.h</computeroutput>. - <ulink - url="http://www.riverside.org/archive/html/djbdns/2003-01/msg00307.html">More - information</ulink></para> <screen>[root@yourserver root]# <userinput>cd /usr/local/src</userinput> -[root@yourserver src]# <userinput>tar xzf /tmp/qmail-1.03.tar.gz</userinput> +[root@yourserver src]# <userinput>wget http://www.qmail.org/netqmail-1.04.tar.gz</userinput> +[root@yourserver src]# <userinput>tar xzf netqmail-1.04.tar.gz</userinput> +--15:04:11-- http://www.qmail.org/netqmail-1.04.tar.gz + => `netqmail-1.04.tar.gz' +Resolving www.qmail.org... done. +Connecting to www.qmail.org[192.203.178.37]:80... connected. +HTTP request sent, awaiting response... 200 OK +Length: 242,310 [application/x-gunzip] + +88% [===============================> ] 214,620 22.93K/s ETA 00:01 + +15:04:21 (24.04 KB/s) - `netqmail-1.04.tar.gz' saved [242310/242310] + [root@yourserver src]# <userinput>mkdir /var/qmail</userinput> [root@yourserver src]#<userinput> groupadd nofiles</userinput> [root@yourserver src]# <userinput>useradd -g nofiles -d /var/qmail/alias alias</userinput> @@ -215,16 +269,28 @@ [root@yourserver src]# <userinput>useradd -g qmail -d /var/qmail qmailq</userinput> [root@yourserver src]# <userinput>useradd -g qmail -d /var/qmail qmailr</userinput> [root@yourserver src]# <userinput>useradd -g qmail -d /var/qmail qmails</userinput> -[root@yourserver src]# <userinput>cd qmail-1.03</userinput> -[root@yourserver qmail-1.03]# <userinput>make setup check</userinput> +[root@yourserver src]# <userinput>cd netqmail-1.04</userinput> +[root@yourserver netqmail-1.04]# <userinput>./collate.sh</userinput> + +You should see 7 lines of text below. If you see anything +else, then something might be wrong. +[1] Extracting qmail-1.03... +[2] Patching qmail-1.03 into netqmail-1.04. Look for errors below: + 20 +[4] The previous line should say 20 if you used GNU patch. +[5] Renaming qmail-1.03 to netqmail-1.04... +[6] Continue installing qmail using the instructions found at: +[7] http://www.lifewithqmail.org/lwq.html#installation +[root@yourserver netqmail-1.04]# <userinput>cd netqmail-1.04</userinput> +[root@yourserver netqmail-1.04]# <userinput>make setup check</userinput> ( cat warn-auto.sh; \ echo CC=\'`head -1 conf-cc`\'; \ (many lines omitted) ./install ./instcheck -[root@yourserver qmail-1.03]# <action>cd /usr/local/src -tar xzf /tmp/qmail-1.03.tar.gz +wget http://www.qmail.org/netqmail-1.04.tar.gz +tar xzf netqmail-1.04.tar.gz mkdir /var/qmail groupadd nofiles useradd -g nofiles -d /var/qmail/alias alias @@ -235,7 +301,9 @@ useradd -g qmail -d /var/qmail qmailq useradd -g qmail -d /var/qmail qmailr useradd -g qmail -d /var/qmail qmails -cd qmail-1.03 +cd netqmail-1.04 +./collate.sh +cd netqmail-1.04 make setup check</action></screen> <para>Replace sendmail with qmail's wrapper.</para> <indexterm> @@ -327,7 +395,7 @@ chmod 755 /var/qmail/supervise/qmail-smtpd/log/run ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service </action></screen> - <para>Wait ten seconds or so, and then verify that that the four qmail processes are running. If uptimes are 1 second, this may indicate broken scripts that are continuously restarting. In that case, start debugging by checking permissions.</para> + <para>Wait ten seconds or so, and then verify that that the four qmail processes are running. If uptimes don't rise above 1 second, this may indicate broken scripts that are continuously restarting. In that case, start debugging by checking permissions.</para> <screen>[root@yourserver root]# <userinput>qmailctl stat</userinput> /service/qmail-send: up (pid 32700) 430 seconds /service/qmail-send/log: up (pid 32701) 430 seconds @@ -345,24 +413,24 @@ <para>Download the Analog <link linkend="analog-download">source tarball</link> in <computeroutput>/tmp</computeroutput>. Unpack, compile, and install analog.</para> <screen>[root@yourserver aolserver]# <userinput>cd /usr/local/src</userinput> -[root@yourserver src]# <userinput>tar xzf /tmp/analog-5.31.tar.gz</userinput> -[root@yourserver src]# <userinput>cd analog-5.31</userinput> -[root@yourserver analog-5.31]# <userinput>make</userinput> +[root@yourserver src]# <userinput>tar xzf /tmp/analog-5.32.tar.gz</userinput> +[root@yourserver src]# <userinput>cd analog-5.32</userinput> +[root@yourserver analog-5.32]# <userinput>make</userinput> cd src && make -make[1]: Entering directory `/usr/local/src/analog-5.31/src' +make[1]: Entering directory `/usr/local/src/analog-5.32/src' <emphasis>(many lines omitted)</emphasis> ***IMPORTANT: You must read the licence before using analog *** -make[1]: Leaving directory `/usr/local/src/analog-5.31/src' -[root@yourserver analog-5.31]# <userinput>cd ..</userinput> -[root@yourserver src]#<userinput> mv analog-5.31 /usr/share/</userinput> +make[1]: Leaving directory `/usr/local/src/analog-5.32/src' +[root@yourserver analog-5.32]# <userinput>cd ..</userinput> +[root@yourserver src]#<userinput> mv analog-5.32 /usr/share/</userinput> [root@yourserver src]# <action>cd /usr/local/src -tar xzf /tmp/analog-5.31.tar.gz -cd analog-5.31 +tar xzf /tmp/analog-5.32.tar.gz +cd analog-5.32 make cd .. -mv analog-5.31 /usr/share/</action></screen> +mv analog-5.32 /usr/share/</action></screen> <para>See also <xref linkend="analog-setup"/></para> </sect1> @@ -623,7 +691,8 @@ thread</ulink> for details on compiling nsopenssl.)</para> <screen>[root@yourserver bin]#<userinput> cd /usr/local/src/aolserver</userinput> -[root@yourserver aolserver]# <userinput>tar xzf /tmp/nsopenssl-2.1.tar.gz</userinput> +[root@yourserver aolserver]# <userinput>wget --passive http://www.scottg.net/download/nsopenssl-2.1.tar.gz</userinput> +[root@yourserver aolserver]# <userinput>tar xzf nsopenssl-2.1.tar.gz </userinput> [root@yourserver aolserver]# <userinput>cd nsopenssl-2.1</userinput> [root@yourserver nsopenssl-2.1]# <userinput>make OPENSSL=/usr/local/ssl</userinput> gcc -I/usr/local/ssl/include -I../aolserver/include -D_REENTRANT=1 -DNDEBUG=1 -g -fPIC -Wall -Wno-unused -mcpu=i686 -DHAVE_CMMSG=1 -DUSE_FIONREAD=1 -DHAVE_COND_EINTR=1 -c -o nsopenssl.o nsopenssl.c @@ -633,7 +702,9 @@ [root@yourserver nsopenssl-2.1]# <userinput>cp https.tcl /usr/local/aolserver/modules/tcl/</userinput> [root@yourserver nsopenssl-2.1]# <action>cd /usr/local/src/aolserver -tar xzf /tmp/nsopenssl-2.1.tar.gz +wget --passive +http://www.scottg.net/download/nsopenssl-2.1.tar.gz +tar xzf nsopenssl-2.1.tar.gz cd nsopenssl-2.1 make OPENSSL=/usr/local/ssl cp nsopenssl.so /usr/local/aolserver/bin @@ -649,5 +720,18 @@ cp nsopenssl.so /usr/local/aolserver/bin cp https.tcl /usr/local/aolserver/modules/tcl/</action></screen> </sect1> + + <sect1 id="install-tclwebtest"> + <title>Install tclwebtest.</title> + <para>Download the <link linkend="tclwebtest-source">tclwebtest + source</link>, unpack it, and put it an appropriate + place.</para> + <screen><action>cd /usr/local/src +tar xvzf /tmp/tclwebtest-0.3.tar.gz +mv tclwebtest /usr/local/ +ln -s /usr/local/tclwebtest-0.3/tclwebtest /usr/local/bin +</action></screen> + </sect1> + </appendix> Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/overview.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/overview.xml,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-core-docs/www/xml/install-guide/overview.xml 31 Oct 2003 15:57:37 -0000 1.14 +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/overview.xml 5 Nov 2003 11:48:12 -0000 1.15 @@ -174,7 +174,7 @@ </informaltable> </figure> </sect2> - + <sect2 id="how-to-use"> <title>How to use this guide</title> <itemizedlist> @@ -208,7 +208,7 @@ createdb <replaceable>server1</replaceable></action></screen> </listitem> </itemizedlist> - + </sect2> <sect2> <title>Paths and Users</title> @@ -380,9 +380,10 @@ </para> </listitem> </itemizedlist> - </sect2> <para><phrase role="cvstag">($Id: overview.xml,v 1.12 2003/10/28 22:07:41 joela Exp $)</phrase></para> + + </sect2> </sect1> Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/postgres.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/postgres.xml,v diff -u -r1.12 -r1.13 --- openacs-4/packages/acs-core-docs/www/xml/install-guide/postgres.xml 29 Oct 2003 09:01:09 -0000 1.12 +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/postgres.xml 5 Nov 2003 11:48:12 -0000 1.13 @@ -21,15 +21,15 @@ <listitem> <formalpara id="install-postgres-rpm"> <title>Using the Red Hat RPM</title> - <para>Red Hat users: If you install PostGreSQL 7.3.4 from the Red Hat 9 RPM, you - can skip a few steps. These shell commands add a link so that the - data directory appears to be in the same place as in a source - install; start the service; create a new group for web service + <para>Red Hat users: If you install PostGreSQL 7.3.2 from the Red Hat 9 RPM, you + can skip a few steps. These shell commands add some links for compatibility with the directories from a source-based install; start the service; create a new group for web service users, and modify the postgres user's environment (<link linkend="install-postgres-env">more information</link>):</para> </formalpara> - <screen>[root@yourserver root]# <userinput>ln -s /var/lib/pgsql/data /usr/local/pgsql/data</userinput> + <screen>[root@yourserver root]# <userinput>ln -s /usr/lib/pgsql/ /var/lib/pgsql/lib</userinput> +[root@yourserver root]# <userinput>ln -s /var/lib/pgsql /usr/local/pgsql</userinput> +[root@yourserver root]# <userinput>ln -s /etc/init.d/postgresql /etc/init.d/postgres</userinput> [root@yourserver root]# <userinput>service postgresql start</userinput> Initializing database: [ OK ] @@ -40,7 +40,8 @@ [root@yourserver root]# <userinput>su - postgres</userinput> -bash-2.05b$ <action> -ln -s /var/lib/pgsql/data /usr/local/pgsql/data +ln -s /usr/lib/pgsql/ /var/lib/pgsql/lib +ln -s /var/lib/pgsql /usr/local/pgsql service postgresql start echo "export LD_LIBRARY_PATH=/usr/local/pgsql/lib" >> ~postgres/.bash_profile echo "export PATH=$PATH:/usr/local/pgsql/bin" >> ~postgres/.bash_profile Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/red-hat.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/red-hat.xml,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-core-docs/www/xml/install-guide/red-hat.xml 28 Oct 2003 22:07:41 -0000 1.4 +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/red-hat.xml 5 Nov 2003 11:48:12 -0000 1.5 @@ -5,7 +5,7 @@ %myvars; ]> <appendix id="install-redhat"> - <title>Install Red Hat 8.0</title> + <title>Install Red Hat 8/9</title> <authorblurb> by <ulink url="mailto:joel@aufrecht.org">Joel Aufrecht</ulink> @@ -19,7 +19,19 @@ to install a new machine from scratch compared to installing each of these packages installed independently.)</para> - <para>The installation guide assumes you can do the following on + <para>The installation guide assumes you have:</para> + <itemizedlist> + <listitem><para>A PC with hard drive you can reinstall</para> + </listitem> + <listitem><para>Red Hat 8.0 or 9.0 install discs</para> + </listitem> + <listitem><para>A CD with the current <ulink + url="http://www.redhat.com/apps/support/errata/">Security + Patches</ulink> for your version of Red Hat.</para> + </listitem> + </itemizedlist> + +<para>The installation guide assumes that you can do the following on your platform: </para> @@ -62,7 +74,7 @@ consequences.")</para> </listitem> <listitem> - <para>Insert Red Hat 8.0 Disk 1 into the + <para>Insert Red Hat 8.0 or 9.0 Disk 1 into the CD-ROM and reboot the computer</para></listitem> <listitem><para>At the <computeroutput><guilabel>boot:</guilabel></computeroutput> @@ -148,18 +160,9 @@ computer to support and then click <computeroutput><guibutton><accel>N</accel>ext</guibutton></computeroutput></para></listitem> <listitem><para>Choose your time zone and click <computeroutput><guibutton><accel>N</accel>ext</guibutton></computeroutput>.</para></listitem>. - <listitem><para>Type in a root -password, twice. To - improve security, we're going to prevent anyone from - connecting to the computer directly as root. Instead, - we'll create a different user, called - <computeroutput>remadmin</computeroutput>, used solely to - connect to the computer for administration. Click -<computeroutput><guibutton><accel>A</accel>dd</guibutton></computeroutput> -and enter username <userinput>remadmin</userinput> and a password, -twice, then click <computeroutput><guibutton><accel>O</accel>K</guibutton></computeroutput>. Then click -<computeroutput><guibutton><accel>N</accel>ext</guibutton></computeroutput>.</para> -</listitem> + <listitem><para>Type in a root +password, twice.</para> + </listitem> <listitem><para>On the Package selection page, we're going to uncheck a lot of packages that install software we don't need, and add packages that have stuff we do need. You should install everything @@ -175,6 +178,8 @@ uncheck <computeroutput><guilabel>Server Configuration Tools</guilabel></computeroutput>, uncheck <computeroutput><guilabel>Web Server</guilabel></computeroutput>, uncheck <computeroutput><guilabel>Windows File Server</guilabel></computeroutput>, +check <computeroutput><guilabel>SQL Database +Server</guilabel></computeroutput> (this installs PostGreSQL, check <computeroutput><guilabel>Development Tools</guilabel></computeroutput> (this installs gmake and other build tools), uncheck <computeroutput><guilabel>Administration Tools</guilabel></computeroutput>, and uncheck <computeroutput><guilabel>Printing Support</guilabel></computeroutput>. </literallayout></para> @@ -196,6 +201,8 @@ uncheck <computeroutput><guilabel>pam-devel</guilabel></computeroutput> (I don't remember why, but we don't want this), uncheck <computeroutput><guilabel>portmap</guilabel></computeroutput>, uncheck <computeroutput><guilabel>postfix</guilabel></computeroutput> (this is an MTA, but we're going to install qmail later), +check +<computeroutput><guilabel>postgresql-devel</guilabel></computeroutput>, uncheck <computeroutput><guilabel>rsh</guilabel></computeroutput> (rsh is a security hole), uncheck <computeroutput><guilabel>sendmail</guilabel></computeroutput> (sendmail is an insecure MTA; we're going to install qmail instead later), check <computeroutput><guilabel>tcl</guilabel></computeroutput> (we need tcl), and @@ -232,6 +239,17 @@ [root@yourserver root]#</screen> </listitem> <listitem> + <para>Install any security patches. For example, insert your CD with + patches, mount it with <computeroutput>mount + /dev/cdrom</computeroutput>, then <computeroutput>cd + /mnt/cdrom</computeroutput>, then <computeroutput>rpm -UVH + *rpm</computeroutput>. Both Red Hat 8.0 and 9.0 have had both + kernel and openssl/openssh root exploits, so you should be + upgrading all of that. Since you are upgrading the kernel, + reboot after this step. +</para> + </listitem> + <listitem> <para>Lock down SSH</para> <orderedlist> <listitem><para><indexterm> @@ -246,8 +264,15 @@ <screen><userinput>emacs /etc/ssh/sshd_config</userinput></screen></para></listitem> <listitem><literallayout>Search for the word "root" by typing C-s (that's emacs-speak for control-s) and then <userinput>root</userinput>. Make the following changes: -<programlisting>#Protocol 2,1</programlisting> to <programlisting>Protocol 2</programlisting> (this prevents any connections via SSH 1, which is insecure) -<programlisting>#PermitRootLogin yes</programlisting> to <programlisting>PermitRootLogin no</programlisting> (this prevents the root use from logging in via ssh) +<programlisting>#Protocol 2,1</programlisting> to + <programlisting>Protocol 2</programlisting> + (this prevents any connections via SSH 1, which is insecure) +<programlisting>#PermitRootLogin yes</programlisting> to + <programlisting>PermitRootLogin no</programlisting> + (this prevents the root user from logging in remotely via + ssh. If you do this, be sure to create a remote access + account, such as "remadmin", which you can use to get ssh + before using "su" to become root.) <programlisting>#PermitEmptyPasswords no</programlisting> to <programlisting>PermitEmptyPasswords no</programlisting> (this blocks passwordless accounts) and save and exit by typing C-x C-s C-x C-c</literallayout></listitem> @@ -266,6 +291,8 @@ service netfs stop chkconfig --del pcmcia chkconfig --del netfs</action></screen> + <para>If you installed PostGreSQL, do also +<computeroutput>service postgresql start</computeroutput> and <computeroutput>chkconfig --add postgresql</computeroutput>.</para> </listitem> <listitem> <para>Plug in the network cable.</para> @@ -287,6 +314,10 @@ [root@yourserver root]#</screen> </listitem> <listitem> + <para>If you didn't burn a CD of patches and use it, can still + download and install the necessary patches. Here's how to + do it for the kernel; you should also check for other + critical packages.</para> <para>Upgrade the kernel to fix a security hole. The default Red Hat 8.0 system kernel (2.4.18-14, which you can check with <userinput>uname -a</userinput>) has several <ulink Index: openacs-4/packages/acs-core-docs/www/xml/install-guide/software.xml =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/xml/install-guide/software.xml,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-core-docs/www/xml/install-guide/software.xml 31 Oct 2003 10:36:43 -0000 1.9 +++ openacs-4/packages/acs-core-docs/www/xml/install-guide/software.xml 5 Nov 2003 11:48:12 -0000 1.10 @@ -138,9 +138,19 @@ queries in XML files, so we use an AOLserver module called tDOM to parse these files. (This replaces libxml2, which was used prior to 4.6.4.) tDOM is available from <ulink - url="http://tdom.org">http://tdom.org</ulink>).</para> + url="http://www.tdom.org">http://www.tdom.org</ulink>).</para> </formalpara> </listitem> + + <listitem id="source-tclwebtest"> + <formalpara> + <title>tclwebtest, OPTIONAL</title> + <para>tclwebtest 0.3 is a tool for testing web interfaces + via tcl scripts. <ulink + url="http://sourceforge.net/project/showfiles.php?group_id=31075">http://sourceforge.net/project/showfiles.php?group_id=31075</ulink>.</para> + </formalpara> + </listitem> + <listitem> <formalpara> <title>Web Server</title> @@ -279,7 +289,7 @@ <listitem> <formalpara id="analog-download"> <title><ulink - url="http://www.analog.cx/analog-5.31.tar.gz">Analog 5.31</ulink>, OPTIONAL</title> + url="http://www.analog.cx/analog-5.32.tar.gz">Analog 5.32</ulink>, OPTIONAL</title> <para>This program examines web server request logs, looks up DNS values, and produces a report. You need this if you want to see how much traffic your site is getting.</para> @@ -349,10 +359,9 @@ <listitem> <formalpara id="qmail-download"> <title><ulink - url="http://cr.yp.to/software/qmail-1.03.tar.gz">Qmail 1.03</ulink>, OPTIONAL</title> + url="http://www.qmail.org/netqmail/">Netqmail 1.04</ulink>, OPTIONAL</title> <para>You need this (or a different Mail Transport - Agent) if you want your webserver to send and - receive email.</para> + Agent) if you want your webserver to send and receive email.</para> </formalpara> </listitem> <listitem>