HowToInstallRequestTracker3.8OnUbuntu11.04

From Request Tracker Wiki
Jump to navigation Jump to search


Unofficial Installation Guide

This is an unofficial installation guide. It may be outdated or apply only to very specific configurations and versions. The official and maintained installation steps for RT are in the README and UPGRADING documents included in the official .tar.gz packages.

Outdated

This page contains out of date and possibly misleading information or instructions such as installation methods or configuration examples that no longer apply. Please consider this warning when reading the page below.


TOC

HowTo Install RT 3.8 with MySQL on Ubuntu 11.04 Server

DRAFT; IN-PROCESS REVISION OF HowTo Install Request-Tracker 3.8 on ubuntu 9.10 and MySQL

This How-To will explain how to install request-tracker on a clean Ubuntu Server 11.04 64-bit install. It is tested on Ubuntu 11.04 with LOCAL and REMOTE MySQL databases. These tests were done using FULLY VIRTUALIZED servers running under VirtualBox4.1.0

It also installs the additional services required for Request-Tracker:

  • MySql - Database to Store the RT information.
  • Postfix - Email Server (for sending emails)
  • Apache2 - Web Server
  • Configuration for using a MySQL database on another local server.

Ubuntu Server

Install Ubuntu Server

Boot from ISO or DVD.

Accept all defaults plus...

Software Selection:

OpenSSH server

LAMP server

Mail server

Assign password for MySQL "root" user.

Repeat password

Accept remaining defaults and reboot

Update and Upgrade

Logon via SSH to make cut-and-paste easier

Make sure you have the latest software

:sudo apt-get update

:sudo apt-get upgrade

MySQL

Install MySql with PERL interface

MySQL Server should already be installed if you selected LAMP server above. If not...

sudo apt-get install mysql-server

sudo apt-get install libdbd-mysql-perl

Install MySQL libraries for RT 3.8

sudo apt-get install rt3.8-db-mysql

Apache

Install PERL libraries for Apache

sudo apt-get install libapache-dbi-perl

Install RT 3.8 libraries for Apache

sudo apt-get install rt3.8-apache2

Mail Server

Install Postfix mail server (SMTP Server)

sudo apt-get install postfix

Choose "Internet Site" in the install dialogue.

Accept or correct the name of the mail server

: e.g. rt.server.yourdomain.com

Request Tracker 3.8 Itself

Install RT server and client

sudo apt-get install request-tracker3.8 rt3.8-clients

NOTE: RT default install DIR is /usr/share/request-tracker3.8/

Name Your RT instance

This is something you won't ever want to change. It will appear in the subject of EVERY piece of mail RT sends out, and most of the mail your users will send in as well. It will be shown on every RT screen in the title "RT for {rt_name}". Pick carefully!

Enter something like mydomain.com or rt.mydomain

Baseline Configuration of Your RT Instance

Answer "Yes" to "Handle RT_SiteConfig.pm permissions?"

Answer “No” to "Configure database for request-tracker3.8 with dbconfig-common?"

Additional Configuration of Your RT Instance

NOTE: Many of the install guides specify direct modification of RT_SiteConfig.pm. This is no longer the correct method for configuration updates! Instead you should use the following method for all RT configuration updates:

Go to the RT_SiteConfig.d directory

:cd /etc/request-tracker3.8/RT_SiteConfig.d

Modify one or more of the configuration files in that directory, e.g.:

:sudo vim 40-timezone or sudo nano 40-timezone

:sudo vim 50-debconf

:sudo vim 51-dbconfig-common

:sudo vim 90-local Put your own special configuration elements in this file.

Backup the RT_SiteConfig.pm file

:cd ..

:sudo cp RT_SiteConfig.pm RT_SiteConfig.pm.orig

Re-generate the RT_SiteConfig.pm file

:sudo update-rt-siteconfig-3.8

Check/Modify Basic Configuration

Enter the configuration directory

:cd /etc/request-tracker3.8/RT_SiteConfig.d

Look at the basic configuration file (press "q" to exit)

:sudo less 50-debconf

Modify if needed

:sudo cp 50-debconf 50-debconf.orig

:sudo vim 50-debconf

To eliminate an extra (for me) "/rt" in the URL, I change the WebPath as follows:

