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.24 -r1.25 --- openacs-4/packages/acs-core-docs/www/openacs.html 11 Dec 2003 23:08:46 -0000 1.24 +++ openacs-4/packages/acs-core-docs/www/openacs.html 4 Feb 2004 16:47:33 -0000 1.25 @@ -1,15 +1,15 @@ -Install OpenACS 5.0.0b4

Install OpenACS 5.0.0b4

by Vinod Kurup

+Install OpenACS

Install OpenACS

by Vinod Kurup

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

Set up the file system for one or more OpenACS Sites

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

[root@yourserver root]# mkdir /var/lib/aolserver
-[root@yourserver root]# chgrp web /var/lib/aolserver
-[root@yourserver root]# chmod 770 /var/lib/aolserver
-[root@yourserver root]#
+      site on a server, you must create the parent directory and set its permissions:

[root root]# mkdir /var/lib/aolserver
+[root root]# chgrp web /var/lib/aolserver
+[root root]# chmod 770 /var/lib/aolserver
+[root root]#
 mkdir /var/lib/aolserver
 chgrp web /var/lib/aolserver
 chmod 770 /var/lib/aolserver

Set up a user account for each site.

@@ -33,60 +33,57 @@ developers for that specific instance. Add this user, and put it in the service0 group so that it can use database and server commands associated with that group. -

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

Install with automated script (EXPERIMENTAL)

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

Get the install script from CVS. It is located within +

+[root root]# useradd service0
+[root root]#

Install with automated script

A bash script is available to automate all of the steps for the rest of this section. It requires tclwebtest. The automated script can greatly accelerate the install process, but is very sensitive to the install environment. We recommend that you run the automated install and, if it does not work the first time, consider switching to a manual installation.

Get the install script from CVS. It is located within the main cvs tree, at /etc/install. Use anonymous CVS checkout to get that directory in the home directory of the service's dedicated user. We put it there so that it is not overwritten when we do the main CVS checkout to the target - location.

[root@yourserver root]# su - service0
-[service0@yourserver service0]$ cvs -d :pserver:anonymous@openacs.org:/cvsroot co -d install openacs-4/etc/install
+        location.

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

Edit - /home/service0/install/install.tcl - and change the values as documented in the file. It will work - unchanged at 127.0.0.1:8000.

Run the file as root.

[service0@yourserver service0]$ exit 
-[root@yourserver root]# sh /home/service0/install/install.sh
+[service0 service0]$ cd install
+[service0 install]$ emacs install.tcl
+

Edit the installation configuration file, /home/service0/install/install.tcl and update the site-specific values, such as the new service's IP address and name, which will be written into the new service's config.tcl file. If your system is different from the one described in the previous sections, check the file paths as well. Set do_checkout=yes to create a new OpenACS site directly from a CVS checkout, or =no if you have a fully configured site and just want to rebuild it (drop and recreate the database and repeat the installation). If you have followed a stock installation, the default configuration will work without changes and will install an OpenACS site at 127.0.0.1:8000.

Run the install script install.sh as root:

[service0 service0]$ exit 
+[root root]# sh /home/service0/install/install.sh
 /home/service0/install/install.sh: Starting installation with config_file 
 /home/service0/install/install.tcl. Using serverroot=/var/lib/aolserver/
 service0, server_url=http://0.0.0.0:8000, do_checkout=yes, do_install=yes, 
 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]#

You can proceed to the section called “Next Steps”.

Install from tarball

You should already have downloaded the OpenACS tarball + ... many lines omitted ... +Tue Jan 27 11:50:59 CET 2004: Finished (re)installing /var/lib/aolserver/service0. +###################################################################### + New site URL: http://127.0.0.1:8000 +admin email : admin@yourserver.net +admin password: xxxx +###################################################################### +[root root]#

You can proceed to the section called “Next Steps”.

