RT 4.2.6 on Ubuntu 12.04 LTS with MySQL and Sendmail
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.
This is the process I used to set up RT 4.2.6 on Ubuntu 12.04 LTS to use MySQL, Apache, Sendmail, and the ExternalAuth plugin.
Install and patch Ubuntu to your satisfaction
Install several packages that will be required for installation
sudo apt-get install mysql-common mysql-server sendmail gcc apache2 cpanminus libssl-dev libgd2-xpm-dev libapache2-mod-perl2 libnet-ldap-perl graphviz
When prompted, enter password for MySQL root user. Keep this password handy for later.
Download RT
wget download.bestpractical.com/pub/rt/release/rt-4.2.6.tar.gz
Expand archive
tar xzvf rt-4.2.6.tar.gz
Run cpan (and accept default configuration options)
sudo cpan
Reboot
Use CPAN to install modules FCGI and FCGI::ProcManager
sudo cpan FCGI sudo cpan FCGI::ProcManager
Test dependencies (we expect to find many missing)
sudo make testdeps
Fix missing dependencies
sudo make fixdeps
Double-check dependencies by running make testdeps again.
sudo make testdeps
Run configure
sudo ./configure
Make install
sudo make install
Perform initial edit of RT_SiteConfig.pm. Add the few vital lines we need
Set( $rtname, 'yourservername.site.you'); Set($Organization, "site.you"); Set($WebDomain, "yourservername.site.you"); Set($WebPort, 443); Set($DatabasePassword, q{yourdesiredpassword});
Set up database (this is where you need the MySQL root password you set earlier)
sudo make initialize-database
Create main Apache site for SSL at /etc/apache2/sites-available/my-rt-site
<VirtualHost yourServerIPAddress:443> ErrorLog /opt/rt4/var/log/apache2.error TransferLog /opt/rt4/var/log/apache2.access # LogLevel debug AddDefaultCharset UTF-8 DocumentRoot "/opt/rt4/share/html" <Location /> Order allow,deny Allow from all SetHandler modperl PerlResponseHandler Plack::Handler::Apache2 PerlSetVar psgi_app /opt/rt4/sbin/rt-server </Location> <Perl> use Plack::Handler::Apache2; Plack::Handler::Apache2->preload("/opt/rt4/sbin/rt-server"); </Perl> SSLEngine On SSLCertificateFile /path/to/cert.pem SSLCertificateKeyFile /path/to/key.pem SSLCertificateChainFile /path/to/chainfile.crt </VirtualHost>
Create Apache site for SSL redirect at /etc/apache2/sites-available/my-rt-ssl-redirect
<VirtualHost yourServerIPAddress:80> Redirect permanent / https://yourservername.site.you/ </VirtualHost>
Edit /etc/apache2/httpd.conf to specify the servername
ServerName yourservername.site.you
Enable SSL in Apache
sudo a2enmod ssl
Enable your new Apache sites. In /etc/apache2/sites-enabled/
sudo ln -s /etc/apache2/sites-available/my-rt-site sudo ln -s /etc/apache2/sites-available/my-rt-ssl-redirect
Remove the default Apache site
sudo unlink 000-default
Put your applicable SSL certificate files in place in the locations specified above (your /path/to/cert.pem, /path/to/key.pem, and /path/to/chainfile.crt, as appropriate).
Reboot
Visit your site with a web browser over HTTPS.
Sign in with initial credentials (root:password) to verify that you've been successful so far.
Make sure your users can reply to tickets (perhaps globally with the "Requestor" role in Group Rights).
Create a "Testing" RT queue that you wish to mail-enable. Assuming your Reply and Comment addresses are test-tickets@yourservername.site.you and test-tickets-comment@yourservername.site.you, edit /etc/aliases to specify the Reply and Comment addresses for your queue.
test-tickets: "|/opt/rt4/bin/rt-mailgate --queue 'Testing' --action correspond --url 'https://yourservername.site.you'" test-tickets-comment: "|/opt/rt4/bin/rt-mailgate --queue 'Testing' --action comment --url 'https://yourservername.site.you'"
Create a user to use for testing. Make it an AdminCC of your test queue.
Configure incoming mail. Consult with someone who knows sendmail well. Edit sendmail configs as appropriate. If you're only creating a test system, edit /etc/mail/sendmail.mc and edit this line
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
to look like this:
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp')dnl
Run make:
make -C /etc/mail
Restart sendmail:
sudo /etc/init.d/sendmail reload
Try a few test transactions via email to verify success so far.
Download RT-Authen-ExternalAuth
wget http://search.cpan.org/CPAN/authors/id/T/TS/TSIBLEY/RT-Authen-ExternalAuth-0.17.tar.gz
Expand RT-Authen-ExternalAuth
tar xzvf RT-Authen-ExternalAuth-0.17.tar.gz
Install RT-Authen-ExternalAuth
sudo perl Makefile.PL sudo make sudo make install
Further configure RT_SiteConfig.pm as appropriate for your environment to enable the RT-Authen-ExternalAuth plugin (how to do so is beyond the scope of this document).
You should now be able to add new users from your organization and have them populate with the data you specified in your config.