FROM: Set($WebPath , "/rt");
TO:   Set($WebPath , "");

So my 50-debconf file looks like this:

# THE BASICS:

Set($rtname, 'dev.mydomain.com');
Set($Organization, 'rt.mydomain.com');

Set($CorrespondAddress , 'rt@rt.mydomain.com');
Set($CommentAddress , 'rt-comment@rt.mydomain.com');

# THE WEBSERVER:

Set($WebPath , "");
Set($WebBaseURL , "http://rt.mydomain.com");

Check/Modify Database Configuration

Enter the configuration directory

:cd /etc/request-tracker3.8/RT_SiteConfig.d

Look at the basic configuration file (press "q" to exit)

:sudo less 51-dbconfig-common

Modify if needed

:sudo cp 51-dbconfig-common 51-dbconfig-common.orig

:sudo vim 51-dbconfig-common

To use MySQL on localhost, my 51-dbconfig-common file looks like this::

# THE DATABASE:
# generated by dbconfig-common
# Updated to use MySQL only

# map from dbconfig-common database types to their names as known by RT
# my %typemap = (
#    mysql   => 'mysql',
#    pgsql   => 'Pg',
#    sqlite3 => 'SQLite',
# );

# Set($DatabaseType, $typemap{} || "UNKNOWN");
Set($DatabaseType, 'mysql');

# Values for a LOCALHOST database:
Set($DatabaseHost, 'localhost');
Set($DatabasePort, '');


# Values for a REMOTE DATABASE SERVER:
# Set($DatabaseHost, 'dbhostname');
# Set($DatabasePort, '3306');

Set($DatabaseUser , 'rtuser');
Set($DatabasePassword , 'rtdbpasswd');

# SQLite needs a special case, since $DatabaseName must be a full pathname
# my $dbc_dbname = ''; if ( "" eq "sqlite3" ) { Set ($DatabaseName, '' . '/' . $dbc_dbname); } else { Set ($DatabaseName, $dbc_dbname); }

my $dbc_dbname = 'rtdb';
Set ($DatabaseName, $dbc_dbname);

Create New RT_SiteConfig.pm File

Backup the RT_SiteConfig.pm file

:cd ..

:sudo cp RT_SiteConfig.pm RT_SiteConfig.pm.orig

Re-generate the RT_SiteConfig.pm file

:sudo update-rt-siteconfig-3.8

Create the Database

Use script to create database (don’t worry about user error message we will fix this later)

: sudo /usr/sbin/rt-setup-database --action init --dba root --prompt-for-dba-password

On your database host, login to MySQL as root

: mysql -uroot -p

Create user properly

: CREATE USER rtuser IDENTIFIED BY 'rtdbpasswd';

Grant access rights to rtuser

* If using a remote database host, replace "localhost" (below) with the name of your RT host.

: GRANT ALL PRIVILEGES ON rtdb.* TO 'rtuser'@'localhost' IDENTIFIED BY 'rtdbpasswd';

: FLUSH PRIVILEGES;

: QUIT

Drop the database

: mysqladmin drop rtdb -p

Back on the RT host, recreate the database using the script (it should work this time)

:sudo /usr/sbin/rt-setup-database --action init --dba root --prompt-for-dba-password

Update Apache Configs (basic)

NOTE: These instructions provide basic connectivity via Apache. They do not cover advanced connectivity elements such as SSL, use of conf.d directory, etc.

Add RT PERL module to Apache

Backup apache configuration file

:sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default.orig

Open the Apache default configuration file for editing

:sudo vim /etc/apache2/sites-available/default

Add the following line to the VirtualHost section of Apache from which you wish to serve RT

: (Paste at the end of the file just before the closing </VirtualHost> tag.)

:Include /etc/request-tracker3.8/apache2-modperl2.conf

:RedirectMatch ^/$ /rt

Add the module

:sudo a2enmod rewrite

Restart Apache

This might work the first time:

:sudo service apache2 restart

If you get an error, there is a PERL module missing. Install it:

:sudo apt-get install libapache-dbi-perl

Try again -- it should work now.

:sudo /etc/init.d/apache2 restart

Start using Request Tracker

Now you are ready to logon to Request Tracker on 'http://yourdomain.com/rt' using

User: root

Password: password

And you are on your way, have fun :-).