
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.
Table of Contents
Install Request Tracker (RT) on Ubuntu 24.04
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 -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
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 Mail Transfer Agent to allow RT route and deliver mails. Postfix is used in this guide.
sudo apt install postfix
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 5.0.7 is the latest stable release as of this writing.
Thus, once you get the version, replace the value of the VER variable below;
VER=5.0.7
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 and Install RT on Ubuntu 24.04
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
Ton run configure script with the default options, execute the command below.
RT defaults to installing in /opt/rt5 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.
/usr/bin/perl ./sbin/rt-test-dependencies
perl:
5.10.1 ................................................. ok (5.38.2)
users / groups:
rt group (www-data) .................................... ok (gid 33)
bin user (root) ........................................ ok (uid 0)
libs user (root) ....................................... ok (uid 0)
libs group (root) ...................................... ok (gid 0)
web user (www-data) .................................... ok (uid 33)
web group (www-data) ................................... ok (gid 33)
CORE dependencies:
Apache::Session >= 1.53 ................................ ok (1.94)
Business::Hours ........................................ ok
CGI >= 4.00 ............................................ ok (4.63)
CGI::Cookie >= 1.20 .................................... ok (4.59)
CGI::Emulate::PSGI ..................................... ok
CGI::PSGI >= 0.12 ...................................... ok (0.15)
CSS::Minifier::XS ...................................... ok
CSS::Squish >= 0.06 .................................... ok (0.10)
Class::Accessor::Fast .................................. ok
Clone .................................................. ok
Convert::Color ......................................... ok
Crypt::Eksblowfish ..................................... ok
DBI >= 1.37 ............................................ ok (1.643)
DBIx::SearchBuilder >= 1.80 ............................ ok (1.81)
Data::GUID ............................................. ok
Data::ICal ............................................. ok
Data::Page ............................................. ok
Date::Extract >= 0.07 .................................. ok (0.07)
Date::Manip ............................................ ok
DateTime >= 0.44 ....................................... ok (1.65)
DateTime::Format::Natural >= 0.67 ...................... ok (1.18)
DateTime::Locale >= 0.40, != 1.00, != 1.01 ............. ok (1.37)
Devel::GlobalDestruction ............................... ok
Devel::StackTrace >= 1.19, != 1.28, != 1.29 ............ ok (2.05)
Digest::MD5 >= 2.27 .................................... ok (2.58_01)
Digest::SHA ............................................ ok
Digest::base ........................................... ok
Email::Address >= 1.912 ................................ ok (1.913)
Email::Address::List >= 0.06 ........................... ok (0.06)
Encode >= 2.64 ......................................... ok (3.19)
Encode::Detect::Detector ............................... MISSING
Encode::HanExtra ....................................... ok
Errno .................................................. ok
File::Glob ............................................. ok
File::ShareDir ......................................... ok
File::Spec >= 0.8 ...................................... ok (3.88)
File::Temp >= 0.19 ..................................... ok (0.2311)
Getopt::Long >= 2.24 ................................... ok (2.54)
HTML::Entities ......................................... ok
HTML::FormatExternal ................................... ok
HTML::FormatText::WithLinks >= 0.14 .................... ok (0.15)
HTML::FormatText::WithLinks::AndTables >= 0.06 ......... ok (0.07)
HTML::Gumbo ............................................ ok
HTML::Mason >= 1.43 .................................... ok (1.60)
HTML::Mason::PSGIHandler >= 0.52 ....................... ok (0.53)
HTML::Quoted ........................................... ok
HTML::RewriteAttributes >= 0.05 ........................ ok (0.05)
HTML::Scrubber >= 0.08 ................................. ok (0.19)
HTTP::Message >= 6.07 .................................. ok (6.45)
HTTP::Request::Common .................................. ok
IPC::Run3 .............................................. ok
JSON ................................................... ok
JavaScript::Minifier::XS ............................... ok
LWP >= 6.02 ............................................ ok (6.76)
LWP::Protocol::https ................................... ok
LWP::Simple ............................................ ok
LWP::UserAgent >= 6.02 ................................. ok (6.76)
List::MoreUtils >= 0.420 ............................... ok (0.430)
Locale::Maketext >= 1.06 ............................... ok (1.33)
Locale::Maketext::Fuzzy >= 0.11 ........................ ok (0.11)
Locale::Maketext::Lexicon >= 0.32 ...................... ok (1.00)
Log::Dispatch >= 2.30 .................................. ok (2.71)
MIME::Entity >= 5.504 .................................. MISSING
MIME::Types ............................................ ok
Mail::Header >= 2.12 ................................... ok (2.21)
Mail::Mailer >= 1.57 ................................... ok (2.21)
Module::Path ........................................... ok
Module::Refresh >= 0.03 ................................ ok (0.18)
Module::Runtime ........................................ ok
Module::Versions::Report >= 1.05 ....................... ok (1.06)
Moose .................................................. ok
MooseX::NonMoose ....................................... ok
MooseX::Role::Parameterized ............................ ok
Mozilla::CA ............................................ ok
Net::CIDR .............................................. ok
Net::IP ................................................ ok
Parallel::ForkManager .................................. ok
Path::Dispatcher >= 1.07 ............................... ok (1.08)
Plack >= 1.0002 ........................................ ok (1.0051)
Plack::Handler::Starlet ................................ MISSING
Pod::Usage ............................................. ok
Regexp::Common ......................................... ok
Regexp::Common::net::CIDR .............................. ok
Regexp::IPv6 ........................................... ok
Role::Basic >= 0.12 .................................... ok (0.13)
Scalar::Util ........................................... ok
Scope::Upper ........................................... ok
Storable >= 2.08 ....................................... ok (3.32)
Sub::Exporter .......................................... ok
Symbol::Global::Name >= 0.05 ........................... ok (0.05)
Sys::Syslog >= 0.16 .................................... ok (0.36)
Term::ReadKey .......................................... ok
Term::ReadLine ......................................... ok
Text::ParseWords ....................................... ok
Text::Password::Pronounceable .......................... ok
Text::Quoted >= 2.07 ................................... ok (2.10)
Text::Template >= 1.44 ................................. ok (1.61)
Text::WikiFormat >= 0.76 ............................... ok (0.79)
Text::WordDiff ......................................... ok
Text::Wrapper .......................................... ok
Time::HiRes ............................................ ok
Time::ParseDate ........................................ ok
Tree::Simple >= 1.04 ................................... ok (1.34)
URI >= 1.59 ............................................ ok (5.27)
URI::QueryParam ........................................ ok
Web::Machine >= 0.12 ................................... ok (0.17)
XML::RSS >= 1.05 ....................................... ok (1.59)
namespace::autoclean ................................... ok
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
---------------------------------------------------------------------------
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:276: testdeps] Error 1
Fix 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 fixdeps command, you need to configure the CPAN shell.
/usr/bin/perl -MCPAN -e shell
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]> yes
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;
curl -L https://cpanmin.us | perl - --sudo App::cpanminus
cpanm --self-upgrade --sudo
which cpanm
/usr/local/bin/cpanm
export RT_FIX_DEPS_CMD=/usr/local/bin/cpanm
Next, run the fixdeps command;
make fixdeps
The command may take sometime as it tries to fix the missing dependencies. Ensure that all the dependency issues is sorted before you can proceed.
You can always install or reinstall or force the installation of dependencies 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 thus install these missing dependencies 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 have been found, you are good to go.
Once the dependencies issue is sorted, install RT. Note that this command will install RT on the /opt/rt5
directory.
sudo make install
...
done
# Make the web ui readable by all.
chmod -R u+rwX,go-w,go+rX /opt/rt5/share/html \
/opt/rt5/local/html \
/opt/rt5/share/po \
/opt/rt5/local/po \
/opt/rt5/share/static \
/opt/rt5/local/static
chown -R root /opt/rt5/share/html \
/opt/rt5/local/html \
/opt/rt5/share/po \
/opt/rt5/local/po \
/opt/rt5/share/static \
/opt/rt5/local/static
chgrp -R root /opt/rt5/share/html \
/opt/rt5/local/html \
/opt/rt5/share/po \
/opt/rt5/local/po \
/opt/rt5/share/static \
/opt/rt5/local/static
# Make the web ui's data dir writable
chmod 0770 /opt/rt5/var/mason_data \
/opt/rt5/var/session_data
chown -R www-data /opt/rt5/var/mason_data \
/opt/rt5/var/session_data
chgrp -R www-data /opt/rt5/var/mason_data \
/opt/rt5/var/session_data
Congratulations. RT is now installed.
You must now configure RT by editing /opt/rt5/etc/RT_SiteConfig.pm.
(You will definitely need to set RT's database password in
/opt/rt5/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.
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 port 80 on firewall.
sudo ufw allow "Apache Full"
Or use iptables/firewalld which ever you have running on your node.
To be able to RT in standlone mode and access it from browser, stop your web server if is running;
sudo systemctl stop apache2
and run the script below.
sudo /opt/rt5/sbin/rt-server
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/rt5/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
.

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.

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.

To verify database connection, click Check Database Connectivity.

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

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

Set the comments and correspondences addresses.

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.

You are then taken to RT 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;
<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
TransferLog /opt/rt5/var/log/apache2.access
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, add the line,FcgidMaxRequestLen 1073741824
, to CGI config file to define maximum HTTP request length.
sudo vim /etc/apache2/conf-available/serve-cgi-bin.conf
<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 apache2 -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. 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.
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
.
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.
Use root
as the username and password configured while setting up RT above.

When you successfully log in, you land on RT 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.