Install Request Tracker (RT) on Ubuntu 24.04

|
Last Updated:
|
|
request tracker tickets

Welcome to our guide on how to install Request Tracker (RT) on Ubuntu 24.04. Request Tracker (RT) is an enterprise-grade issue tracking/ticketing system that allows organizations to keep track of various tasks to be done, tasks completed, and when tasks were (or weren’t) completed.

It supports seamless email integration, custom workflows, SLA automation and tracking etc. Read more about RT features.

Install Request Tracker (RT) on Ubuntu 24.04

Set RT Server Hostname

In this setup, we want to access Request Tracker (RT) using a domain name instead of an IP address. Using a hostname makes the system easier to migrate, enables HTTPS, and provides a cleaner user experience.

If you do not have a DNS server handling your domain internally, you can still make the hostname work using the hosts file. This can be done either on the RT server itself or on the client machine from which you will access RT.

Set Hostname on the RT Server (Linux)

This ensures the server itself knows its own RT hostname. You can use the command below. Before you run the command, copy and:

  • Replace rt.domain.com with your actual RT hostname.
  • hostname -I automatically inserts the RT server’s IP address.
echo "$(hostname -I) rt.domain.com" | sudo tee -a /etc/hosts

Set Hostname on a Linux Client Machine

If you access RT from another Linux PC and want to resolve the hostname, copy the command below and replace RT-IP with the RT server’s actual IP address, as well the RT hostname, and run the command

echo "RT-IP rt.domain.com" | sudo tee -a /etc/hosts

Example:

echo "192.168.1.50 rt.kifarunix.com" | sudo tee -a /etc/hosts

Set Hostname on Windows Client

If you are using a Windows machine to access RT, then open PowerShell and run as Administrator. Then copy the command below, replace RT-IP with the actual RT server IP address, as well as the rt.domain.com with the actual RT hostname, then run the command.

Add-Content -Path "C:\Windows\System32\drivers\etc\hosts" -Value "`nRT-IP rt.domain.com"

Example:

Add-Content -Path "C:\Windows\System32\drivers\etc\hosts" -Value "`n192.168.1.50 rt.domain.com"

Run System update

To begin with ensure that your system packages are up-to-date.

sudo apt update

Install Required Packages for Building RT

Request Tracker (RT) requires quite a number of packages in order to run. These include:

  • Perl and some perl modules,
  • a web server (Nginx or Apache),
  • a backend database (MySQL/MariaDB, PostgreSQL, SQLite, Oracle).

In this demo, we use MariaDB as a database backend and Apache as the Web server.

Install Required RT Build Dependencies

RT will be installed by building it from the source code. This requires some package dependencies to be installed on the system. Hence, simply execute the command below to install these package dependencies.

