Install AOLserver 3.3oacs1

by Vinod Kurup

OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.
  1. Unpack the Aolserver tarball. Download the aolserver tarball and unpack it.

    [root@yourserver root]# cd /usr/local/src
    [root@yourserver src]# wget --passive http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz
    --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]# tar xzf aolserver3.3oacs1.tar.gz
    [root@yourserver src]#
    cd /usr/local/src
    wget --passive http://uptime.openacs.org/aolserver-openacs/aolserver3.3oacs1.tar.gz
    tar xzf aolserver3.3oacs1.tar.gz

    This section also relies on some OpenACS files, which you can get with the section called “Unpack the OpenACS tarball”.

  2. Compile AOLserver. Compile and install AOLserver. First, prepare the installation directory and the source code. The message about BUILD-MODULES can be ignored.

    root@yourserver root]# mkdir -p /usr/local/aolserver
    [root@yourserver root]# cd /usr/local/src/aolserver
    [root@yourserver aolserver]# ./conf-clean
    cat: BUILD-MODULES: No such file or directory
    Done.
    [root@yourserver aolserver]#mkdir -p /usr/local/aolserver
    cd /usr/local/src/aolserver
    ./conf-clean

    If you are using Oracle, edit conf-db and change postgresql to oracle, or to the word both if you want both drivers installed. In order to get nsoracle to compile, you may need to su - oracle, and then su (without the -) root to set the environment variables properly.

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

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

    conf-make should contain the name of the GNU Make command on your system. It defaults to gmake. Debian users: ln -s /usr/bin/make /usr/bin/gmake.

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

    (Debian Users working with AOLserver 3.3+ad13 and postgresql from apt-get may need to make these symlinks: ln -s /usr/include/postgresql/ /usr/include/pgsql and ln -s /usr/lib/postgresql /usr/local/pgsql)

    [root@yourserver aolserver]# export POSTGRES=/usr/local/pgsql; ./conf
    Building in /usr/local/aolserver
    with the following modules:
    aolserver
    nscache
    nsrewrite
    nssha1
    nsxml
    pgdriver
    ==================================================================
    Starting Build Sat Mar  8 10:28:26 PST 2003
    Running gmake in aolserver/; output in log/aolserver.log
    (several minute delay here)
    Running gmake in nscache/; output in log/nscache.log
    Running gmake in nsrewrite/; output in log/nsrewrite.log
    Running gmake in nssha1/; output in log/nssha1.log
    Running gmake in nsxml/; output in log/nsxml.log
    Running gmake in nspostgres/; output in log/nspostgres.log
    Creating  ...
    ==================================================================
    Done Building Sat Mar  8 10:31:35 PST 2003
    [root@yourserver aolserver]# 

    This takes about 5 minutes. It builds aolserver, several modules, and the database driver. (Upgraders, note that the postgres database driver has changed from postgres.so to nspostgres.so). All of the results are logged to files in /usr/local/src/aolserver/log. If you run into problems running AOLserver, check these files for build errors.

  3. Add a database-specific wrapper script. This script sets database environment variables before starting AOLserver; this allows the AOLserver instance can communicate with the database. There is one script each for Oracle and PostgreSQL. They don't conflict, so if you plan to use both databases, install both.

    • Oracle

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

      [root@yourserver aolserver]# cd /usr/local/aolserver/bin
      [root@yourserver bin]# cp /tmp/openacs-5.0.0b4/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres
      [root@yourserver bin]# chmod 755 nsd-postgres
      [root@yourserver bin]#
      cd /usr/local/aolserver/bin
      cp /tmp/openacs-5.0.0b4/packages/acs-core-docs/www/files/nsd-postgres.txt ./nsd-postgres
      chmod 755 nsd-postgres
  4. Install tDOM. Download the tDOM tarball, unpack it, adjust the configuration file to match our patched distribution of aolserver, and compile it.

    [root@yourserver root]# cd /usr/local/src
    [root@yourserver src]# wget --passive http://www.tdom.org/tDOM-0.7.8.tar.gz
    --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]# tar xzf tDOM-0.7.8.tar.gz
    [root@yourserver src]# cd tDOM-0.7.8/unix
    [root@yourserver unix]#
    cd /usr/local/src
    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 

    Edit the file CONFIG and change this section:

    # ----------------------------------------------------
    # aolsrc="/usr/src/aolserver-3.4"
    # ../configure --enable-threads --disable-tdomalloc \
    #   --with-aolserver=$aolsrc \
    #   --with-tcl=$aolsrc/tcl8.3.4/unix 

    to

    # ----------------------------------------------------
    aolsrc="/usr/local/src/aolserver/aolserver"
    ../configure --enable-threads --disable-tdomalloc \
      --with-aolserver=$aolsrc \
      --with-tcl=$aolsrc/tcl8.3.2/unix

    And configure and compile:

    [root@yourserver unix]# sh CONFIG
    creating cache ./config.cache
    checking for memmove... yes
      (many lines omitted)
    creating Makefile
    creating tdomConfig.sh
    [root@yourserver unix]# make
    gcc -pipe -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DTCL_THREADS=1
    -DHAVE_GETCWD=1 -DHAVE_OPENDIR=1 -DHAVE_STRSTR=1 -DHAVE_STRTOL=1 
      (many lines omitted)
              -Wl,-rpath,/usr/local/lib -o tcldomsh;\
    fi
    [root@yourserver unix]# cp libtdom0.7.8.so /usr/local/aolserver/bin/
    [root@yourserver unix]# cd /usr/local/aolserver/bin/
    [root@yourserver bin]# ln -s libtdom0.7.8.so libtdom.so
    [root@yourserver bin]#
    
    sh CONFIG
    make
    cp libtdom0.7.8.so /usr/local/aolserver/bin/
    cd /usr/local/aolserver/bin
    ln -s libtdom0.7.8.so libtdom.so
  5. Install nsopenssl (OPTIONAL)

  6. Install Full Text Search with OpenFTS (OPTIONAL)

  7. Install nspam (OPTIONAL)

  8. Test AOLserver. In order to test AOLserver, we'll run it using the sample-config.tcl file provided in the AOLserver distribution, under the nobody user and web group. The sample-config.tcl configuration writes to the default log locations, so we need to give it permission to do so or it will fail. Grant the web group permission to write to /usr/local/aolserver/log and /usr/local/aolserver/servers.

    [root@yourserver root]# cd /usr/local/aolserver
    [root@yourserver aolserver]# chown -R root.web log servers
    [root@yourserver aolserver]# chmod -R g+w log servers
    [root@yourserver aolserver]# ls -l
    total 32
    drwxr-sr-x    2 root     root         4096 Mar  8 12:57 bin
    drwxr-xr-x    3 root     root         4096 Mar  8 10:34 include
    drwxr-sr-x    3 root     root         4096 Mar  8 10:34 lib
    drwxrwsr-x    2 root     web          4096 Mar  8 10:31 log
    drwxr-sr-x    3 root     root         4096 Mar  8 10:31 modules
    -rw-r--r--    1 root     root         7320 Mar 31  2001 sample-config.tcl
    drwxrwsr-x    3 root     web          4096 Mar  8 10:31 servers
    [root@yourserver aolserver]#
    
    cd /usr/local/aolserver
    chown -R root.web log servers
    chmod -R g+w log servers
    ls -l

    Now, we'll run a quick test to ensure AOLserver is running correctly. We'll use the sample config file provided with AOLserver. This file will attempt to guess your IP address and hostname. It will then start up the server at port 8000 of that IP address.

    [root@yourserver aolserver]# ./bin/nsd -t sample-config.tcl -u nobody -g web
    [root@yourserver aolserver]# [08/Mar/2003:15:07:18][31175.8192][-main-] Notice: config.tcl: starting to read config file...
    [08/Mar/2003:15:07:18][31175.8192][-main-] Warning: config.tcl: nsssl not loaded -- key/cert files do not exist.
    [08/Mar/2003:15:07:18][31175.8192][-main-] Warning: config.tcl: nscp not loaded
    -- user/password is not set.
    [08/Mar/2003:15:07:18][31175.8192][-main-] Notice: config.tcl: finished reading
    config file.

    The first warning, about nsssl, can be ignored. We won't be using nsssl; we'll be using nsopenssl instead, and we haven't fully configured it yet. The nscp warning refers to the fact that, without a user and password in the config file, the administrative panel of AOLserver won't load. We don't plan to use it and can ignore that error as well. Any other warning or error is unexpected and probably a problem.

    Test to see if AOLserver is working by starting Mozilla or Lynx on the same computer and surfing over to your web page. If you browse from another computer and the sample config file didn't guess your hostname or ip correctly, you'll get a false negative test.

    [root@yourserver aolserver]# lynx localhost:8000

    You should see a "Welcome to AOLserver" page. If this doesn't work, try going to http://127.0.0.1:8000/. If this still doesn't work, check out the Troubleshooting AOLserver section below. Note that you will not be able to browse to the web page from another machine, because AOLserver is only listening to the local address.

    Shutdown the test server:

    [root@yourserver aolserver]# killall nsd
    [root@yourserver aolserver]#

    The killall command will kill all processes with the name nsd, but clearly this is not a good tool to use for managing your services in general. We cover this topic in the Keep AOLserver alive section.

  9. Troubleshooting. If you can't view the welcome page, it's likely there's a problem with your server configuration. Start by viewing your AOLserver log, which is in /usr/local/aolserver/log/server.log. You should also try to find lines of the form:

    [01/Jun/2000:12:11:20][5914.2051][-nssock-] Notice: nssock: listening on http://localhost.localdomain:8000 (127.0.0.1:8000)
    [01/Jun/2000:12:11:20][5914.2051][-nssock-] Notice: accepting connections

    If you can find these lines, try entering the URL the server is listening on. If you cannot find these lines, there must be an error somewhere in the file. Search for lines beginning with the word Error instead of Notice.

    The sample-config.tcl file grabs your address and hostname from your OS settings.

    set hostname        [ns_info hostname]
    set address         [ns_info address]

    If you get an error that nssock can't get the requested address, you can set these manually. If you type 0.0.0.0, AOLserver will try to listen on all available addresses. Note: ns_info address doesn't appear to be supported in current versions of AOLserver.

    set hostname        [ns_info hostname]
    #set address         [ns_info address]
    set address 0.0.0.0
  10. Install Analog web file analyzer. (OPTIONAL)

($Id: aolserver.html,v 1.25 2003/12/11 23:08:45 jeffd Exp $)
View comments on this page at openacs.org