[rt-users] [fwd] Multiple instances of rt2 under one apache server.
Adam R Prato
arp-rt2 at metachar.net
Wed Oct 10 18:27:49 EDT 2001
Hi there.
I've recently set up RT2. I've been through the docs, and the faq,
which so far is a bit sparse, but the mailing lists make up for that.
I work for the IT group for a bank. We have different groups within the bank
that deals with "requests". Lets say for example: IT systems, IT development,
Facilities, and Operations. Each group will have their own administrative
users, and each will have their own group of queues for assigning new tasks.
To accomodate this, I've layed out the configuration as follows
- unpack the RT software to /TOP/src
- from /TOP/src, install the software for the SITE:
make install RT_PATH=/TOP/SITE DB_DATABASE=rt2_SITE
(where SITE is systems, development, facilities, operations, etc)
What I now need to do is to be able to get apache's configuration to support
each of these sites. I tried two methods:
- set up a virtualhost for request.domain.com. DocumentRoot for the vhost is
/TOP. Set up <Location> containers for each SITE under /TOP. Within the
location containers, I've added the perl handlers and external
authentication.
[ SNIP ]
<VirtualHost X.X.X.15>
DocumentRoot /TOP
ServerName request.ccmc.commerzbank.com
<Directory />
Order deny,allow
Deny from all
Allow from X.X.*,Y.Y.*,Z.Z.*
</Directory>
</VirtualHost>
<VirtualHost X.X.X.15>
DocumentRoot /TOP
ServerName request.domain.com
<Directory />
Order deny,allow
Deny from all
Allow from 190.20.*,10.196.*,10.197.*
</Directory>
<Location /demo>
PerlModule Apache::DBI
PerlFreshRestart On
SetHandler perl-script
PerlHandler RT::Mason
PerlRequire /TOP/demo/bin/webmux.pl
AuthName "Request System Authentication"
AuthType Basic
PerlSetVar myPDC PDC
PerlSetVar myBDC BDC
PerlSetVar myDOMAIN DOMAIN
PerlAuthenHandler Apache::AuthenSmb
require valid-user
</Location>
<Location /systems>
PerlModule Apache::DBI
PerlFreshRestart On
SetHandler perl-script
PerlHandler RT::Mason
PerlRequire /TOP/systems/bin/webmux.pl
AuthName "Request System Authentication"
AuthType Basic
PerlSetVar myPDC PDC
PerlSetVar myBDC BDC
PerlSetVar myDOMAIN DOMAIN
PerlAuthenHandler Apache::AuthenSmb
require valid-user
</Location>
[SNIP]
</VirtualHost>
[SNIP]
Using this configuration (plus mods to each config.pm to handle the MasonRoot
and WebExternalAuth along with the other site specific configs), I'm able to
point to the url http://request.domain.com/demo/WebRT/html/index.html to get
to the demo request system. Unfortunately, I cannot get to system, facilities
or development. When I start apache I get the following output:
Subroutine SetContentType redefined at /TOP/facilities/bin/webmux.pl line 88.
Subroutine CGIObject redefined at /TOP/facilities/bin/webmux.pl line 93.
Subroutine handler redefined at /TOP/facilities/bin/webmux.pl line 122.
Subroutine SetContentType redefined at /TOP/operations/bin/webmux.pl line 88.
Subroutine CGIObject redefined at /TOP/operations/bin/webmux.pl line 93.
Subroutine handler redefined at /TOP/operations/bin/webmux.pl line 122.
Subroutine SetContentType redefined at /TOP/systems/bin/webmux.pl line 88.
Subroutine CGIObject redefined at /TOP/systems/bin/webmux.pl line 93.
Subroutine handler redefined at /TOP/systems/bin/webmux.pl line 122.
Also, when I try to get to any of the other sites, I get this error in the
apache error log:
[Wed Oct 10 16:06:42 2001] [warn] [Mason] Cannot resolve file to component: /TOP/operations/WebRT/html/index.html (is file outside component root?)
My assumption, based on the fact that each "require webmux.pl" generates a
"redefined" error, is that the first (demo) rt2 instance is the only instance
that is used. This would also explain why the html for the other site is
considered "outside the component root".
I've also tried using separate virtualhosts for each instance, but no dice. I
get the same errors about webmux.pl. Thus I suspect its soemthing that perl is
doing thats keeping this from happening.
Note that the /TOP contains some html that allows people to select which
instance they want. I dont have this as the document root because I need to
allow non-users (guest users) to select the url that will allow them to
request a new task, and not all requesters are users. Thus the authentication
is done on the <Location> which is under the document root.
Is there an issue preventing me from running multiple RT instances under the
same apache configuration? Am I just doing something very wrong?
Any ideas would be greatly appreciated.
Adam
p.s. this is rt2.0.8, perl 5.6.0, apache 1.3.20, mod_perl 1.26, and all the
perl modules listed in "make testdeps" for rt2.0.8
More information about the rt-users
mailing list