View · Search · Index


Filtered by category Subsystems Documentation, 1 - 10 of 83 Postings (all, summary)

Installing OpenACS on Windows

Created by Maurizio Martignano, last modified by Maurizio Martignano 15 Jun 2019, at 09:03 AM

Windows-OpenACS (vers. 4.4.6 - June 2019) is a  Windows 64 port of OpenACS 5.9.1 and the latest snapshot of NaviServer and is available at Spazio IT .

This port installs and runs on the following systems:

  • Windows 10,
  • Windows Server 2012 R2,
  • Windows Server 2016 and
  • Windows Server 2019.


Install OpenACS with NaviServer from Scratch

Created by Gustaf Neumann, last modified by Gustaf Neumann 14 May 2019, at 10:28 AM

This page describes how to install OpenACS with NaviServer on Unix-like systems (e.g. Linux, macOS, Solaris, OmniOS) by compiling all but PostgreSQL from scratch, guided by script that collects the components from various sources, compiles it, etc.

The installation is done in two steps:

  • : Install NaviServer and its components for a PostgreSQL installation from scratch by obtaining the relevant sources and compiling it. The script assumes PostgreSQL to be already installed (or obtainable via package managers), and installs all other components by obtaining it from the source repositories and compiling it from scratch (e.g. Tcl, tcllib, tDOM, libthread, nsf/XOTcl 2).
  • : Install OpenACS from CVS/git. This script configures a (pre-installed) PostgreSQL installation for
    OpenACS, adds hstore, installs OpenACS core, basic OpenACS packages, xowiki, xowf and optionally dotlrn from CVS/git and generates a config file and startup files (for Ubuntu and Fedora Core). The script assumes a pre-existing NaviServer installation, installed e.g. via

 These install scripts are frequently updated when new components are released or problems are detected (commit log ).

If you open the links above, use save-as in the browser to save the files. Alternatively, download the files as .zip file or clone the repository via GitHub .

   cd /usr/local/src
   git clone
   cd install-ns

The scripts work under a typical Linux installation (e.g. Ubuntu, Fedora Core) as well as on Mac OS X or on OmniOS. The scripts are tested with PostgreSQL 9.1, 9.2, 9.3, 9.4 and 9.5 on Ubuntu 12.04, 13.04, 14.04, 16.04, 18.04, Raspbian GNU/Linux 9.4 (stretch), Fedora Core 18 and CentOS 7.

On a a fresh Ubuntu installation, you should be able to download the two scripts from this page and install OpenACS with NaviServer in the following steps:

   sudo bash

   bash build

   bash build

After running both scripts in the default configuration you will see e.g.

   Congratulations, you have installed OpenACS with NaviServer on your machine.
   You might start the server manually with
       sudo /usr/local/ns/bin/nsd -t /usr/local/ns/config-oacs-5-9-1.tcl -u nsadmin -g nsadmin

One can start the server manually with the mentioned command.

Using systemd

On Fedora/CentOS or on Ubuntu installations starting with 15.04, systemd is used. The generated startup file for RedHat/Fedora is in /lib/systemd/system/oacs-5-9.service. The startup commands for systemd are

    sudo systemctl status oacs-5-9-1
    sudo systemctl start oacs-5-9-1
    sudo systemctl stop oacs-5-9-1

Remember, when a new systemd service is installed, systemd requires the following command to re-scan its service files:

    sudo systemctl daemon-reload

To start OpenACS automatically on every new start of the machine, issue the following command:

    sudo systemctl enable oacs-5-9-1

Using upstart

Alternatively, some older Ubuntu versions (up to 15.04) use upstart. For upstart, the the generated startup file is in /etc/init/oacs-5-9-1.conf. The service can be started/managed with the following commands

    sudo initctl status oacs-5-9-1
    sudo initctl start oacs-5-9-1
    sudo initctl stop oacs-5-9-1


When the service is running, one can use use OpenACS by browsing to http://localhost:8000/ (when the browser and server is running on the same host). The relevant files are stored under the following locations:

Configuration file /usr/local/ns/config-oacs-5-9-1.tcl
access.log /var/www/oacs-5-9-1/log/
error.log /var/www/oacs-5-9-1/log/
Source tree /var/www/openacs-5-9-1/packages/


Tcl Thread Library

Created by Gustaf Neumann, last modified by Gustaf Neumann 03 May 2019, at 10:39 PM

