Request Tracker

Request Tracker (RT) is a battle-tested issue tracking system which thousands of organizations use for bug tracking, help desk ticketing, customer service, workflow processes, change management, network operations, youth counselling and even more. Organizations around the world have been running smoothly thanks to RT for over 10 years.

About This Guide
This guide was written using the latest version of RT available, which at the time of this writing is 4.2.9.

This guide assumes that you are familiar enough with Apache or Lighttpd and will not delve into the details of either.

Whether or not you use virtual hosting holds no bearing on the bulk of this guide. It will be noted if there's something significantly different that must be done in a virtual hosting environment.

Requirements
RT requires a database backend and works equally well with either MySQL or PostgreSQL. You must enable at most one of their USE flags:

RT also requires a Web server. The default is to run on Apache, but you can use lighttpd. To use lighttpd, you must enable its USE flag:

Emerge
Many of the packages RT depends on, including RT's own package, are keyword masked. Use the following command to have a patch automatically generated for you.

Once the previous command has finished, use  to apply the patch:

Run emerge again:

If you have the  USE flag enabled, you'll need to run   to finish the installation:

Database
RT provides a script called  which creates the initial database and a database user for you.

Configuring RT
RT uses an overlay system for configuration. This means that the default configuration is declared in, and that custom configurations are declared in. will not exist until you create it. Any custom configuration in will be preserved in upgrades, while the default configurations,, will be overwritten.

You can copy just certain sections from to, or you can create a full copy.

The configuration file is well documented, but you may want to consult the official documentation.

Apache
Only information pertinent to RT will be covered. Additional information about Apache is covered elsewhere.

There's little information about which method works better for RT on Apache, and benchmarks have shown mod_perl and FastCGI to be nearly equal.

mod_perl
Save the following snippet within the individual  tags you installed RT to or.

 SetHandler modperl PerlResponseHandler Plack::Handler::Apache2 # Correct this path PerlSetVar psgi_app /var/www/localhost/rt-4.2.9/sbin/rt-server 
 * 1) Replace /rt with the proper URL path after the domain name

 use Plack::Handler::Apache2; # Correct this one, too Plack::Handler::Apache2->preload("/var/www/localhost/rt-4.2.9/sbin/rt-server"); 

In case you haven't done so already, instruct Apache to start with mod_perl enabled.

You may need to change the owner and group of RT's Mason data directory.

mod_fastcgi
NOTE: If you wish to use, you need to instruct   to install   with appropriate permissions. Edit :

VHOST_DEFAULT_UID="rt" VHOST_DEFAULT_GID="rt"

RT comes with a Gentoo-specific Apache configuration file. It can be found in

Copy it to the Apache vhosts directory and edit to set  and [=ServerAdmin]:

cp /var/www/myrt/rt-3.6.1/etc/rt_apache2_fcgi.conf /etc/apache2/vhosts.d/ vim /etc/apache2/vhosts.d/rt_apache2_fcgi.conf

Edit  to instruct   to start with   and enabled.

APACHE2_OPTS="-D FASTCGI"

If this is your first time installing apache, you will want it to start on bootup.

rc-update add apache2 default

Restart apache so that all changes made so far will take effect.

/etc/init.d/apache2 restart

lighttpd (untested)
You can run RT on  +. The ebuild will install an initscript  and a config file.

NOTE: If you wish to use, you need to instruct   to install   with appropriate permissions. Edit :

VHOST_DEFAULT_UID="rt" VHOST_DEFAULT_GID="rt"

You will need to edit  to set RTPATH to the root of your installation. You shouldn't need to edit anything else in that file.

Also note that, under the default configuration, the socket in  is owned by rt:lighttpd, and is chmod-ded to g+rwx. This means that user  needs to be in the   group. One way to do that is to use. If you don't like that, edit  to suit your needs.

You will also need to edit  to enable.


 * Uncomment  under
 * set
 * set  to something like this:

fastcgi.server = ( "/rt" =&gt; ( "rt" =&gt; ( "socket" =&gt; "/var/www/localhost/rt-3.6.1/var/appSocket", "check-local" =&gt; "disable" ) ) )

Be sure to set the correct path to socket (same as  in  ).

Now, start  and  :

/etc/init.d/rt start /etc/init.d/lighttpd start

If things don't seem to be working, check the  logs in   and edit   as per the comments in the file to make the   daemon more verbose.

Note: you should be able to use this initscript with any -enabled webserver. Please send me an email if you get  to work with any other webserver.

Log In
Use your browser to log into RT. Username is, and password is. Change your password.

Special Thanks
Thank you to all those who worked on the original version of this guide.