sudo apt install autoconf \
    build-essential \
    cpanminus \
    curl \
    libexpat1-dev \
    libgd-dev \
    libssl-dev \
    zlib1g-dev \
    gnupg \
    graphviz \
    multiwatch \
    openssl \
    perl \
    w3m \
    libapache-session-perl \
    libbusiness-hours-perl \
    libcgi-emulate-psgi-perl \
    libcgi-psgi-perl \
    libcss-minifier-xs-perl \
    libcss-squish-perl \
    libconvert-color-perl \
    libcrypt-eksblowfish-perl \
    libdbix-searchbuilder-perl \
    libdata-guid-perl \
    libdata-ical-perl \
    libdata-page-perl \
    libdate-extract-perl \
    libdate-manip-perl \
    libdatetime-perl \
    libdatetime-format-natural-perl \
    libdatetime-locale-perl \
    libdevel-globaldestruction-perl \
    libdevel-stacktrace-perl \
    libemail-address-perl \
    libemail-address-list-perl \
    libencode-hanextra-perl \
    libfile-sharedir-perl \
    libhtml-formatexternal-perl \
    libhtml-formattext-withlinks-perl \
    libhtml-formattext-withlinks-andtables-perl \
    libhtml-gumbo-perl \
    libhtml-mason-perl \
    libhtml-mason-psgihandler-perl \
    libhtml-quoted-perl \
    libhtml-rewriteattributes-perl \
    libhtml-scrubber-perl \
    libipc-run3-perl \
    libjavascript-minifier-xs-perl \
    liblocale-maketext-fuzzy-perl \
    liblocale-maketext-lexicon-perl \
    liblog-dispatch-perl \
    libmime-types-perl \
    libmodule-path-perl \
    libmodule-refresh-perl \
    libmodule-versions-report-perl \
    libmoose-perl \
    libmoosex-nonmoose-perl \
    libmoosex-role-parameterized-perl \
    libmozilla-ca-perl \
    libnet-cidr-perl \
    libnet-ip-perl \
    libparallel-forkmanager-perl \
    libpath-dispatcher-perl \
    libplack-perl \
    libregexp-common-perl \
    libregexp-common-net-cidr-perl \
    libregexp-ipv6-perl \
    librole-basic-perl \
    libscope-upper-perl \
    libsymbol-global-name-perl \
    libtext-password-pronounceable-perl \
    libtext-quoted-perl \
    libtext-wikiformat-perl \
    libtext-worddiff-perl \
    libtext-wrapper-perl \
    libtime-parsedate-perl \
    libtree-simple-perl \
    libweb-machine-perl \
    libxml-rss-perl \
    libfile-which-perl \
    libgnupg-interface-perl \
    libperlio-eol-perl \
    libgraphviz2-perl \
    libcrypt-x509-perl \
    libgd-perl  \
    libcss-inliner-perl \
    libdatetime-perl libdatetime-set-perl \
    libencode-detect-perl \
    libhtml-rewriteattributes-perl \
    libhttp-message-perl \
    libhash-merge-perl \
    libimager-perl \
    libmime-tools-perl \
    libplack-perl -y

Install Apache Web Server

Install Apache Web server on Ubuntu 24.04

sudo apt install apache2 libapache2-mod-fcgid -y

Disable some Apache modules;

sudo a2dismod mpm_event mpm_worker

Enable some Apache modules;

sudo a2enmod mpm_prefork

Start and enable Apache to run on system boot.

sudo systemctl enable --now apache2

Install MariaDB Database

RT supports MySQL, MariaDB, Postgresql, and Oracle, and SQLite for development. We will use MariaDB in this guide. Thus, install MariaDB and required client libraries on Ubuntu 24.04

sudo apt install mariadb-server libmariadb-dev libmariadb-dev-compat -y

Next, Adjust MariaDB’s max_allowed_packet setting to adjust the size of attachments in RT.

echo -e '[server]\nmax_allowed_packet=64M' | sudo tee /etc/mysql/conf.d/max_allowed_packet.cnf

Start and enable MariaDB to run on system boot.

sudo systemctl enable --now mariadb

Run the initial security script and remove test databases, anonymous user accounts, disable remote root login…

sudo mariadb-secure-installation

When you run the script, it will ask you a series of simple Yes/No questions to lock down your database and make it safe for real use.

Here’s exactly what happens and what you should answer:

  1. Enter current password for root (enter for none):
    • If you just installed MariaDB and never set a password, just press Enter (leave it blank).
    • If you already set a password before, type it here.
  2. Switch to unix_socket authentication [Y/n]
    • This makes the root user extra secure (only the system can log in as root, no password needed from inside the server).
    • Recommended answer: y (or just press Enter, because “Y” is the default)
  3. Change the root password? [Y/n]
    • On a fresh install, press y to set a strong password now, if no password set already.
    • You’ll be asked twice to type your new password (so no typos).
    • Choose a strong password.
  4. Remove anonymous users? [Y/n]
    • Anonymous users = random people can log in without a username/password.
    • Answer: y (always say yes)
  5. Disallow root login remotely? [Y/n]
    • This stops any attempt to log in as root remotely.
    • Answer: y
  6. Remove test database and access to it? [Y/n]
    • There’s a default database called “test” that anyone can use.
    • Answer: y to remove it.
  7. Reload privilege tables now? [Y/n]
    • This applies all the changes immediately.
    • Answer: y (or just press Enter)