Libthread is the standard Tcl thread library developed by Zoran Vasiljevic and provides optional functionality for OpenACS. Threads created by the Tcl thread library are executed in an event loop, which makes it easy to send commands to such threads. xotcl-core provides support for the the thread library and uses it for example for [background delivery] of large files. Also the chat package uses libthread when it is installed. The xotcl-request-monitor depends on libthread.

The advantage of libthead over NaviServer/AOLserver threads is that the threads created by libthread are waiting in an event loop for incoming requests, which eases some types of applications.


In case, NaviServer was installed via install-ns, one can skip the section installation steps. Also the provided configuration script is already set up correctly for usage. The instruction below is for cases, where install-ns was not used.

1. Get and install libthread:

    download libthread e.g. from

   untar it and go to you platform specific directory (eg. thread2.8.2/unix)

    # cd unix
    # ../configure --enable-threads \
      --prefix=/usr/local/ns \
      --exec-prefix=/usr/local/ns \

use --prefix --exec-prefix --with-naviserver with the path pointing to the directory, where NaviServer is installed.
The setup for AOLserver is similar, but different paths are used.

  make install

You should now have installed (check for /usr/local/ns/lib/thread*/libthread* )

2) Adjusting the AOLserver/NaviServer configuration file to use libthread

    Open the configuration file 

  • look for modules section: ns_section ns/server/${server}/modules
  • add libthread to modules section:
    ns_param libthread thread2.8.2/

restart nsd and check the error log, whether libthread was loaded successfully.

Upgrade to OpenACS 5.9

Created by Gustaf Neumann, last modified by Gustaf Neumann 02 Apr 2019, at 11:06 AM

Upgrades from earlier version than OpenACS 5.8 should read upgrade-oacs-5-8.

OpenACS 5.9 requires PostgreSQL 9.0 or newer and XOTcl 2.0 or newer (part of the nsf package). XOTcl 2.0 can be installed e.g. via install-ns, or from Debian sid , or from sources . In order to check the versions of these packages already installed in your OpenACS installation, check the output of /xotcl/version-numbers in your installation.

Before upgrading to OpenACS 5.9, upgrade all packages in your current installation to recent versions in your OpenACS 5.8 installation (i.e. in the oacs-5-8 channel, especially if you are using edit-this-page, which has bugs in its data model that can complicate the oacs-5-9 installation).

In general it is always recommended to backup your current installation before overwriting it. Make e.g. a tar archive of all files of the OpenACS tree and a database dump.

After upgrading the packages in the oacs-5-8 channel,  the following steps are recommended:

  • Restart the server with OpenACS 5.8
  • Install newest version of the source files (e.g. from the OpenACS 5.9 tar distributions, or install/upgrade from the oacs-5-9 branch from cvs),
  • Upgrade the acs-core packages via package manager, restart server
  • Upgrade/install application packages via package manager as needed (from file-system or from repository)

To upgrade from OpenACS 5.9.0 to OpenACS 5.9.1 it is recommended to upgrade via tar ball or via CVS. Upgrade from repository works for NaviServer, but leads to an error after the install steps with AOLserver (the installation is OK, after a restart, everything is OK).


Step by step upgrade from OpenACS 5.8 directly to OpenACS 5.9.1