Install from tarball

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

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

    [root@yourserver root]# su - service0
    -[service0@yourserver service0]$ cd /var/lib/aolserver
    -[service0@yourserver aolserver]$ tar xzf /tmp/openacs-5.0.0b4.tgz
    -[service0@yourserver aolserver]$ mv openacs-5.0.0b4 service0
    -[service0@yourserver aolserver]$ chmod -R 700 service0
    -[service0@yourserver aolserver]$ ls -al
    +      /tmp and proceed:

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

      [root root]# su - service0
      +[service0 service0]$ cd /var/lib/aolserver
      +[service0 aolserver]$ tar xzf /tmp/.tgz
      +[service0 aolserver]$ mv  service0
      +[service0 aolserver]$ chmod -R 700 service0
      +[service0 aolserver]$ ls -al
       total 3
       drwxrwx---    3 root     web          1024 Mar 29 16:41 .
       drwxr-xr-x   25 root     root         1024 Mar 29 16:24 ..
       drwx------    7 service0 web          1024 Jan  6 14:36 service0
      -[service0@yourserver aolserver]$ exit
      +[service0 aolserver]$ exit
       logout
      -
      -[root@yourserver root]#
      +[root root]#
       su - service0
       cd /var/lib/aolserver
      -tar xzf /tmp/openacs-5.0.0b4.tgz
      -mv openacs-5.0.0b4 service0
      +tar xzf /tmp/.tgz
      +mv  service0
       chmod -R 700 service0/
       exit
    2. Add the Service to CVS (OPTIONAL)

    3. Prepare the database

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

        You should be sure that your user account @@ -96,23 +93,20 @@ Verify membership by typing groups when you login: -

        -service0:~$ groups
        +		  

        [service0 ~]$ groups
         dba web

        If you do not see these groups, take the following action: -

        -service0:~$ su -      
        +		  

        [service0 ~]$ su -
         Password: ************
        -root:~# adduser service0 dba

        +[root ~]# adduser service0 dba

        If you get an error about an undefined group, then add that group manually: -

        -root:~# groupadd dba
        -root:~# groupadd web

        +

        [root ~]# groupadd dba
        +[root ~]# groupadd web

        Make sure to logout as root when you are finished with this step and log back in as @@ -121,20 +115,15 @@ Connect to Oracle using svrmgrl and login: -

        -service0:~$ svrmgrl
        -
        -SVRMGR> connect internal
        +		  

        [service0 ~]$ svrmgrl
        +SVRMGR> connect internal
         Connected.

      • Determine where the system tablespaces are stored: -

        -SVRMGR>  select file_name from dba_data_files;

        +

        SVRMGR> select file_name from dba_data_files;

        Example results: - -

        -/ora8/m01/app/oracle/oradata/ora8/system01.dbf
        +		  

        /ora8/m01/app/oracle/oradata/ora8/system01.dbf
         /ora8/m01/app/oracle/oradata/ora8/tools01.dbf
         /ora8/m01/app/oracle/oradata/ora8/rbs01.dbf
         /ora8/m01/app/oracle/oradata/ora8/temp01.dbf
        @@ -159,14 +148,14 @@
         		  Create the directory for the datafile; to do this,
         		  exit from svrmgrl and login as
         		  root for this step: 

        -SVRMGR> exit
        -service0:~$ su -
        +SVRMGR> exit
        +[service0 ~]$ su -
         Password: ************
        -root:~# mkdir -p /ora8/m02/oradata/ora8/
        -root:~# chown service0.web /ora8/m02/oradata/ora8
        -root:~# chmod 775 /ora8/m02/oradata/ora8
        -root:~# exit
        -service0:~$
      • +[root ~]# mkdir -p /ora8/m02/oradata/ora8/ +[root ~]# chown service0:web /ora8/m02/oradata/ora8 +[root ~]# chmod 775 /ora8/m02/oradata/ora8 +[root ~]# exit +[service0 ~]$

  2. Create a tablespace for the service. It is important that the tablespace can autoextend. This @@ -177,77 +166,69 @@ Oracle's ability to automatically coalesce free space in the tablespace. -

    -service0:~$ svrmgrl
    -
    -SVRMGR> connect internal;
    -SVRMGR> create tablespace service0 
    -             datafile '/ora8/m02/oradata/ora8/service001.dbf' 
    -             size 50M 
    -             autoextend on 
    -             next 10M
    -             maxsize 300M
    -             extent management local
    -             uniform size 32K;
  3. +

    [service0 ~]$ svrmgrl
    +SVRMGR> connect internal;
    +SVRMGR> create tablespace service0
    +      datafile '/ora8/m02/oradata/ora8/service001.dbf' 
    +      size 50M 
    +      autoextend on 
    +      next 10M
    +      maxsize 300M
    +      extent management local
    +      uniform size 32K;
  4. Create a database user for this service. Give the user access to the tablespace and rights to connect. We'll use - service0password as our password.

    - Write down what you specify as service_name - (i.e. service0) and - database_password - (i.e. service0password). You - will need this information for configuring exports and - AOLserver. + service0password as our password.

    + Write down what you specify as + service_name + (i.e. service0) + and database_password + (i.e. service0password). You + will need this information for configuring exports + and AOLserver.

    -SVRMGR> create user service0 identified by service0password default tablespace service0
    -temporary tablespace temp quota unlimited on service0;
    -SVRMGR> grant connect, resource, ctxapp, javasyspriv, query rewrite to service0;
    -SVRMGR> revoke unlimited tablespace from service0;
    -SVRMGR> alter user service0 quota unlimited on service0;
    -SVRMGR> exit;

    +SVRMGR> create user service0 identified by service0password default tablespace service0 + temporary tablespace temp quota unlimited on service0; +SVRMGR> grant connect, resource, ctxapp, javasyspriv, query rewrite to service0; +SVRMGR> revoke unlimited tablespace from service0; +SVRMGR> alter user service0 quota unlimited on service0; +SVRMGR> exit;

    Your table space is now ready. In case you are trying to delete a previous OpenACS installation, consult these commands in the section called “Deleting a tablespace” below.

  5. Make sure that you can login to Oracle using your - service_name account:

    -service0:~$ sqlplus service0/service0password
    -SQL> select sysdate from dual;
    -
    +        service_name account: 

    [service0 ~]$ sqlplus service0/service0password
    +SQL> select sysdate from dual;
     SYSDATE
     ----------
     2001-12-20
    -
    -SQL> exit

    +SQL> exit;

    You should see today's date in a format 'YYYY-MM-DD.' If you can't login, try redoing step 1 again. If the date is in the wrong format, make sure you followed the steps outlined in the section called “Troubleshooting Oracle Dates”

  • Prepare PostgreSQL for an OpenACS Service.�

    • PostgreSQL:

      Create a user in the database matching the service - name. With default PostgreSQL authentication, a system user connecting locally automatically authenticates as the postgres user of the same name, if one exists. We currently use postgres "super-users" for everything, which means that anyone with access to any of the openacs system accounts on a machine has full access to all postgresql databases on that machine.

      [root@yourserver root]# su - postgres
      -[postgres@yourserver pgsql]$ createuser -a -d service0
      +            name.  With default PostgreSQL authentication, a system user connecting locally automatically authenticates as the postgres user of the same name, if one exists.  We currently use postgres "super-users" for everything, which means that anyone with access to any of the openacs system accounts on a machine has full access to all postgresql databases on that machine.

      [root root]# su - postgres
      +[postgres pgsql]$ createuser -a -d service0
       CREATE USER
      -[postgres@yourserver pgsql]$ exit
      +[postgres pgsql]$ exit
       logout
      -
      -[root@yourserver root]#
    • Create a database with the same name as our service name, service0.

      [root@yourserver root]# su - service0
      -[service0@yourserver service0]$ createdb -E UNICODE service0
      +[root root]#
    • Create a database with the same name as our service name, service0.

      [root root]# su - service0
      +[service0 service0]$ createdb -E UNICODE service0
       CREATE DATABASE
      -[service0@yourserver service0]$
      +[service0 service0]$
       su - service0
      -createdb -E UNICODE service0
    • Automate daily database Vacuuming. This is a process which cleans out discarded data from the database. A quick way to automate vacuuming is to edit the cron file for the database user. Recommended: VACUUM ANALYZE every hour and VACUUM FULL ANALYZE every day.

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

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

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

    • [service0@yourserver service0]$ exit
      -logout
      -
      -[root@yourserver root]# 
  • Configure an AOLserver Service for OpenACS.�

    1. +createdb -E UNICODE service0

    2. Automate daily database Vacuuming. This is a process which cleans out discarded data from the database. A quick way to automate vacuuming is to edit the cron file for the database user. Recommended: VACUUM ANALYZE every hour and VACUUM FULL ANALYZE every day.

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

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

      0 1-23 * * * /usr/local/pgsql/bin/vacuumdb --full --analyze service0
      +0 0 * * * /usr/local/pgsql/bin/vacuumdb --full --analyze service0
    3. Add Full Text Search Support (OPTIONAL)

    4. At this point the database should be ready for installing OpenACS.

  • Configure an AOLserver Service for OpenACS.�

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

      [root@yourserver root]# su - service0
      -[service0@yourserver service0]$ cd /var/lib/aolserver/service0/etc
      -[service0@yourserver etc]# emacs config.tcl
      +	   Open it in an editor to adjust the parameters.

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

      You can continue without changing any values in the file. However, if you don't change address to match the computer's ip address, you won't be able to browse to your server from other machines.

      • httpport - If you want your @@ -286,10 +267,10 @@ the command line via -u 501 -g 502. Second, if you are root then killall will affect all OpenACS services on the machine, so if there's more than one you'll have to do ps -auxw | grep - nsd and selectively kill by job number.

        [service0@yourserver etc]$ killall nsd
        +	  nsd and selectively kill by job number.

        [service0 etc]$ killall nsd
         nsd: no process killed
        -[service0@yourserver service0]$ /usr/local/aolserver/bin/nsd-postgres -t /var/lib/aolserver/service0/etc/config.tcl
        -[service0@yourserver service0]$ [08/Mar/2003:18:13:29][32131.8192][-main-] Notice: nsd.tcl: starting to read config file...
        +[service0 service0]$ /usr/local/aolserver/bin/nsd-postgres -t /var/lib/aolserver/service0/etc/config.tcl
        +[service0 service0]$ [08/Mar/2003:18:13:29][32131.8192][-main-] Notice: nsd.tcl: starting to read config file...
         [08/Mar/2003:18:13:29][32131.8192][-main-] Notice: nsd.tcl: finished reading config file.
      • Attempt to connect to the service from a web browser. You should specify a URL like: http://yourserver.test:8000

        You should see a page that looks like this. If you imported your files into @@ -306,11 +287,11 @@ permissions errors or missing files. If you need to make changes, don't forget to kill any running servers with killall nsd. -

      • Automate +

      • Automate AOLserver keepalive (OPTIONAL)

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

    • You should see a page from the webserver titled OpenACS Installation: @@ -360,26 +341,26 @@ You'll see the final Installer page, "OpenACS Installation: Complete." It will tell you that the server is being restarted; note that unless you already set up a way for - AOLserver to restart itself (ie. inittab or daemontools), + AOLserver to restart itself (ie. inittab or daemontools), you'll need to manually restart your service. -

      [service0@yourserver service0]$ /usr/local/aolserver/bin/nsd-postgres -t /var/lib/aolserver/service0/config.tcl
    • +

      [service0 service0]$ /usr/local/aolserver/bin/nsd-postgres -t /var/lib/aolserver/service0/config.tcl
    • Give the server a few minutes to start up. Then reload the final page above. You should see the front page, with an area to login near the upper right. Congratulations, OpenACS - 5.0.0b4 is now up and running! -

  • Next Steps

    Next Steps

    ($Id$)
    View comments on this page at openacs.org
    +ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
  • Test your backup and recovery procedure.

  • Set up the section called “External uptime validation”.

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