How to install ACS on Windows

by Matthew Burke
Updated: 2 May 2000

Overview

With the recent release of a win32 version of AOLserver, it is now possible to run the ACS on Windows2000 and Windows98. This document explains the steps necessary to get the ACS installed and running on your machine. Note: We do not recommend running a production server on Windows98. But the platform is more than sufficient for working the problem sets and for getting a feel for the ACS.

Warning: As of April 26, 2000, AOLserver has serious threading problems when run under Windows. We are making these installation instructions availble for those of you who like living on the bleeding edge. Currently there are two patches/workarounds you should implement:

Prerequisites

It is helpful if you have Oracle interMedia Text for full-text searches. We're also trying to make our system work with the PLS System, available free from http://www.pls.com.

Your Oracle installation

When you install Oracle, a good rule of thumb is "every default setting is wrong." We will not discuss Oracle configuration here except to mention that the ACS requires Oracle's NLS_DATE_FORMAT parameter be set to 'YYYY-MM-DD'. In Windows2000, proceed as follows:
  1. Run Oracle Administration Assistant for Windows NT (yes, that's Windows NT)
  2. Navigate using the Explorer-style control in the left panel and select the Oracle Home for the database you wish to use.
  3. Bring up its properties dialog and add a parameter NLS_DATE_FORMAT with value 'YYYY-MM-DD' (without the quotes)
  4. Verify the date format by logging into the database using SQL Plus and run the following query: select sysdate from dual;

To set the date format in Windows98 you will need to perform a little registry surgery as follows:

  1. Run regedit and navigate down the registry keys to HKEY_LOCAL_MACHINE\Software\ORACLE.
  2. Choose the appropriate subtree; this will be HOME0 if you only have on einstallation of Oracle.

    If you are an Oracle achiever and have more than one Oracle installation on your machine, you will see HOME0, HOME1, HOME2, etc. Choose the subtree that corresponds to the Oracle installtion you wish to use with the ACS.

  3. If the NLS_DATE_FORMAT key is already present, double-click on its value and change it to 'YYYY-MM-DD' (without the quotes). If the key does not exist, choose Edit->New->String Value from the menu and type NLS_DATE_FORMAT for the name of the new value to create it. Then double-click on the empty value to change it.
  4. Verify the date format by logging into the database using SQL Plus and run the following query: select sysdate from dual;

For more information on Oracle configuration look at http://www.photo.net/wtr/oracle-tips or search the Web/db Q&A Forum. One other note: the "nuke a user" admin page and Intermedia won't run unless you set open_cursors = 500 for your database.

The stock AOLserver installation

Extract AOLserver onto the C drive and rename the folder from aolserver3_0-win32-i386 to aolserver3_0 as this will save typing in console windows. Test the stock AOLserver distribution by running install-service.bat in c:\aolserver3_0\bin and then take a look at http://localhost:8000 (the stock configuration file puts the web service at port 8000). You should get an introductory page with links to AOLserver documentation, some test scripts and interesting links on aolserver.com.

When you've verified the stock AOLserver installation, run remove-service.bat in c:\aolserve3_0\bin and reboot your machine. Copy the ArsDigita Oracle driver, ora8.dll, to the directory with the AOLserver executable. If you followed our naming advice above, this should be c:\aolserver3_0\bin. Reboot your machine.

Untar the ACS

We recommend rooting webserver content in c:\web. Since most servers these days are expected to run multiple services from multiple IP addresses, each server gets a subdirectory from c:\web. For example, http://scorecard.org would be rooted at c:\web\scorecard on one of our machines and if http://jobdirect.com were on the same box then it would be at c:\web\jobdirect.

For the sake of argument, we're going to assume that your service is called "yourdomain", is going to be at http://yourdomain.com and is rooted at c:\web\yourdomain in the Windows2000 file system. Note that you'll find our definitions files starting out with "yourdomain.com".

You'll now find that c:\web\yourdomain\www contains the document root and c:\web\yourdomain\tcl contains Tcl scripts that are loaded when the AOLserver starts up.

Feeding Oracle the Data Model

The entire server will behave in an unhappy manner if it connects to Oracle and finds that, for example, the users table does not exist. Thus you need to connect to Oracle as whatever user the AOLserver will connect as, and feed Oracle the table definitions.

Configuring AOLServer

You will need two configuration files. The first is a Tcl file with configuration information for AOLserver. This should be called yourdomain and should be located in c:\aolserve3_0. The second is an .ini file that configures the ACS and is discussed below. Note that pathnames in yourdomain must use forward slashes rather than the Windows back slashes. This is also true for the .ini file.

The following items must be defined in yourdomain:

You can use our template file as a starting point (you'll need to save this file with a rather than .txt extension).

Configuring ACS itself

If you want a system that works, go to c:\web\yourdomain\parameters and copy ad.ini to yourdomain.ini (or any other name different from ad.ini). You don't actually have to delete ad.ini.

Each section of yourdomain.ini has a hardcoded "yourservername" in the name (e.g. [ns/server/yourservername/acs]). This means that the ACS will ignore your configuration settings unless your AOLserver name happens to be "yourservername". Therefore you must go through yourdomain.ini and change "yourservername" to whatever you're calling this particular AOLserver (look at the server name in the nsd file for a reference).

Unless you want pages that advertise a community called "Yourdomain Network" owned by "webmaster@yourdomain.com", you'll probably want to edit the text of yourdomain.ini to change system-wide parameters. If you want to see how some of these are used, a good place to look is c:\web\yourdomain\tcl\ad-defs. The Tcl function, ad_parameter, is used to grab parameter values from the .ini file.

Starting the Service

Now you're ready to start things up. Before installing as a Windows service, you might want to test the setup for configuration errors. Open up a console window and go to c:\aolserver3_0. Then run
bin\nsd -it yourdomain
If everything seems ok, you can kill the server with Control-c and then issue the following command to install as a Windows service:
bin\nsd -I -s yourdomain -t yourdomain
You can now configure error recovery and other Windows aspects of the service from the Services control panel. If you make further changes to yourdomain or yourdomain.ini you should stop and start the service from the Services control panel.

Configuring Permissions

Now, you need to protect the proper administration directories of the ACS. You decide the policy although we recommend requiring the admin directories be accessible only via an SSL connection. Here are the directories to consider protecting:

Adding Yourself as a User and Making Yourself a Sysadmin

The ArsDigita Community System will define two users: system and anonymous. It will also define a user group of system administrators. You'll want to add yourself as a user (at /register/ ) and then add yourself as as member of the site-wide administration group. Start by logging out as yourself and logging in as the system user (email of "system"). Change the system user's password. Visit the https://yourservername.com/admin/ug/ directory and add your personal user as a site-wide administrator. Now you're bootstrapped!

If you do not know what the system user's password is connect to Oracle using SQL Plus and run the following query:

select password from users where last_name = 'system';

Closing Down Access

The ACS ships with a user named "anonymous" (email "anonymous") to serve as a content owner. If you're operating a restricted-access site, make sure to change the anonymous user's password. In recent versions of the ACS you cannot log into "anonymous" because the account does not have a valid user state. Log in as a sysadmin and change the anonymous user's password from https://yourservername/admin/users. You should read the documentation for user registration and access control and decide what the appropriate user state is for anonymous on your site.

Where to Find What

A few pointers:

Making sure that it works

Run the acceptance tests in /doc/acceptance-test

Appendix: Running Multiple Instances of the ACS

You can run multiple instances of the ACS on a physical machine but they must each be set up as a separate Windows service. Each instance of the ACS must have its own Suppose you wish to run two services: lintcollectors.com and iguanasdirect.com. You would need the following: For each of these tablespaces/users you would load the ACS data model as described above. Then in c:\aolserver3_0 create files for each service, i.e. lintcollectors and iguanasdirect. These files would point to their respective pageroots, c:\web\lintcollectors\www and c:\web\iguanasdirect\www; their respective auxconfigdirs, c:\web\lintcollectors\parameters and c:\web\iguanasdirect\parameters; etc. In the respective auxconfigdirs would be the files lintcollectors.ini and iguanasdirect.ini.

Now open a console window and go to c:\aolserver3_0. You'll start up the two services as follows:

bin\nsd -I -s lintcollectors -t lintcollectors
bin\nsd -I -s iguanasdirect -t iguanasdirect
In the services control panel you should see two services: AOLserver-lintcollectors and AOLserver-iguanasdirect.
mburke@arsdigita.com