Filtered by category Subsystems Documentation, 1 - 10 of 78 Postings (all
Created by OpenACS community, last modified by Gustaf Neumann 21 Oct 2016, at 08:53 AM
This information is deprecated. Please refer to Installing OpenACS on debian.
The quicksheet versions:
You should know what you're doing when you use them.
Tcl development headers are required for compiling Tcl packages yourself.
apt-get install tcl8.4-dev
Should you decide to Install OpenACS from source using general en:openacs-system-install instructions, refer to these notes for changes:
Debian stable user should install PostGreSQL from source as detailed below, or they should use the www.backports.org backport for Postgres to get a more current version. Debian unstable users: the following process has been known to work (but you should double-check that the version of PostGreSQL is 7.3 or above):
For Debian stable users, you can use backports, by adding this line to the /etc/apt/sources.list
deb http://www.backports.org/debian stable bison postgresql openssl openssh tcl8.4 courier debconf spamassassin tla diff patch neon chkrootki
and perform this actions:
apt-get install postgresql postgresql-dev postgresql-doc
ln -s /usr/include/postgresql/ /usr/include/pgsql
ln -s /var/lib/postgres /usr/local/pgsql
ln -s /usr/include/pgsql /usr/local/pgsql/include
su postgres -c "/usr/lib/postgresql/bin/createlang plpgsql template1"
..and proceed to the next section.
Installing PostgreSQL's Tsearch2
apt-get install postgresql-contrib
Creating the Postgres user.
Use adduser instead of useradd. Type man adduser for more info.
On debian woody (stable, 3.0), do:
./configure --without-readline --without-zlib
Set PostgreSQL to start on boot
[root ~]# cp /var/tmp/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
[root ~]# chown root.root /etc/init.d/postgresql
[root ~]# chmod 755 /etc/init.d/postgresql
cp /var/tmp/openacs-5.2.0d1/packages/acs-core-docs/www/files/postgresql.txt /etc/init.d/postgresql
chown root.root /etc/init.d/postgresql
chmod 755 /etc/init.d/postgresql
Test the script
[root ~]# /etc/init.d/postgresql stop
Stopping PostgreSQL: ok
If PostgreSQL successfully stopped, then use the following command to make sure that the script is run appropriately at boot and shutdown.
[root ~]# update-rc.d postgresql defaults
Adding system startup for /etc/init.d/postgresql ...
/etc/rc0.d/K20postgresql -> ../init.d/postgresql
/etc/rc1.d/K20postgresql -> ../init.d/postgresql
/etc/rc6.d/K20postgresql -> ../init.d/postgresql
/etc/rc2.d/S20postgresql -> ../init.d/postgresql
/etc/rc3.d/S20postgresql -> ../init.d/postgresql
/etc/rc4.d/S20postgresql -> ../init.d/postgresql
/etc/rc5.d/S20postgresql -> ../init.d/postgresql
[root ~]# /etc/init.d/postgresql start
Starting PostgreSQL: ok
Debian defaults to starting all services on runlevels 2-5.
You can apt-get install tcl8.4-dev if you have the right version (stable users will need to add tcl8.4 to their sources.list file as described in the "Install Postgresql" section above. You will have to use /usr/lib/tcl8.4/ instead of /usr/local/lib when you try to find the tcl libraries, however.
apt-get install tcl8.4 tcl8.4-dev
and proceed to installing aolserver.
When installing aolserver, replace --with-tcl=/usr/local/lib/ with --with-tcl=/usr/lib/tcl8.4.
To install AOLserver you can use apt command:
apt-get install aolserver4 aolserver4-nscache aolserver4-nspostgres aolserver4-nssha1 tdom
After installing AOLserver, You need to make the following symbolic link:
ln -s /usr/lib/aolserver4 /usr/local/aolserver
Created by OpenACS community, last modified by elle gonzalez 18 Oct 2016, at 07:34 AM
Prerequisites to installing OpenACS
You will need a computer with at least these minimum specifications:
- 256MB RAM (much more if you will be running Oracle)
- 1GB free space on the computer's hard disk (much more if you will be running Oracle)
- a compatible, Unix-like operating system en:os-nix installed.
All of the software mentioned is open-source and available without direct costs, except for Oracle. You can obtain a free copy of Oracle for development purposes (see: en:oracle-install).
Each version of OpenACS only works with certain versions of the component software. Determine which versions you will be using by reviewing the en:openacs-compatibility-matrix.
These components in-turn depend on other software and parts of the OS. Here is a list of minimum required versions. For production systems, use the lastest stable release:
- GNU/Linux. The installation assumes a linux kernel of 2.2.22 or newer, or 2.4.14 or newer.
- glibc 2.2 or newer. You need recent versions of these libraries for Oracle to build and work properly. For Unicode support, you need glibc 2.2 or newer. glibc should be included in your operating system distribution.
- GNU Make 3.76.1 or newer and gcc. PostgreSQL and AOLserver require gmake/gcc to compile.
OpenACS has a variety of packages that may require other software to be installed. Review the individual package documentation for other requirements. Also, OpenACS is commonly deployed with other related applications. For your convenience, here is a short list of some of these:
- tclwebtest - a tool for testing web interfaces via tcl scripts.
- ns_pam - provides PAM capabilities for AOLserver. You need this if you want OpenACS users to authenticate through a PAM module (such as RADIUS).
- pam_radius - provides RADIUS capabilities for PAM. You need this if you want to use RADIUS authentication via PAM in OpenACS.
- ns_ldap - provides LDAP capabilities for AOLserver. You need this if you want to use LDAP authentication in OpenACS.
- OpenFTS - Adds full-text-search to PostgreSQL and includes a driver for AOLserver. You need this if you want users to be able to search for any text on your site. For postgres 7.4.x and higher, full text search is also available via tsearch2.
- Analog - examines web server request logs, looks up DNS values, and produces a report. You need this if you want to see how much traffic your site is getting.
- Balance - "a simple but powerful generic tcp proxy with round robin load balancing and failover mechanisms." You need this support or something equivalent if you are running a high-availability production site and do not have an external load balancing system.
- Daemontools -You need this if you want AOLserver and qmail to run "supervised," meaning that they are monitored and automatically restarted if they fail. An alternative would be to run the services from inittab.
- Netqmail - You need this (or a different Mail Transport Agent) if you want your webserver to send and receive email.
- ucspi-tcp - listens for incoming TCP connections and hands them to a program. We use it instead of inetd, which is insecure. You need this if you are running qmail.
- DocBook (docbook-xml, docbook-xsl, libxslt, xsltproc) - for writing or editing docbook style documentation.
- search uses these utilities to index file contents: http://wagner.pp.ru/~vitus/software/catdoc/ and http://poppler.freedesktop.org/ based on xpdf.
Created by Rocael Hernández Rizzardini, last modified by Gustaf Neumann 16 Oct 2016, at 12:38 PM
In order to speed up file-deliveries, one can use the background delivery methods provided by xotcl-core. The main advantage is that with background delivery the costly connection threads are just used for permission checking and locating the file, and the time-consuming spooling of the file to the client is implemented in an asynchronous background delivery thread. Therefore, connection thread are not blocked, it is possible to spool simultaneously several hundred (thousand?) files with only a few connection threads configured.
We use this in production since several years. For example today (no semester yet) we had so far 150.000 file deliveries by background delivery.
The asynchrounous background delivery requires a small patch (2 changes, one is a backport from naviserver) and the tcl thread library (by zoran). The application code is in XOTcl is only a few lines of code and is included in xotcl-core (bgdelivery-procs.tcl).
One needs the following patch to
The patch is already included in the current head version of aolserver 4.5 and in NaviServer.
With this patch and xotcl-core, one can replace
ns_returnfile 200 $mime_type $filename
ad_returnfile_background 200 $mime_type $filename
e.g. in cr_write_content in acs-content-repository/tcl/revision-procs.tcl to activate it and to deliver files from the content-repository (file-store) in the background.
The connection thread is only used for permission management, localization of the file and writing the the reply header, the actual delivery of the file is performed via asynchronous io without using up many resources. This can handle probably a couple of thousand concurrent file deliveries without running out of resources.
Check the files that has been served since the last reboot of your NaviServer/aolserver using this method from the developer support shell:
bgdelivery do set delivery_count
Created by Byron Linares, last modified by Maurizio Martignano 04 Oct 2016, at 09:49 AM
NOTE: Currently (10/2016), the best option to get OpenACS 5.9.* running on Windows is to use the native windows installation Windows-OpenACS by Spazio IT (Maurizio Martignano).
This page describes the installation of (quite old) components based on cygwin, but might still be useful for people, that can't use Maurizio's implementation for whatever reason:
- OpenACS 5.2.3
- DotLRN 2.2.0
- AOLServer 4.0.beta10_2003
- PostgresSQL 7.4.3
- OpenACS 5.2.3
- DotLrn 2.2.0
Installer Download :
The installer is available in openacs community page.
- OpenACS/dotLRN installer
- OpenACS 5.2.0 installer
Run the "OpenACS/DotLRN Installer" called setup.exe, read the license document before continuing, the installer will ask for some information, this will be used to make the automatic installation.
There are to ways to install the components; manually or automatic
- dotLRN Manual and openACS Manual:
- In this modality the entered personal data in the installer will be omitted and will be necessary to retake the installation from a browser window and enter the necessary data to continue the creation of the data modeling.
- dotLRN Automatic and openACS Automatic
- In this modality the installer its in charge of all the work, when finishing creating the data model the following step would be to reinitiate the service and continue with the use of the platform.
- Source Code:
- The installer will put in the installation folder the source code of the same one.
Select what you want to install and click next. After the installer places all the files, a browser window will be opened and the installation have to be continued from here, if the automatic mode has been selected wait to the installation finishes. When the installation finishes restart the server and type in a web browser "http://localhost"
- OpenACS on the web: access to http://localhost/
- Start Server: Bach file to initiate the server (aolserver, postgresql, cygwim)
- Stop Server: Bach file to stop the server (aolserver, postgresql, cygwin)
- Unistall OpenACS: Uninstall all
- Check if CygWin: Please execute the file server/cygwin/cygwin.bat. You should get a black screen with some green text saying: "yourusername@yourcomputer" and the "$".
- Check PostgreSQL: in the cygwin window typy psql -l , You should get the names of all data base.
- Check AOLServer: ps -alW | grep nsd , You should get some thing like this
- 2312 0 0 2312 ? 0 07:52:20 C:\OpenACS\nsd4\bin\nsd.exe
developed at the Galileo University (www.galileo.edu) by Byron Haroldo Linares Roman email@example.com as part of the E-LANE project (www.e-lane.org)
related forum threads
OpenACS/dotLRN installer for MSWindows
Created by Maurizio Martignano, last modified by Maurizio Martignano 01 Oct 2016, at 10:59 AM
Windows-OpenACS (vers. 3.1.8 - Ocotber 2016) is a Windows 64 port of OpenACS 5.9.0 and the latest snapshot of NaviServer and is available here.
This port installs and runs on the following systems:
- Windows 8.1,
- Windows 10,
- Windows Server 2012 R2, and
- Windows Server 2016 TP.
Created by Gustaf Neumann, last modified by Gustaf Neumann 20 Sep 2016, at 02:06 PM
The probably easiest way to upgrade between PostgreSQL versions is as follows (described here from 9.4 to 9.5, based on the directory structure as provided by Mac Ports)
# Dump all databases from pg 9.4
sudo -u postgres $PGBIN/pg_dumpall | gzip -9 > ~/pg-dump-all-$DATE.gz
Then stop pg 9.4, start pg 9.5, then reload the dump:
# Restore all databases and roles from dump into pg 9.5
gunzip < ~/pg-dump-all-$DATE.gz | $PGBIN/psql -U postgres
voilà, start OpenACS, and everything works fine.
In case there is a problem with restoring the dump in PostgreSQL 9.5 due to the "=>" operator of hstore, one has to update the version of hstore at least to 1.1 before dump/restore (the current version of hstore is 1.4; for details see hstore-upgrade ).
In case, you want to upgrade your legacy OpenACS installation from PostgreSQL 8.* to 9, read upgrade-oacs-5-8.
Created by Gustaf Neumann, last modified by Gustaf Neumann 10 Sep 2016, at 10:27 AM
OpenACS (5.8) works with PostgreSQL 9.1 or newer out of the box, no special configurations in postgresql.conf are needed like with previous versions.
To work with PostgreSQL 9, one has to use an actual postgres driver:
OpenACS core + commonly used packages (search, forums, xowiki, ...) have been tested with PostgreSQL 9.2.4
For new installs, OpenACS 5.8 works without further considerations. When upgrading the database to PostgreSQL 9.*, one has to keep in mind, that not only the sql-install scripts have to be SQL 9.* compatible, but as well the update scripts (migration scripts). During the work for making OpenACS compatible with PostgreSQL 9.*, we did not update (all) of the migration scripts (e.g. kernel upgrades) of earlier versions, therefore one should run the upgrade scripts to OpenACS 5.7 with an PostgresSQL 8.* database.
Therefore, the following upgrade steps are recommended for upgrading from OpenACS 5.5 to 5.7 to OpenACS 5.8:
- For users of PostgreSQL versions earlier than 8.4: In case you run a version of OpenACS earlier than 5.5 then upgrade first your code to OpenACS 5.5 (oacs-5-5 branch from the CVS Repository), then dump your database and reload it into pg 8.4 (e.g. into pg 8.4.17, which is the oldest still supported version from postgres, end-of-life July 2014). Then continue with the next step below.
- For users of PostgreSQL version 8.4 (or newer before 9): Make sure, you are running Tcl 8.5, then get OpenACS 5.8.0 (or newer) and upgrade OpenACS and your used packages (e.g. via acs-admin/apm + "install packages"). Then dump the database and restore it in pg 9.*.
Created by Rocael Hernández Rizzardini, last modified by Gustaf Neumann 08 Jul 2016, at 02:25 PM
PostgreSQL 8.x (e.g. 8.1.* and later up to 9.1) require a few changes in the configuration file for backward compatibility (see below).
Note that OpenACS 5.8 or newer works with PostgreSQL 9.1 (or newer) out of the box, the special configurations for postgresql.conf described below are not needed anymore.
1. Configure postgres8 with all compatibility ON in postgresql.conf:
add_missing_from = on
regex_flavor = extended
default_with_oids = on
2. If you are upgrading an OpenACS site between versions 4.5.2 to 5.2 and not continuing to 5.3, then: After the createdb step to create the OpenACS database, generate the next function before you import the pre-existing OpenACS database.
From your shell prompt enter:
From the psql prompt enter the follow plpgsql code to create the bitfromint4 function:
create or replace function bitfromint4 (integer)
returns bit varying as '
end;' language 'plpgsql' immutable strict;
This is the original thread
For a full script on how to install PG 8.2 with ltree and tsearch2 look at Malte's install script
Created by OpenACS community, last modified by Gustaf Neumann 07 Jul 2016, at 02:34 PM
Documentation Requirements for Developer Tutorials
By the OpenACS Community. This section is a collection of documentation requirements that have been expressed in the OpenACS forums to 4th July 2003.
OpenACS developer tutorial documentation should meet the following requirements. No significance has been given to the order presented, topic breadth or depth here.
list learning prerequisites to customize, fix, and improve OACS modules, and create new ones. You are expected to have read and understand the information [minimum requirements similar to adept at Using OpenACS Administrating Guide] before reading this guide.
Refer to development documentation instead of duplicating here
List suggestions for installing and setting up a development environment; these can be annotated links to the installation documentation
Provide working examples that highlight the various subsystems, tcl environment, OpenACS protocols, aolserver template and ns_* commands, OpenACS templating, sql queries, db triggers, scheduling protocols, how to use the page contract, how to get the accessing user_id etc
Show how to construct basic SQL queries using the db API,
The life of an http request to a dynamic, templated page
General rules to follow for stability, scalability
Show the step by step customizing of an existing package that meets current recommended coding styles of OpenACS package development, by referring to developer resources.
Use the ArsDigita problem sets and "what Lars produced for ACS Java" as inspiration for a PostgreSQL equivalent tutorial about developing a new OpenACS package including discussion of the significance of the package documentation templates
Include a summary of important links used by developers
Note any deprecated tools and methods by linking to prior versions instead of describing them in current docs
Created by roc@, last modified by Gustaf Neumann 17 Jun 2016, at 11:52 AM
This are instructions to obtain OpenACS, either as a released distribution (a .tar.gz file) or from CVS.
Obtain a released version of OpenACS via .tar file:
Download from OpenACS.org: http://openacs.org/projects/openacs/download/
Unpack the OpenACS tarball. Usually something like this works:
tar zxvf openacs-5.9.0.tgz
Obtain OpenACS from CVS (a certain release with potential patches, or the HEAD version):
If you want to track fresh code developments between releases, or you are an OpenACS core developer, you may want to install from CVS. This is identical to downloading a distribution, except that you get the files from CVS instead of the tarball. The following commands are used to obtain the newest version of the OpenACS 5.9 branch from CVS:
cvs -d:pserver:firstname.lastname@example.org:/cvsroot login
# press enter for password
cvs -d:pserver:email@example.com:/cvsroot checkout -r oacs-5-9 acs-core
The command above checks out the core packages of OpenACS in a directory named openacs-4. For the entire OpenACS version 5.9 branch you can use the following commands (adjust as required going forward):
cvs -d:pserver:firstname.lastname@example.org:/cvsroot checkout -r oacs-5-9 openacs-4
If the the branch name (like oacs-5-9) is omitted, the the leading edge developer version (the HEAD release) is obtained
cvs -d:pserver:email@example.com:/cvsroot checkout openacs-4
In order to check out a single package (e.g. the package cronjob) from e.g. the leading edge developer version (HEAD), use
cvs -d:pserver:firstname.lastname@example.org:/cvsroot checkout openacs-4/packages/cronjob
For most OpenACS packages, CVS aliases are defined. In order to checkout e.g. the forums package from OpenACS 5.5, just use:
cvs -d:pserver:email@example.com:/cvsroot checkout -r oacs-5-9 forums
More info here: http://www.openacs.org/test-doc/using-cvs-with-openacs
Looking for README instructions or installers? View the OpenACS Installation instructions: en:openacs-system-install, otherwise continue by setting up the OpenACS distribution:
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 (SERVERROOT) per site (see: en:openacs-reference-platform). The first time you install an OpenACS site on a server, you must create the parent directory and set its permissions:
While logged in as root:
mkdir -p /var/lib/aolserver
chgrp web /var/lib/aolserver
chmod 770 /var/lib/aolserver
Move the uncompressed code to SERVERROOT and rename the directory to $OPENACS_SERVICE_NAME:
mv openacs-4 /var/lib/aolserver/$OPENACS_SERVICE_NAME