That’s it! When you see “All done!” at the end, your MariaDB is now properly secured.


NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] y
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Install a Mail Transfer Agent (MTA) to enable RT’s routing and delivery of emails. By default, RT uses sendmail, but we won’t actually use sendmail as the MTA. We’re simply installing it as a placeholder to allow RT to function during initial setup.

sudo apt install sendmail

Install Request Tracker (RT) on Ubuntu 24.04

Download RT Tarball

In this guide, RT is installed on Ubuntu 24.04 from the source. As such, navigate to RT downloads page and grab the latest version of RT archive.

RT 6.0.2 is the latest stable release as of this writing.

Thus, once you get the version, replace the value of the VER variable below;

VER=6.0.2

And use wget/curl command to download the source code.

wget https://download.bestpractical.com/pub/rt/release/rt-${VER}.tar.gz

To verify the integrity of the archive, calculate its hash (sha256) and compare it with the value available on the release page.

Unpack RT Archive

Extract the RT tarball to some directory.

tar xzf rt-${VER}.tar.gz

Compile RT Source Code

Navigate to RT archive directory extracted above.

cd rt-${VER}

Next execute the configure script to adapt RT to the system to ensure that all required dependencies to the build and install RT are available.

Note that you can always set the your preferred options for configure script. Simply utilize the help page for the options to use.

./configure --help

To run the configure script with the default options, execute the command below.

RT defaults to installing in /opt/rtN (Where N is the RT major release version) with MySQL as its database.

./configure

Once the configure script completes, run the command below to check for any Perl missing dependencies.

make testdeps

This script will check if all required dependencies are available and report any that is missing.

Here is a sample report on my setup

...
---------------------------------------------------------------------------

SOME DEPENDENCIES WERE MISSING:

CORE dependencies:
    CSS::Inliner >= 4027 ................................... MISSING (have 4018)
    HTML::RewriteAttributes >= 0.06 ........................ MISSING (have 0.05)
    HTTP::Message >= 6.46 .................................. MISSING (have 6.45)
    Hash::Merge::Extra ..................................... MISSING
    Plack::Handler::Starlet ................................ MISSING

Perl library path for /usr/bin/perl:
    /etc/perl
    /usr/local/lib/x86_64-linux-gnu/perl/5.38.2
    /usr/local/share/perl/5.38.2
    /usr/lib/x86_64-linux-gnu/perl5/5.38
    /usr/share/perl5
    /usr/lib/x86_64-linux-gnu/perl-base
    /usr/lib/x86_64-linux-gnu/perl/5.38
    /usr/share/perl/5.38
    /usr/local/lib/site_perl
make: *** [Makefile:276: testdeps] Error 1

You can xix missing RT dependencies either by installing the missing dependencies manually or simply executing the make fixdeps command as a privileged user. However, before you can run the make fixdeps command, you need to configure the CPAN shell.

/usr/bin/perl -MCPAN -e shell

Types yes to configure CPAN automatically.


CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each
configuration option instead.

Would you like to configure as much as possible automatically? [yes] yes

 <install_help>

Warning: You do not have write permission for Perl library directories.

To install modules, you need to configure a local Perl library directory or
escalate your privileges.  CPAN can help you by bootstrapping the local::lib
module or by configuring itself to use 'sudo' (if available).  You may also
resolve this problem manually if you need to customize your setup.

What approach do you want?  (Choose 'local::lib', 'sudo' or 'manual')
 [local::lib] sudo

We initialized your 'urllist' to https://cpan.org/. Type 'o conf init urllist' to change it.

Autoconfiguration complete.

commit: wrote '/home/kifarunix/.cpan/CPAN/MyConfig.pm'

You can re-run configuration any time with 'o conf init' in the CPAN shell
Terminal does not support AddHistory.

To fix that, maybe try>  install Term::ReadLine::Perl


cpan shell -- CPAN exploration and modules installation (v2.36)
Enter 'h' for help.

cpan[1]>q

Type q to quit.