The following steps assume, you have a plain, not modified version of OpenACS running.

  1. Upgrade to the latest version of OpenACS 5.8, e.g. via
       cvs -r oacs-5-8 openacs-4
    Restart the server and make sure, you have upgrade all packages;
    under /acs-admin/apm/ you should see a Kernel like 5.8.3d2 running.
  2. Get release tar file
    Get the tar file of openacs-5.9.1, unpack it (e.g. under /usr/local), copy content over your current installation
       cd openacs-4
       cp -r /usr/local/openacs-5.9.1/* .
    and restart server.
  3. Upgrade packages:
    Browse to /acs-admin/install click on "upgrade from local", select all packages, restart server - done.

In case, you have a locally modified version of OpenACS, but you have not modified the kernel packages, then make sure to get the tar file of the core packages in step (2), proceed as described, upgrade the acs-core packages first and then the application packages of your installation.

In case you have in your installation as well changes in the acs-core packages (which is not recommended, but it happens), then get the diffs (you local changes) between the acs-core packages of oacs-5-8 and your installation, proceed as with the unmodified acs-core packages (paragraph above) and apply/merge your local changes after upgrading.

These steps are working also with recent versions of PostgreSQL such as 11.1.

Installing OpenACS on FreeBSD (quick)

Created by Martin Matuska, last modified by Gustaf Neumann 25 Mar 2019, at 07:29 AM

This quick-and-dirty guide is intended for more experienced (or very impatient) users.
More detailed instructions can be found here.

1. Installation requirements

FreeBSD (7.x, or 6.x) with updated ports tree
and NOT yet installed ports databases/postgresql82-server, www/openacs or www/openacs-dotlrn

2. Installing OpenACS

 Enter the following shell commands:

# cd /usr/ports/databases/postgresql82-server
# make install clean
# cd /usr/ports/databases/p5-postgresql-plperl
# make install clean
# echo 'postgresql_enable="YES"' >> /etc/rc.conf
# cd /usr/ports/www/openacs
# make install clean
# echo 'openacs_enable="YES"' >> /etc/rc.conf
# /usr/local/etc/rc.d/postgresql initdb
# /usr/local/share/doc/openacs/
# /usr/local/etc/rc.d/postgresql start
# /usr/local/share/doc/openacs/
# /usr/local/etc/rc.d/openacs start


Now open  in your browser http://localhost:8000 and fill in all necessary data, finalize installation. The OpenACS server goes down afterwards.


# /usr/local/etc/rc.d/openacs start

That's all! You local OpenACS installation is accessible under http://localhost:8000

3. Installing .LRN 

 Enter the following shell commands:

# cd /usr/ports/databases/postgresql82-server 
# make install clean
# cd /usr/ports/databases/p5-postgresql-plperl
# make install clean
# echo 'postgresql_enable="YES"' >> /etc/rc.conf.local
# cd /usr/ports/www/openacs-dotlrn
# make install clean
# echo 'dotlrn_enable="YES"' >> /etc/rc.conf.local
# /usr/local/etc/rc.d/postgresql initdb
# /usr/local/share/doc/dotlrn/
# /usr/local/etc/rc.d/postgresql start
# /usr/local/share/doc/dotlrn/
# /usr/local/etc/rc.d/dotlrn start

Now open  in your browser http://localhost:8000 and fill in all necessary data, finalize installation. The .LRN server goes down afterwards.

# /usr/local/etc/rc.d/dotlrn start

That's all! You local .LRN installation is accessible under http://localhost:8000


A. Contact information and bug reporting

Please send bug reports and feature suggestions to the port maintainer of OpenACS/.LRN FreeBSD ports:
Martin Matuska <mm_at_FreeBSD_dot_org>




OpenACS/.LRN for Debian

Created by Héctor Romojaro, Stefan Sobernig, last modified by Gustaf Neumann 22 Mar 2019, at 11:14 PM




Packages of OpenACS  and .LRN  are now available for Debian GNU/Linux . We hope to facilitate the adoption by novices and the infrastructure deployment by professional users, both running Debian GNU/Linux  and its derivatives. Our packaging activity explicitly targets Debian GNU/Linux  stable , testing and unstable . Important dependencies are co-maintained with the Debian Tcl/Tk Maintainers .

See also OpenACS for Ubuntu.

Getting started

Please, review the section on supported distributions first.  Currently, the core packages (openacs, dotlrn) and their dependencies are included into the official Debian GNU/Linux  repositories.


  1. Run:

    apt-get update


  2. (optional) Provide for a PostgreSQL environment: If you don't have a PostgreSQL installation at hand, provide one. You do not need to care about setting up a concrete data base. This is automatically done by the OpenACS and dotlrn post-install instructions. For further PostgreSQL-related set-up issue, see ...
    apt-get install postgresql
    If you run a remote PostgreSQL instance, remember to allow for access of the PostgreSQL Administrator (postgres) and the openacs/dotlrn user from machine hosting your OpenACS/.LRN installation.
  3. Install the core packages and follow the on-screen instructions:
    # OpenACS
    apt-get install openacs
    ... or ...
    # .LRN
    apt-get install dotlrn   

After Install

  1. (optional) To change IP address and port of the instance, please edit the file:
    # OpenACS
    # dotLRN
  2. (optional) To control the instance using daemontools, please install the daemontools debian packages and follow the instructions on the file:

    # OpenACS
    # dotLRN


Next Steps, After Basic Installation (above)



Active contributors

  • Héctor Romojaro 
  • Stefan Sobernig
  • Avni M. Khatri
  • Carl R. Blesius

Packages status

Packages maintained by Debian Tcl/Tk Maintainers 


Packages co-maintained by OCT & Debian Tcl/Tk Maintainers 





Please, for getting in contact and reporting issues, consider ...


Created by OpenACS community, last modified by Gustaf Neumann 22 Mar 2019, at 11:11 PM

A Tcl-based package, tDOM combines high performance XML data processing with easy and powerful Tcl scripting functionality. tDOM is one of the fastest ways to manipulate XML with a scripting language and uses very little memory. Newer versions of tDOM support JSON.

More info at (mailing list )

What others say about tDOM

Using tDOM with OpenACS


Testing with Selenium

Created by Hamilton Chua, last modified by Gustaf Neumann 22 Mar 2019, at 10:13 PM

Testing with Selenium

Selenium is primarily for feature testing, user interface and acceptance testing.

Recently OpenACS got support for Selenium RC   on CVS HEAD to be released in OpenACS 5.6 sometime in the future.

Forum Posts :

Command Reference :

Selenium Documentation

Interesting Articles :

Tools :

Selenium Recorder Firefox Extension

Quickstart to Writing Tests:

  This quickstart shows you how to start writing selenium tests with selenium and the selenium recorder (aka selenium-ide).

  1. You need to have the Firefox Browser version 1.5 or higher
  2. Proceed to and click on the link (Firefox Extension) to install the Selenium IDE firefox extension
  3. Restart firefox
  4. Click Tools -> Selenium IDE
  5. The selenium ide window will open
  6. It will start recording your actions in the browser.
  7. You can go ahead and go to a url and click on the links to see how the recorder records your actions.
  8. To disable recording while the recorder window is open, click the "red" button.
  9. Selenium verifies that a test or action is successful by checking the title or text in a webpage
  10. You can verify the title of the current page  by right clicking on the webpage you are currently in and click Append Selenium -> verifyTitle
  11. You can verify the presence of text in a page by highlighting some text and then right click -> Append Selenium Command -> verifyTextPresent

Click here for a video of how to use Selenium IDE.

Selenium IDE allows you to create, save, load and run tests right from firefox without having to install Selenium on the server.

Selenium on the Server

Aside from using the Selenium IDE to test webpages, selenium itself can be installed on the server. This provides a central location for testers and developers to view and execute tests. "Server" here refers to the OpenACS instance where your application is running. If your OpenACS instance is in http://your_openacs_instance, then selenium should be installed in http://your_openacs_instance/selenium

WARNING: We do not recommend installing selenium on the server of a production instance. Only install selenium on a staging or test server. This is because

  • When tests fail, they leave a mess of test data that you will not want on production
  • Selenium is mostly javascript that can run on any browser. While there are currently no reports of exploits on servers running selenium, we do not want and (you should not too) take the risk of having it on a production box where it is possible for a clever hacker to utilize a browser vulnerability to break into your server.

To instal selenium on the server :

  1. Download selenium from
  2. Choose to download the "Full Release"
  3. After downloading, decompress the file.
  4. You will see a folder selenium-x.x where "x.x" is the version of selenium you downloaded.
  5. Go inside this folder and look for the "selenium" folder.
  6. Copy this "selenium" folder to the openacsroot/www/ directory
  7. Launch a browser and go to http://your_openacs_instance/selenium

At this point, selenium is installed. The page that you see when you visit /selenium is the default selenium page. It lists the tests that come with selenium.

To start using selenium on the server :

  1. Customize the landing page /selenium/index.html
  2. Create Test Suites for each package. A test suite is just a file in selenium/tests that lists a number of tests for a particular feature or section of an application. For instance, TestSuite-News.html would be a file that lists the tests for the News Package.
  3. Upload tests to the /selenium/tests folder.

Guidelines for Creating and Running Tests for OpenACS Packages

Coming Soon .....

Some Limitations :

  • Minor Issue with SSL  : Selenium can't switch properly between http and https pages.
  • File Input type not supported : You can't tell selenium to upload a file. But there is a work around with firefox. Read it here
  • WYSIWYG Editors  : Selenium can't write to some WYSIWYG editors like htmlarea but it seems to work with xinha, you just need to get the textearea element name that xinha uses.

Tips :

Use xpath to find specific html elements

I have  scenario where I want to click ona image field with no id or name attribute so there's no easy way to tell selenium to click it. We can either ask the designer to put an id or name attribute or use xpath. Let's say the image button in question looks like this

 <input type="image" src="images/long-login-btn.gif" width=166 height=15 />

the xpath syntax will be


and you can use this in conjunction with clickAndWait

Use javascript to create dummy values

You can use javascript to generate values like so

  javascript{'test' + (new Date()).getTime()}

and use store to store them to a value for use later in the selenium script.


OpenACS compatibility matrix

Created by Joel Aufrecht, last modified by Gustaf Neumann 22 Mar 2019, at 12:10 PM

OpenACS requires, at a minimum, an operating system, database, and web server to work. Many additional programs, such as a build environment, Mail Transport Agent, and source control system, are also needed for a fully effective installation.

Table 2.2. Version Compatibility Matrix

OpenACS Version 3.2.5 4.5 4.6 4.6.1 4.6.2 4.6.3 5.0 5.1 5.2 (core) 5.3 (core) 5.4 (core) 5.5 (core) 5.6 (core) 5.7 (core) 5.8 (core) 5.9.0 (core) 5.9.1 (core) 5.10.0 (core)
AOLserver 3 Yes No
3.3+ad13 Maybe Yes No
3.3oacs1 Maybe Yes No
3.4.4 No
3.4.4oacs1 Maybe Yes No
3.5.5 Maybe Yes No
4.0 Maybe Yes No
4.5 No Yes No
4.5.2 No Yes
NaviServer 4.99.4 - No Maybe Yes
Tcl 8.4 Yes No
8.5.4 - Maybe Yes
8.6.7 - No Maybe Yes
XOTcl 1.6 - Yes No
2.0 - No Yes
PostgreSQL 7.4 No Yes No
8.0 No Maybe Yes Maybe No
8.1 No Yes Maybe No
8.2 No tar: no, CVS: Yes Yes Maybe No
8.3 No Yes Maybe No
8.4 No Yes No
9.0 No Yes Mostly
9.2 No Mostly yes Mostly
9.4 No Mostly yes
11 No CVS: yes Yes
Oracle 8.1.6 Maybe Yes Maybe
8.1.7 Maybe Yes Maybe
9i No Yes Maybe
10g No Yes Maybe
11g No Maybe

The value in the cells correspond to the last version of that release, and not necessarily to all minor releases. Empty cells denote an unknown status.

Installing OpenACS on Arch Linux

Created by Markus Moser, last modified by Markus Moser 11 Jul 2018, at 06:49 PM


Make sure the Arch User Repository is set up correctly. On a fresh installation, follow the instructions as described here:

or, in greater detail, here:



Let's start with installing postgres. Postgres is automatically pulled in as a dependency of openacs, but you should verify before installing openacs that everything is working. In case anything goes wrong with your postgres installation, OpenACS will run into errors when trying to setup the database after installation.

➤  sudo pacman -S postgresql

Let's start the service and check if it runs correctly.

➤  sudo systemctl start postgresql      
➤  sudo systemctl status postgresql                                                                                                                               
● postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
   Active: active (running) since ....

A fresh installation of postgres might require to run initdb first:

➤ sudo -u postgres -i
[postgres]➤ initdb --locale en_US.UTF-8 -E UTF8 -D '/var/lib/postgres/data'

Now let's install OpenACS.

➤  yaourt -S openacs


After the installation we can start it conveniently with systemd:

➤  sudo systemctl start openacs

➤  sudo systemctl status openacs



Next Page
previous June 2019
Sun Mon Tue Wed Thu Fri Sat
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 (1) 15
16 17 18 19 (1) 20 21 22
23 24 25 26 27 28 29
30 1 2 3 4 5 6

Popular tags

17 , 5.9.0 , 5.9.1 , ad_form , ADP , ajax , aolserver , asynchronous , bgdelivery , bootstrap , bugtracker , CentOS , COMET , compatibility , CSP , CSRF , cvs , debian , emacs , engineering-standards , fedora , FreeBSD , guidelines , host-node-map , hstore , includelets , install , installation , installers , install-ns
No registered users in community xowiki
in last 30 minutes