Table of Contents

Request Tracker Tips

Scripts

Optimization

#!/usr/bin/perl

 use lib qw(/usr/share/request-tracker3.6/lib);                                                                                                                  
 use RT;                                                                                                                                    
 RT::LoadConfig();                                                                                                                          
 RT::Init();                                                                                                                                
 $RT::Handle->SimpleQuery("delete from sessions where LastUpdated < (now() - interval 24 hour)");

Howto

Request tracker 3.8.2 (Ubuntu-LTS) + NGINX + PostgreSQL

wget http://download.bestpractical.com/pub/rt/release/rt-3.8.2.tar.gz
tar -xvzf rt-3.8.2.tar.gz
make testdeps
make fixdeps
apt-get install mysql-client
apt-get install libdbd-pg-perl libclass-dbi-pg-perl
make testdeps
make install

Upgrading PostgreSQL database

## make upgrade
 /opt/rt3/sbin/rt-setup-database --dba rtuser --prompt-for-dba-password --action upgrade

NGINX setup

Useful links:

FCGI/init script

f /etc/init.d/rt.fcgi

#!/bin/sh

RTPATH=/opt/rt3
RTUSER=www-data
#FCGI_SOCKET_PATH=$RTPATH/var/fastcgi
FCGI_SOCKET_PATH=/tmp/rt.fcgi

case $1 in
    start)
        echo -n "Starting RT: mason_handler.fcgi"
        cd $RTPATH
        export FCGI_SOCKET_PATH
        su $RTUSER -c "$RTPATH/bin/mason_handler.fcgi" &
        echo
        ;;

    stop)
        echo -n "Stopping RT: "
        PIDS=`ps axww | awk '/[m]ason_handler.fcgi/ { print $1}'`
        if [ -n "$PIDS" ]
        then
            echo -n kill -TERM $PIDS
            kill $PIDS
            echo
        else
            echo RT not running
        fi
        ;;

    restart|force-reload)
        $0 stop
        $0 start
        ;;

    *)
        echo "Usage: /etc/init.d/rt { stop | start | restart }"
        exit 1
        ;;
esac

nginx request-tracker vhost config

f /etc/nginx/sites-enable/rt

server {
        listen   80;
        server_name  rt.xxxx.si;
        access_log  /var/log/nginx/rt.xxxx.si-access.log;

        location  / {
                fastcgi_pass  unix:/tmp/rt.fcgi;
                #fastcgi_x_powered_by off; # default on
                fastcgi_param   DOCUMENT_ROOT   /opt/rt3/share/html;
                fastcgi_param   SCRIPT_FILENAME /opt/rt3/share/html$fastcgi_script_name;
                fastcgi_param   PATH_TRANSLATED /opt/rt3/share/html$fastcgi_script_name;
                fastcgi_param   SCRIPT_NAME  $fastcgi_script_name;
                fastcgi_param   QUERY_STRING    $query_string;
                fastcgi_param   CONTENT_TYPE    $content_type;
                fastcgi_param   CONTENT_LENGTH  $content_length;
                fastcgi_param   REDIRECT_STATUS 200;
                fastcgi_param   SERVER_ADDR     $server_addr;
                fastcgi_param   SERVER_PORT     $server_port;
                fastcgi_param   SERVER_PROTOCOL $server_protocol;
                fastcgi_param   SERVER_SOFTWARE "nginx/0.3.15";
                fastcgi_param   GATEWAY_INTERFACE       "CGI/1.1";
                fastcgi_param   SERVER_NAME     $server_name;
                fastcgi_param   SERVER_NAME     $server_name;
                fastcgi_param   REQUEST_URI     $request_uri;
                fastcgi_param   REQUEST_METHOD  $request_method;
                fastcgi_param   REMOTE_USER     $remote_user;
                fastcgi_param   REMOTE_ADDR     $remote_addr;
                fastcgi_param   REMOTE_PORT     $remote_port;
        }
        location ~* .+\.(html|js|css)$  {
                fastcgi_pass  unix:/tmp/rt.fcgi;
                #fastcgi_x_powered_by off; # default on
                fastcgi_param   DOCUMENT_ROOT   /opt/rt3/share/html;
                fastcgi_param   SCRIPT_FILENAME /opt/rt3/share/html$fastcgi_script_name;
                fastcgi_param   PATH_TRANSLATED /opt/rt3/share/html$fastcgi_script_name;
                fastcgi_param   SCRIPT_NAME  $fastcgi_script_name;
                fastcgi_param   QUERY_STRING    $query_string;
                fastcgi_param   CONTENT_TYPE    $content_type;
                fastcgi_param   CONTENT_LENGTH  $content_length;
                fastcgi_param   REDIRECT_STATUS 200;
                fastcgi_param   SERVER_ADDR     $server_addr;
                fastcgi_param   SERVER_PORT     $server_port;
                fastcgi_param   SERVER_PROTOCOL $server_protocol;
                fastcgi_param   SERVER_SOFTWARE "nginx/0.3.15";
                fastcgi_param   GATEWAY_INTERFACE       "CGI/1.1";
                fastcgi_param   SERVER_NAME     $server_name;
                fastcgi_param   SERVER_NAME     $server_name;
                fastcgi_param   REQUEST_URI     $request_uri;
                fastcgi_param   REQUEST_METHOD  $request_method;
                fastcgi_param   REMOTE_USER     $remote_user;
                fastcgi_param   REMOTE_ADDR     $remote_addr;
                fastcgi_param   REMOTE_PORT     $remote_port;
        }
       
        location /NoAuth/images/ {
                alias /opt/rt3/share/html/NoAuth/images/;
        }
}

adding RTFM

Download RTFM

 tar -xzvf rtfm.tar.gz

Install and patch the database

 cd RTFM-2.4.0 
 perl Makefile.PL 
 make install 
 make initdb

add follwing line to /opt/rt3/etc/RT_SiteConfig.pm

 Set(@Plugins,qw(RT::FM));

Changing user pref "Illegal value for EmailAddress"

If you try to change your email and RT returns you an error Illegal value for EmailAddress means that this email address is already in the database. Workaround:

as root Configuration → Users → Find people whose Email is '<email>' and also checkbox Include disabled users in search. Edit user by this email and remove RT permissions and email. Now you can change your original account.

Installing RT 3.8.1 / Debian

good article on this topic on http://rtvm.tehcorner.com/rt38/