Also, CPAN has a tool called cpanm that can help the make fixdeps command install dependencies. Thus install this tool and set RT to use it to fix deps.

To install cpanm, execute the commands below.

Download and Install cpanm:

curl -L https://cpanmin.us | perl - --sudo App::cpanminus

Upgrade cpanm to latest version

cpanm --self-upgrade --sudo

Verify cpanm installation:

which cpanm

The command will give such an output;

/usr/local/bin/cpanm

To use CPANM to fix deps, make it as a value to the RT_FIX_DEPS_CMD variable.

export RT_FIX_DEPS_CMD=/usr/local/bin/cpanm

Next, run the fixdeps command;

make fixdeps

The command may take some time as it tries to fix the missing dependencies. Ensure that all the dependency issues is sorted before you can proceed.

The final line you should see should be like the one below:

All dependencies found.

If any package dependency is still missing, you can always install using cpanm.

For example, assume you have a few missing dependencies after running the make fixdeps command;

make testdeps | grep -i missing
---------------------------------------------------------------------------

SOME DEPENDENCIES WERE MISSING:

CORE dependencies:
    Encode::Detect::Detector ............................... MISSING
    MIME::Entity >= 5.504 .................................. MISSING
    Plack::Handler::Starlet ................................ MISSING

Perl library path for /usr/bin/perl:
    /etc/perl
    /usr/local/lib/x86_64-linux-gnu/perl/5.38.2
    /usr/local/share/perl/5.38.2
    /usr/lib/x86_64-linux-gnu/perl5/5.38
    /usr/share/perl5
    /usr/lib/x86_64-linux-gnu/perl-base
    /usr/lib/x86_64-linux-gnu/perl/5.38
    /usr/share/perl/5.38
    /usr/local/lib/site_perl
make: *** [Makefile:281: fixdeps] Error 1

You can simply install all missing deps at once using the command below;

cpanm --installdeps . || (make testdeps |  awk '/MISSING/ && /::/ {print $1}' | sort -u | xargs cpanm)

Or you can install them one by one using cpanm.

cpanm --install --sudo Encode::Detect::Detector
cpanm --install --sudo Plack::Handler::Starlet
cpanm --install --sudo MIME::Entity

Check missing dependencies again;

make testdeps
...
FASTCGI dependencies:
    FCGI >= 0.74 ........................................... ok (0.82)

GPG dependencies:
    File::Which ............................................ ok
    GnuPG::Interface >= 1.02 ............................... ok (1.04)
    PerlIO::eol ............................................ ok

GRAPHVIZ dependencies:
    GraphViz2 .............................................. ok
    IPC::Run >= 0.90 ....................................... ok (20231003.0)

MYSQL dependencies:
    DBD::mysql >= 2.1018, != 4.042 ......................... ok (4.052)

SMIME dependencies:
    Crypt::X509 ............................................ ok
    File::Which ............................................ ok
    String::ShellQuote ..................................... ok


---------------------------------------------------------------------------

All dependencies found.

If you get the last line, All dependencies found, you are good to go.

Install RT on Ubuntu 24.04

Once the dependencies issue is sorted, install RT. Note that this command will install RT on the /opt/rtN directory, where N represent the major release version of RT, in this example, RT 6.

sudo make install
...
# Make upgrade scripts executable if they are in the source.
#
( cd etc/upgrade && find . -type f -not -name '*.in' -perm /0111 -print ) | while read file ; do \
	chmod a+x "/opt/rt6/etc/upgrade/$file" ; \
done
# Make the web ui readable by all. 
chmod -R  u+rwX,go-w,go+rX 	/opt/rt6/share/html \
				/opt/rt6/local/html \
				/opt/rt6/share/po \
				/opt/rt6/local/po \
				/opt/rt6/share/static \
				/opt/rt6/local/static
chown -R root 	/opt/rt6/share/html \
			/opt/rt6/local/html \
			/opt/rt6/share/po \
			/opt/rt6/local/po \
			/opt/rt6/share/static \
			/opt/rt6/local/static
