|< Day Day Up >|
Now that you have RT configured, it is time to configure your webserver. In the previous stage you set $WebBaseURL and $WebPath to where in "URLspace" you plan to have RT installed. Now we'll tell Apache about those values. (If you are not using Apache, you will need to extrapolate from the FastCGI section below.)
2.3.5. Apache and mod_perl
A common configuration for RT is to place it on its own VirtualHost, such as on rt.example.com for the example.com organization.
Use the following configuration in your httpd.conf:
<VirtualHost *> ServerName rt.example.com DocumentRoot /opt/rt3/share/html AddDefaultCharset UTF-8 PerlModule Apache::DBI PerlRequire /opt/rt3/bin/webmux.pl <Location /> SetHandler perl-script PerlHandler RT::Mason </Location> </VirtualHost>
You will need NameVirtualHost * earlier in your httpd.conf unless you are using IP-based virtual hosting. (In that case, specify an IP address in place of the *.)
That configuration corresponds to the following lines in RT_SiteConfig.pm.
Set($WebBaseURL, "http://rt.example.com"); Set($WebPath, "/");
Using a separate virtual host isn't required. You can place RT at any location on your webserver. The following example places it at /rt3/:
Alias /rt3 /opt/rt3/share/html <Location /rt3> AddDefaultCharset UTF-8 SetHandler perl-script PerlHandler RT::Mason PerlModule Apache::DBI PerlRequire /opt/rt3/bin/webmux.pl </Location>
If your webserver is www.example.com, these would be the RT_SiteConfig.pm entries:
Set($WebBaseURL, "http://www.example.com"); Set($WebPath, "/rt3");
126.96.36.199. mod_perl 1.x v. mod_perl 2.x
In choosing between mod_perl 1.x and 2.x, there are no hard and fast rules. mod_perl 1.x is several years old and is known to be very stable. mod_perl 2.x is cleaner, faster, and sits on top of the more powerful Apache 2 core.
An alternative to mod_perl is FastCGI. FastCGI is a protocol designed to allow a web server to run CGI scripts via a separate, persistent program. FastCGI defines how a web server interacts with this separate program in much the same way that the CGI spec defines how a web server and regular spawned programs interact. There are FastCGI implementations for many web servers including Apache 1.3.x and Apache 2.x that should work just fine with RT.
There are several cases where you might want to use FastCGI instead of mod_perl:
The official FastCGI homepage is at http://www.fastcgi.com/, and it provides a lot of good information about running and developing FastCGI applications, as well as download information.
Configuring FastCGI under Apache, you'll need this chunk of configuration in your httpd.conf:
Under Apache, as a separate virtual host, the configuration looks like this:
<VirtualHost *> ServerName rt.example.com FastCgiServer /opt/rt3/bin/mason_handler.fcgi AddHandler fastcgi-script fcgi Alias /NoAuth/images/ /opt/rt3/html/NoAuth/images/ ScriptAlias / /opt/rt3/bin/mason_handler.fcgi/ </VirtualHost>
If your RT will live at /rt3/, the configuration would look like this:
FastCgiServer /opt/rt3/bin/mason_handler.fcgi AddHandler fastcgi-script fcgi Alias /rt3/NoAuth/images/ /opt/rt3/html/NoAuth/images/ ScriptAlias /rt3 /opt/rt3/bin/mason_handler.fcgi/
By default, FastCGI will start only one process at a time. If your RT instance experiences high concurrent use, you will want to tell FastCGI to start more processes by using the -processes option to FastCgiServer.
FastCgiServer /opt/rt3/bin/mason_handler.fcgi -processes 10
|< Day Day Up >|