OCT2 (Online Conference Toolkit v.2)

Installation and Configuration

This guide walks you through the steps for installing and configuring the OCT2 system. OCT2 is a new and improved version of the original OCT system deveveloped by David Gering. OCT2 was used for the CVPR 2003 paper submission and review process and was co-developed by Shendong Zhao and Kyros Kutulakos. The following instructions are an adaptation of the original OCT installation instructions, which can be found here.

1. System Requirements 2. Create the Admin Account
3. Download Packages 4. Install AOLServer
5. Install Postgresql 6. Install Database Driver
7. Configure AOLserver 8. Install Keepalive
9. Set Processes to be Restarted 10. Configuring the Remote Backup Scripts
11. Where to Find Help

1. System Requirements

OCT2 has been tested on Redhat Linux version 7.3 running on an Intel machine with 1 GB of RAM and 32 Gigs of free local harddisk space.

top

2. Create the Admin Account

The webserver software will execute as the user named octadmin. This user account will exist only on the machine that hosts the site, and all webmasters will administer the site as this single user.

Login as root, and type the following commands at the commandline: (NOTE: Currently, the system can be installed ONLY on the /scratch directory)

mkdir /scratch cd /scratch mkdir oct /usr/sbin/groupadd octadmin /usr/sbin/useradd -g octadmin -d /scratch/oct octadmin passwd octadmin chown octadmin oct

Logout as root, and login as octadmin. Then do:

cd