chgrp -R root 	/opt/rt6/share/html \
			/opt/rt6/local/html \
			/opt/rt6/share/po \
			/opt/rt6/local/po \
			/opt/rt6/share/static \
			/opt/rt6/local/static
# Make the web ui's data dir writable
chmod 0770  	/opt/rt6/var/mason_data \
		/opt/rt6/var/session_data
chown -R www-data 	/opt/rt6/var/mason_data \
			/opt/rt6/var/session_data
chgrp -R www-data 	/opt/rt6/var/mason_data \
			/opt/rt6/var/session_data
Congratulations. RT is now installed.


You must now configure RT by editing /opt/rt6/etc/RT_SiteConfig.pm.

(You will definitely need to set RT's database password in 
/opt/rt6/etc/RT_SiteConfig.pm before continuing. Not doing so could be 
very dangerous.  Note that you do not have to manually add a 
database user or set up a database for RT.  These actions will be 
taken care of in the next step.)

After that, you need to initialize RT's database by running
 'make initialize-database'

Configuring RT from Web Interface

After the installation completes, you can now proceed to configure RT via web interface by running it on a standalone mode.

Open Web Server Ports on the RT Server

To enable external access to RT, open web server port on firewall. In this demo, we are using port 80/tcp. Hence, execute the command below to open both Web server ports (80 and 443) on firewall.

sudo ufw allow "Apache Full"

Or use iptables/firewalld which ever you have running on your node.

Start RT in Standalone Mode for Initial Configuration

To be able to RT in standalone mode and access it from browser, stop your web server if is running;

sudo systemctl stop apache2

and run the script below.

sudo /opt/rt*/sbin/rt-server
Note
The command sudo /opt/rt*/sbin/rt-server uses the * wildcard to match any number of RT versions installed in the /opt/ directory (e.g., rt5, rt6, rt7, etc.). This assumes that only one instance of RT is installed in /opt/. If multiple versions of RT are installed (e.g., both rt5 and rt6), the wildcard will match both, leading to unexpected behavior. Therefore, this command works correctly only when there is a single RT version installed in /opt/.

Also take a note:

Note
If you want to access RT using non default web server port 80, you can specify custom port by passing the –port PORT option to the script above. Be sure to open the port on firewall.
/opt/rt*/sbin/rt-server --port 8080

Sample output when using default web server port.

[15620] [Wed Mar  5 15:37:56 2025] [warning]: DBI connect('dbname=rt5;host=localhost','rt_user',...) failed: Access denied for user 'rt_user'@'localhost' at /usr/share/perl5/DBIx/SearchBuilder/Handle.pm line 117. (/usr/lib/x86_64-linux-gnu/perl-base/Carp.pm:291)

RT couldn't connect to the database where tickets are stored.
If this is a new installation of RT, you should visit the URL below
to configure RT and initialize your database.

If this is an existing RT installation, this may indicate a database
connectivity problem.

The error RT got back when trying to connect to your database was:

Connect Failed Access denied for user 'rt_user'@'localhost'
 at /opt/rt5/sbin/../lib/RT.pm line 222.


[15620] [Wed Mar  5 15:37:56 2025] [warning]: DBI connect('dbname=rt5;host=localhost','rt_user',...) failed: Access denied for user 'rt_user'@'localhost' at /usr/share/perl5/DBIx/SearchBuilder/Handle.pm line 117. (/usr/lib/x86_64-linux-gnu/perl-base/Carp.pm:291)
HTTP::Server::PSGI: Accepting connections at http://0:80/

Access RT from browser to proceed with configuration. Note it accepting connections on http://0:80/ in our case. Hence you can access it using IP address or resolvable hostname of your server, http://server_IP_OR_hostname.

Install Request Tracker (RT) on Ubuntu 24.04

Configure Database Connection Settings

From the RT interface, click Let’s go! button to proceed with configuration.

Select your RT database type. MySQL/MariaDB is used in this guide.

select rt database type

Click Next to create RT database and database user. Ensure you provide credentials for administrative user. We are using our MySQL root user as our administrative user.

create rt database and db user credentials

