Fisheye: Tag 1.2 refers to a dead (removed) revision in file `mod_nsd/README.html'. Fisheye: No comparison available. Pass `N' to diff? Index: mod_nsd/README.old.html =================================================================== RCS file: /usr/local/cvsroot/mod_nsd/README.old.html,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ mod_nsd/README.old.html 6 Jun 2001 06:26:22 -0000 1.1 @@ -0,0 +1,451 @@ + +
+We developed mod_aolserver as a dynamic shared object, so you must +compile/install Apache with mod_so built in. You can determine +whether your Apache has this module by running this command: + +
+ +If the output is a line that sayshttpd -l | grep mod_so
mod_so.c
, then your
+Apache has the required module.
+
+We test with Apache 1.3.12 so you should try to use that or a later +version. + +
AOLserver uses Tcl 8.3, so that's what I use to build mod_aolserver.
+It will probably work with Tcl 8.1 or later, but ACS might (now or in
+the future) use 8.2 or 8.3 features. Whichever version you use, make
+sure you build this with --enable-shared
.
+
+
Warning: Red Hat Linux, through version 6.2 at least, only includes +Tcl 8.0, so if you're on a Red Hat system, you must install a later +version. You do not need to uninstall the Tcl RPM, though; you can +install Tcl 8.3 somewhere else for mod_aolserver's use. + +
AOLserver provides various APIs for threads to share data and +synchronize their operations. Although Apache is not threaded, we +emulate some of those APIs. The mechanism we use to share data between +processes is Ralf Engelschall's MM. + +
We tested with MM version 1.1.1. + +
Note: if you are using Linux, MM will by default use System V style +SHM shared memory. This work fine. Do not try to force it to use +MAP_ANON shared memory. I had strange problems when I did that. + +
The ArsDigita Community +System is built on top of Oracle 8i. mod_aolserver includes a +version of ArsDigita's Oracle driver. If you want to run the ACS +on mod_aolserver, you'll need Oracle 8i installed before compiling +mod_aolserver. + +
As of release 1.1, mod_aolserver uses ArsDigita's AOLserver Oracle +driver release 2.3. + +
An intrepid group of programmers are porting the ACS to PostgreSQL; +they call the project "OpenACS". You can download that version from +their development site. +mod_aolserver includes a version of the PostgreSQL database driver. +If you want to run OpenACS on mod_aolserver, you'll need PostgreSQL +installed before compiling mod_aolserver. + +
./configure --help
to see your options. The important
+ones are these:
+
++
--with-database=dbname
+ (Required.)
+ You must include this flag when running configure.
+ dbname must be either ora8
or
+ postgres
. (mod_aolserver currently compiles in exactly
+ one database driver and does not support dynamically-loaded
+ drivers.)
+
+
+
--with-ora8=dir
+ (Optional.) + Normally you set $ORACLE_HOME to your Oracle installation directory. + If for some reason you want to specify it on the configure command + line instead, use this flag. + +
+
--with-postgres=dir
+ (Optional.)
+ If the PostgreSQL headers and libraries aren't in locations that the
+ compiler will find automatically, or in /usr/local
,
+ you can use this flag to specify
+ the PostgreSQL installation directory. The headers should be in
+ dir/include
and the libraries in
+ dir/lib
, of course.
+
+
+
--with-apxs=dir
+ (Optional.)
+ Use this flag to specify the full path to the copy of
+ apxs
you want to use to build and install this module,
+ for example /u/mayoff/test/bin/apxs
.
+ By default, configure will use the first copy of apxs
+ in your PATH.
+
+
+
--with-tcl=dir
+ (Optional.)
+ You may include this flag if you've installed Tcl in a non-standard
+ location. Set dir to the directory containing
+ tclConfig.sh
. Normally that would be something like
+ /usr/lib
or /usr/local/lib
.
+
+
+
--with-mm=dir
+ (Optional.)
+ If you did not install MM in /usr, then you should use this flag to
+ specify where you installed it. The MM headers should be in
+ dir/include
and the MM library should be in
+ dir/lib
.
+
+
In my test environment, I have private copies of Tcl, Apache, and MM, +so my typical configure command looks something like this: + +
+ +After running configure, you should just be able to run +./configure \ + --with-database=ora8 \ + --with-tcl=/u/mayoff/test/lib \ + --with-apxs=/u/mayoff/test/bin/apxs \ + --with-mm=/u/mayoff/test +
make
. It will compile the module and install it in your
+existing Apache installation using apxs.
+
+aolserver
- This handler is for .tcl
+ files.
+ +
adp
- This handler is for .adp
files.
+ns_register_proc
to handle all requests for
+.tcl
and .adp
files anyway.
+
+mod_aolserver needs an AOLserver configuration file, in either
+.tcl
or .ini
format. You must specify the
+location of the file using the AolServerConf config_file
+directive in your httpd.conf
:
+
+
+ +Either of these files can contain anAolServerConf config_file /u/mayoff/test/nsd.tcl + or +AolServerConf config_file /u/mayoff/test/nsd.ini
AuxConfigDir
+parameter, which mod_aolserver will process just like AOLserver would.
+You'll need that parameter if you want to run ACS.
+
+Here's an
+httpd.conf
excerpt to get you started. Assume that I have
+installed Apache in /u/mayoff/test
and the ACS in
+/u/mayoff/test/acs
.
+
+
+ +This should cause mod_aolserver stuff to run only in the virtual server +containing the AolServerConf directive (or the main server only if you +put it outside a virtual server section). You're probably better off +running this in the main server of a test Apache installation right +now, rather than running it in a virtual server of your production +installation. + +# This is added automatically by apxs when you `make' or `make install': +LoadModule aolserver_module libexec/mod_aolserver.so + +AolServerConf config_file /u/mayoff/test/nsd.ini + +# The following setting is returned by [ns_info log] +AolServerConf log_file_location /u/mayoff/test/logs/error_log + +# Note: Make sure that PageRoot in your nsd.ini is set +# to the same thing as this DocumentRoot. +DocumentRoot "/u/mayoff/test/acs/www" + +<Directory "/u/mayoff/test/acs/www"> + Options Indexes FollowSymLinks MultiViews ExecCGI + DirectoryIndex index.tcl index.adp index.shtml index.html index.htm + AddHandler adp adp + AddHandler aolserver tcl +</Directory>
Configuring mod_aolserver is pretty straightforward. The module
+will load whatever configuration file you specified with the
+AolServerConf config_file
directive in your Apache
+configuration. The config file can be in either .ini or .tcl format.
+Many AOLserver configuration directives have no effect under
+mod_aolserver, but they will not be detrimental either.
+
+
A sample configuration file can be found in the mod_aolserver
+distribution as tcl_modules/nsd.ini.sample
. You should be
+able to use that config file, with some site-specific modifications, to
+run ACS on Apache.
+
+
Be sure to disable the watchdog in your ACS +configuration (by setting WatchDogFrequency to 0) or you'll get +a lot of mail. The Apache error log is formatted differently than the +AOLserver error log, so the watchdog parser doesn't work. + +
Also, if you're using the Oracle database driver, you may +encounter problems if you leave the datasource empty. On my test +system running Red Hat Linux 6.2 and Oracle 8.1.6, I found that Apache +would either hang or dump core during startup. It turns out to be a +problem with the "Bequeath Protocol", which is the way that the driver +talks to Oracle if you leave the DataSource blank. + +
The workaround for using Oracle is to set the
+DataSource in your database pools to a TCP or IPC connection.
+This means you need to know a little bit about configuring Net*8
+if you haven't done so before. The configuration assistant,
+netasst
, is pretty good in Oracle 8.1.6, so you shouldn't
+have too much difficulty. If you run into trouble, you can try asking
+for help at the
+ACS on Apache web site or Web Tools
+Review.
+
+
+Here are the known limitations, bugs, and to-do tasks. + +
ACS only registers and schedules procedures as server + initialization time, so this should not cause problems. + +
Procedures that are scheduled to run once, after 120 seconds or + less, are considered initialization procedures and are run in the + Apache parent after all other mod_aolserver initialization but + before the children are forked. Such procedures are used because in + AOLserver you don't have access to database handles during + initialization but you do have access to them from scheduled + procedures. + +
The bulkmail module will probably not work, because + it uses ns_thread. + +
Note that if you call ns_scheduled_proc -thread
,
+ mod_aolserver will fork a separate process to run
+ the proc, instead of running the proc in the scheduler process.
+
+
ns_url2file
drops PATH_INFO. This doesn't appear to affect
+ ACS.
+
+ [ns_server active]
always returns "". Other commands are not
+ supported.
+
+ ns_atclose
doesn't work for scheduled procs.
+
+ ns_configsections
is not supported. The sets
+ returned by [ns_set get [ns_configsection ns/foo] bar]
will not be
+ the set returned by [ns_configsection ns/foo/bar]
.
+
+ [ns_set split]
is not supported. [ns_set
+ -persist]
is only supported during initialization.
+
+ ns_geturl
just invokes ns_httpget. ACS only
+ uses this in one place. We should fix ACS to just use ns_httpget.
+
+ + Solution: Redo ns_sets so that the ns_set structure itself is not in the OWN_POOL, + if we have one; then we can clear the pool containing the real_table + without flushing and potentially invalidating the ns_set structure + itself. (Right now, we make the correct but dicey assumption that --- + *without* ALLOC_USE_MALLOC --- we will reallocate the ns_set structure + right on top of its original location, so that pointers to it will + remain valid). + +
(25)Inappropriate ioctl for device:
- I keep seeing
+ this message in my error log (on Linux). Harmless but annoying.
+
+ $Header: /usr/local/cvsroot/mod_nsd/README.old.html,v 1.1 2001/06/06 06:26:22 petrup Exp $
+ mod_aolserver@arsdigita.com
+
+
+
Fisheye: Tag 1.2 refers to a dead (removed) revision in file `mod_nsd/TODO'.
Fisheye: No comparison available. Pass `N' to diff?