Add the following lines to the .bash_profile file (don't forget the leading period on the filename):

export OCT_HOME=/scratch/oct

Then, back at the commandline, do:

source .bash_profile

Make sure that the file /scratch/oct/.bashrc contains code to set the PATH environment variable. For example:

PATH=$PATH:$HOME/bin export PATH

top

3. Download and Unpack the Installation Files

Log in as octadmin and download the OCT2 installation tarfile. This file should be placed in the /scratch/oct directory and named oct2.tar.gz. Unpack the installation:

tar xvfz oct2.tar.gz

OCT2 is based on a collection of free, open-source packages. All these packages are already included in the above installation file but can also be downloaded individually from here:

top

4. Install AOLServer

As octadmin, do the following

cd /scratch/oct/pkg tar xzvf aolserver-3.4.tar.gz cd $OCT_HOME/pkg cd aolserver-3.4 make make install INST=$OCT_HOME/aolserver cp ~/pkg/utilities.tcl ~/aolserver/modules/tcl

Test the AOLServer by doing:

cd $OCT_HOME/aolserver ./bin/nsd -kt sample-config.tcl

Point your browser to http://YOUR-MACHINE-NAME:8000 (eg. http://euclides.cs.toronto.edu:8000)

See its threads by typing the following command (linux threads have differenct process IDs, or PIDs):

ps -aux | grep nsd

Stop it by looking up its main process's PID...

cat log/nspid.server1

...and killing it with the following command (substituting the PID you looked up in place of "YOUR-PID"):

kill -9 YOUR-PID

top

5. Install Postgresql

As octadmin, build the software by doing:

cd $OCT_HOME/pkg tar xzvf postgresql-7.1.tar.gz cd postgresql-7.1 ./configure --with-x --prefix=$OCT_HOME/pgsql --exec-prefix=$OCT_HOME/pgsql --libdir=$OCT_HOME/pgsql/lib

Edit the file src/include/config.h to make it compatible with RedHat Linux 7.3:

Now complete the installation by typing the following command

make

As root, create the "postgre" user by doing:

/usr/sbin/groupadd web /usr/sbin/useradd -g web -d /scratch/oct/pgsql postgre passwd postgre mkdir /scratch/oct/pgsql chown postgre.web /scratch/oct/pgsql

As postgre, edit your profile by doing:

cd

Add to the .bash_profile file:

OCT_HOME=/scratch/oct LD_LIBRARY_PATH=$OCT_HOME/pgsql/lib export OCT_HOME LD_LIBRARY_PATH

Make sure the file .bashrc contains code to set the PATH environment variable:

PATH=$PATH:$HOME/bin export PATH

Back at the command line, install the database by doing:

source .bash_profile cd $OCT_HOME/pkg/postgresql-7.1 make install cd mkdir data cd bin ./initdb -D $OCT_HOME/pgsql/data

Create the database for oct by doing the following.

$OCT_HOME/pgsql/bin/postmaster -S -D $OCT_HOME/pgsql/data ./createdb octdb ./createlang --pglib $OCT_HOME/pgsql/lib plpgsql octdb

Test your postgresql installation.
The following command will open an interactive terminal to the database, and the next command closes it.

./psql octdb \q

When the interactive terminal was open, it should have looked like this: (if not, there is a problem)

Welcome to psql, the PostgreSQL interactive terminal. Type: \copyright for distribution terms \h for help with SQL commands \? for help on internal slash commands \g or terminate with semicolon to execute query \q to quit octdb=>

Create a database user for octadmin.
As postgre, do (with your own password in place of "MYPASS"):

./psql octdb create user octadmin with password 'MYPASS'; \q

top

6. Install Database Driver

As octadmin, do:

cd $OCT_HOME/pkg tar xzvf pgdriver-2.0.tgz

Login as root and type

chmod a+rx /scratch/oct/pgsql

Login as octadmin again and do:

cd pgdriver-2.0 make NSHOME=$OCT_HOME/aolserver PGLIB=$OCT_HOME/pgsql/lib PGINC=$OCT_HOME/pgsql/include make install INSTALL=$OCT_HOME/aolserver

top

7. Configure AOLserver

As octadmin, configure the OCT2-specific files by doing:

cd $OCT_HOME/aolserver cp ~/pkg/oct/aolserver/* . chmod 755 init chmod 755 kill chmod 644 nsd.tcl cp -r ~/pkg/oct/servers/* servers

Edit the init and kill scripts to reflect your installation.

Edit nsd.tcl to replace the MailHost, hostname, and MYPASS (that you used for database access above) by modifying the following lines:

set hostname zeus.cs.toronto.edu ns_param MailHost mail.cs.toronto.edu ns_param Password MYPASS source /scratch/oct/aolserver/servers/${server}/tcl/${server}.tcl

Edit servers/oct/tcl/init.tcl.template.etempl to suit your conference. PLEASE read the file's comments for instructions! For example, the following lines were edited for CVPR'03:

set Config(urlConference) "http://www.cs.toronto.edu/cvpr2003" set Config(longTitle) "CVPR 2003 Submissions" set Config(shortTitle) "CVPR" set Config(supportEmail) cvpr2003-pc-chairs@cs.toronto.edu set Config(adminEmail) admin-email@cs.toronto.edu set Config(logoFilename) bikerWP.gif set Config(logoWidth) 150 set Config(logoHeight) 223 set Config(ipNoTrack) "127.0.0.1"

Important: Do NOT modify any entries in this file that are surrounded by the 'XX' delimiter, ie. strings of the form XXstringXX

Create an initial configuration for the AOLserver by typing the following, with zeus.cs.toronto.edu replaced by the hostname of the computer running the webserver:

cd /scratch/oct/aolserver/servers/oct/tcl ./configure_oct zeus.cs.toronto.edu

Login as root and do:

mkdir /usr/local/pgsql chown postgre /usr/local/pgsql

Load Data Model into Database

Do the following as the postgre user:

cp -r /scratch/oct/pgsql/lib /usr/local/pgsql cd $OCT_HOME/aolserver/servers/oct/pages/admin/sql ~/bin/psql octdb \i postgres.sql \q

Login as octadmin and make sure the following lines are in ~/.bash_profile

OCT_HOME=/scratch/oct LD_LIBRARY_PATH=$OCT_HOME/pgsql/lib export OCT_HOME LD_LIBRARY_PATH PATH=$PATH:$HOME/pgsql/bin export PATH

Then, do the following:

source ~/.bash_profile cd $OCT_HOME/aolserver/servers/oct/pages/admin/sql psql octdb \i model.sql \dt \q

top

8. Install Keepalive

As octadmin, do:

cd $OCT_HOME/pkg tar xzvf keepalive.tar.gz cd $OCT_HOME/aolserver cp ~/pkg/keepalive/aolserver/* . chmod 755 ka-init chmod 755 ka-kill chmod 644 ka-nsd.tcl cp -r ~/pkg/keepalive/servers/* servers

Edit ka-nsd.tcl to modify the following line:

ns_param MailHost mail.cs.toronto.edu

according to your installation.

Edit servers/ka/config.ini to replace MY-EMAIL:

oct http://127.0.0.1/art/dbtest.tcl success {/scratch/oct/aolserver/oct/kill} {MY-EMAIL} {} 4 2 {} 1

   

What Does Keepalive do?

Keepalive is another webserver that will test your OCT webserver every minute, and restart it automatically if it hangs. It will also email your site administrator when there are any problems.

top

9. Set Processes to be Restarted

If you restart your machine, or if there's a power outage, it's nice if all your processes have been configured to restart automatically.

As root, edit /etc/inittab to add lines similar to:

# Web Servers nsp1:2345:respawn:/scratch/oct/aolserver/init nsp2:2345:respawn:/scratch/oct/aolserver/ka-init

Then apply your changes by entering the following on the command line as root:

/sbin/init Q

This will restart AOLserver.

To restart the database, do the following as the postgre user...

cp /scratch/oct/pkg/init.txt /etc/rc.d/init.d/postgresql /sbin/chkconfig --add postgresql

To test the server restarting function, login as octadmin and do the following:

cd ~/aolserver/ ./kill

If you encounter trouble starting the database, note that the postmaster process will not start if something happened to create a state where some old lock files are left over. For example, if the postmaster process is not running (you don't see the postmaster process listed when you type: ps -aux), but there are lock files existing as /tmp/.s.PGSQL.*, then you will need to become root to delete these lock files.

top

10. Configuring the Remote Backup Scripts

To maximize reliability, backups should be performed remotely, from a 'backup host' that stores information on a completely separate file system.

Log on as a regular user on the backup host (e.g., your office machine). Copy and install the backup scripts on the backup host from your AOLserver host (replace zeus.cs.toronto.edu by that hostname):

scp octadmin@zeus.cs.toronto.edu:/scratch/oct/pkg/oct2-remote.tar.gz . tar xvfz oct2-remote.tar.gz

Backups rely on three basic scripts:

These scripts were hard-coded for the CVPR 2003 installation at the University of Toronto. You will need to look at the script source to adapt it to your local installation.

top

11. Where to Find Help

You may wish to consult the documentation and installation instructions of the original OCT system.

The reason OCT (Online Conference Toolkit) is called a "Toolkit" instead of a "Tool" is because you can alter and extend it to fit your conference. Useful resources in this regard are:

Useful Resources
Learn TCL
Learn SQL
Ask a very knowledgable and helpful community about using PostgreSQL with AOLserver
AOLserver documentation
PostgreSQL documentation
Why use AOLserver instead of Apache?
Why use PostgreSQL instead of MySQL?

top