To verify database connection, click Check Database Connectivity.

RT database connection

Customize RT

Click Next to customize your RT with the most basic configurations needed to get it up and running.

rt site domain settings

Next, set the path to your MTA and RT admin email.

If you installed Postfix then, run this command on the terminal to get the full path;

which postfix

Use the fullpath to Postfix binary as shown in the screenshot below.

rt email settings

Set the comments and correspondences addresses.

helpdesk rt email

On the next step, click Initialize the database to create RT’s database and insert initial metadata.

Once the database is initialized, click Finish installation to complete the setup.

request tracker setup complete

You are then taken to RT login page.

request tracker login page

Note that RT is still running on standalone mode. Press Ctrl+c from the terminal to stop the /opt/rt5/sbin/rt-server script and proceed to configure web server for RT.

Configure Request Tracker Web Server on Ubuntu 24.04

Create RT virtualhost configuration file:

sudo vim /etc/apache2/sites-available/rt5.conf

with the following contents;

IMPORTANT
Update ServerName value ‘rt.kifarunix-demo.com’ with your respective Fully Qualified Domain Name (FQDN)! Also update ServerAdmin value ‘[email protected]’ with your server admin email address!
<VirtualHost *:80>
    ServerName rt.kifarunix-demo.com
    ServerAdmin [email protected]

    AddDefaultCharset UTF-8

    # ScriptAlias and Location should match RT's WebPath 
    ScriptAlias / /opt/rt5/sbin/rt-server.fcgi/

    DocumentRoot "/opt/rt5/share/html"

    <Directory "/opt/rt5/share/html">
        Require all granted
        Options +ExecCGI
        AddHandler fcgid-script fcgi
    </Directory>

    <Location />
        Require all granted
        Options +ExecCGI
        AddHandler fcgid-script fcgi
    </Location>

    # Optional Apache logs for RT 
    # Ensure that your log rotation scripts know about these files
    ErrorLog /opt/rt5/var/log/apache2.error
    CustomLog /opt/rt5/var/log/apache2.access combined
    LogLevel debug

</VirtualHost>

Save the configuration file and quit.

Configure RT Apache logs file rotation:

sudo sed -i '1i /opt/rt5/var/log/apache2.error\n/opt/rt5/var/log/apache2.access' /etc/logrotate.d/apache2

Apply and test: Simulate log rotation;

sudo logrotate -d /etc/logrotate.d/apache2

Force log rotation to test:

sudo logrotate -f /etc/logrotate.d/apache2

Next, open the CGI config file:

sudo vim /etc/apache2/conf-available/serve-cgi-bin.conf

And add the line, FcgidMaxRequestLen 1073741824, to define maximum HTTP request length.

See below!

<IfModule mod_alias.c>
    <IfModule mod_cgi.c>
        Define ENABLE_USR_LIB_CGI_BIN
    </IfModule>

    <IfModule mod_cgid.c>
        Define ENABLE_USR_LIB_CGI_BIN
        FcgidMaxRequestLen 1073741824
    </IfModule>

    <IfDefine ENABLE_USR_LIB_CGI_BIN>
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Require all granted
        </Directory>
    </IfDefine>
</IfModule>

Disable the default site configuration and enable rt5.conf site.

sudo a2dissite 000-default.conf
sudo a2ensite rt5

Check for Apache syntax errors.

sudo apache2ctl -t
Syntax OK

Configure RT Logging

Logging in RT is controlled from SiteConfig configuration file. There are multiple logging options for RT as described on LogsConfig Wiki. However, we are going to configure RT logging to a file in this guide.

Open the RT_SiteConfig.pm configuration file for editing.

sudo vim /opt/rt5/etc/RT_SiteConfig.pm

At the end of configuration files, insert the following lines, just before the line ending, 1;. We are using same log paths defined in the Apache configuration for RT. Make appropriate changes as per your environment setup.

Set($LogToFile,      'debug');
Set($LogToFileNamed, 'rt5.log');
Set($LogDir,         '/opt/rt5/var/log');

Save and quit the configuration file.

At this point, the RT_SiteConfig.pm now looks like below, without comment lines:

grep -vE "^$|^#" /opt/rt5/etc/RT_SiteConfig.pm
use utf8;
Set( $CommentAddress, '[email protected]' );
Set( $CorrespondAddress, '[email protected]' );
Set( $DatabaseHost, 'localhost' );
Set( $DatabaseName, 'rt5' );
Set( $DatabasePassword, 'ChangeME' );
Set( $DatabasePort, '' );
Set( $DatabaseType, 'mysql' );
Set( $DatabaseUser, 'rt_user' );
Set( $Organization, 'kifarunix-demo.com' );
Set( $OwnerEmail, '[email protected]' );
Set( $SendmailPath, '/usr/sbin/postfix' );
Set( $WebDomain, 'rt.kifarunix-demo.com' );
Set( $WebPort, '80' );
Set( $rtname, 'kifarunix-demo.com' );
Set($LogToFile,      'debug');
Set($LogToFileNamed, 'rt5.log');
Set($LogDir,         '/opt/rt5/var/log');
Set($WebSecureCookies, 0);
1;

Check the configuration syntax;

sudo perl -c /opt/rt5/etc/RT_SiteConfig.pm

Ensure you get an OK.

/opt/rt5/etc/RT_SiteConfig.pm syntax OK

Be sure to always check this log files for any RT errors.

Start and enable Apache web server.

sudo systemctl enable --now apache2

Accessing RT Web Server

You can now access your RT from browser using the address http://rt-server-IP_OR_hostname.

Heads up!
If you’re running Request Tracker (RT) in a test environment over HTTP (⚠️ not recommended), you must disable Secure Cookies to avoid login issues. Otherwise, even though the login is successful, you won’t be able to proceed past the login page. To fix this, edit /opt/rt5/etc/RT_SiteConfig.pm and change: Set($WebSecureCookies, 1); to Set($WebSecureCookies, 0); then restart Apache with sudo systemctl restart apache2. For production, always use HTTPS and keep Secure Cookies enabled. If the line is not there, add it and make appropriate changes as described.

Use root as the username and password configured while setting up RT above.

Install Request Tracker (RT) on Ubuntu 24.04

When you successfully log in, you land on RT web dashboard.

request tracker web dashboard

RT is now installed and running. However, for it to be useable, there is quite a lot that needs to be done. We will cover how to configure RT in our next guides.

Configure Request Tracker (RT) to send Mails using MSMTP via Office 365 Relay

That marks the end of our guide on how to install Request Tracker (RT) with MariaDB on Ubuntu 24.04.

Reference

RT 5.0.7 Documentation README

Other Tutorials

Install Zammad Ticketing System

Install OTRS Ticketting System

SUPPORT US VIA A VIRTUAL CUP OF COFFEE

We're passionate about sharing our knowledge and experiences with you through our blog. If you appreciate our efforts, consider buying us a virtual coffee. Your support keeps us motivated and enables us to continually improve, ensuring that we can provide you with the best content possible. Thank you for being a coffee-fueled champion of our work!

Photo of author
Kifarunix
DevOps Engineer and Linux Specialist with deep expertise in RHEL, Debian, SUSE, Ubuntu, FreeBSD... Passionate about open-source technologies, I specialize in Kubernetes, Docker, OpenShift, Ansible automation, and Red Hat Satellite. With extensive experience in Linux system administration, infrastructure optimization, information security, and automation, I design and deploy secure, scalable solutions for complex environments. Leveraging tools like Terraform and CI/CD pipelines, I ensure seamless integration and delivery while enhancing operational efficiency across Linux-based infrastructures.

2 thoughts on “Install Request Tracker (RT) on Ubuntu 24.04”

  1. I run into a syntax error on the apache2 -t step:
    ${APACHE_RUN_DIR} is not defined in line 80 of /etc/apache2/apache2.conf.

    That variable is defined in /etc/apache2/envvars as /var/run/apache2$SUFFIX.

    /var/run/apache2 exists, so I’m not sure what is going on.

    Reply

Leave a Comment