Installing Request Tracker on Linux
by Bruce Timberlake
02 March 2005
This installs:
MySQL 4.0.23
OpenSSL 0.9.7e
Apache 1.3.33
+ mod_ssl 2.8.22-1.3.33
+ mod_perl 1.29 (static)
+ mm 1.3.1
Perl 5.8.5 (plus RT-required modules)
PHP 4.3.10
Request Tracker 3.2.3
I use Fedora or Red Hat; this process should work on any distro, though, with minor changes.
I use qmail for my MTA. Notes on installing that and making RT work with it will be added at a later date.
I do all my installations from source code. If you have RPMS of older versions of these apps, there may be a problem... I generally install RT on a dedicated server, so I have no issue with removing the RPM versions of everything before I get started.
This is a "rough" procedure... just notes, really. It seems to work for me just fine; if you have problems and come up with a solution, please let me know and I'll make the appropriate changes. (Thanks to Jon Forrest @ UC Berkeley for his suggestions!)
Do all these steps as 'root'... you should be able to cut/paste large blocks of these
steps and have it install "automatically"... a couple of Perl modules require some manual
tweaking and some interactive stuff. Everything else is pretty much hands-off.
FIRST GET ALL REQUIRED SOURCE PACKAGES AND UNPACK
mkdir -p /usr/local/src
cd /usr/local/src
wget http://www.perl.com/CPAN/src/perl-5.8.5.tar.bz2
wget http://mysql.he.net/Downloads/MySQL-4.0/mysql-4.0.23.tar.gz
wget http://www.openssl.org/source/openssl-0.9.7e.tar.gz
wget ftp://ftp.ossp.org/pkg/lib/mm/mm-1.3.1.tar.gz
wget http://www.modssl.org/source/mod_ssl-2.8.22-1.3.33.tar.gz
wget http://perl.apache.org/dist/mod_perl-1.29.tar.gz
wget http://apache.swift-networks.com/httpd/apache_1.3.33.tar.gz
wget http://us2.php.net/distributions/php-4.3.10.tar.bz2
wget http://download.bestpractical.com/pub/rt/release/rt-3.2.3.tar.gz
wget \
http://easynews.dl.sourceforge.net/sourceforge/expat/expat-1.95.8.tar.gz
tar zxf mysql-4.0.23.tar.gz
bunzip2 perl-5.8.5.tar.bz2
tar xf perl-5.8.5.tar
tar zxf openssl-0.9.7e.tar.gz
tar zxf mm-1.3.1.tar.gz
tar zxf mod_ssl-2.8.22-1.3.33.tar.gz
tar zxf mod_perl-1.29.tar.gz
tar zxf apache_1.3.33.tar.gz
bunzip2 php-4.3.10.tar.bz2
tar xf php-4.3.10.tar
tar zxf rt-3.2.3.tar.gz
tar zxf expat-1.95.8.tar.gz
chown -R root.root *
ADD RT USER/GROUP
groupadd rt
useradd -g rt -c "RT User" -d /dev/null -s /sbin/nologin rt
INSTALL/UPGRADE PERL
cd /usr/local/src/perl-5.8.5
rm -f config.sh Policy.sh
sh Configure \
-Duseshrplib=y \
-des
make && make test && make install
/usr/local/bin/perl -MCPAN -eshell
# manual steps here:
# - selecting the "follow" option during initial Perl setup will make
# installation of RT dependency Perl modules later much easier and
# more automated.
# - install Bundle::CPAN
# - install LWP::UserAgent (mod_perl will need this later)
Install MySQL 4.0.23
groupadd mysql
useradd -g mysql -c "MySQL Server" -d /dev/null -s /sbin/nologin mysql
cd /usr/local/src/mysql-4.0.23
./configure \
--prefix=/opt/mysql \
--localstatedir=/opt/mysql/data \
--disable-maintainer-mode \
--with-mysqld-user=mysql \
--with-unix-socket-path=/tmp/mysql.sock \
--without-comment \
--without-debug \
--without-bench
make && make install
./scripts/mysql_install_db
chown -R root:mysql /opt/mysql
chown -R mysql:mysql /opt/mysql/data
cp support-files/my-medium.cnf /etc/my.cnf
chown root:sys /etc/my.cnf
chmod 644 /etc/my.cnf
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
ldconfig
cd /opt/mysql/bin
for file in *; do ln -s /opt/mysql/bin/$file /usr/bin/$file; done
# manual step - edit /etc/my.cnf for security reasons
# see my notes (http://www.lamphowto.com/linux/lampssl.htm) for info
# DO NOT remove the test database yet - we'll need it later to install DBD::Mysql
cd ~
/etc/rc.d/rc3.d/S90mysql start
mysqladmin -u root password new-password
BUILD OPENSSL
cd /usr/local/src/openssl-0.9.7e
./config \
--prefix=/usr/local/openssl \
-fPIC
make && make test && make install
BUILD MM
cd ../mm-1.3.1
./configure \
--disable-shared \
--with-pic
make && make install
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig
CONFIGURE MOD_SSL
cd ../mod_ssl-2.8.22-1.3.33
./configure \
--with-apache=../apache_1.3.33 \
--with-ssl=../openssl-0.9.7e \
--with-mm=../mm-1.3.1
CONFIGURE MOD_PERL
cd ../mod_perl-1.29
perl Makefile.PL \
EVERYTHING=1 \
APACHE_SRC=../apache_1.3.33/src \
USE_APACI=1 \
PREP_HTTPD=1 \
DO_HTTPD=1
make && make install
CONFIGURE APACHE
cd ../apache_1.3.33
SSL_BASE=../openssl-0.9.7e \
EAPI_MM=../mm-1.3.1 \
./configure \
--prefix=/usr/local/apache \
--enable-module=ssl \
--enable-shared=ssl \
--enable-module=rewrite \
--enable-module=most \
--enable-module=so \
--enable-shared=max \
--activate-module=src/modules/perl/libperl.a \
--enable-module=perl
make
make certificate TYPE=custom
make install
INSTALL PHP
cd ../php-4.3.10
CFLAGS='-O2 -I/usr/local/src/openssl-0.9.7e -DEAPI' \
./configure \
--with-apxs=/usr/local/apache/bin/apxs \
--disable-debug \
--enable-calendar \
--enable-exif \
--enable-ftp \
--enable-inline-optimization \
--enable-magic-quotes \
--enable-mbstring \
--enable-safe-mode \
--enable-sockets \
--enable-track-vars \
--enable-trans-sid \
--enable-wddx=shared \
--enable-xml \
--with-bz2 \
--with-gd \
--with-gettext \
--with-jpeg-dir \
--with-mime-magic \
--with-mysql=/opt/mysql \
--with-mysql-sock=/tmp/mysql.sock \
--with-openssl=/usr/local/openssl \
--with-pear \
--with-png-dir \
--with-regex=system \
--with-xml \
--with-zlib \
--with-zlib-dir=/usr/lib
make && make install
cp php.ini-dist /usr/local/lib/php.ini
# manual step - wrote PEAR system config file at: /usr/local/etc/pear.conf
# Add /usr/local/lib/php to /usr/local/lib/php.ini (include_path)
INSTALL RT DEPENDENCY PERL MODULES
# first install expat (http://sourceforge.net/projects/expat/)
cd /usr/local/src/expat-1.95.8
./configure
make && make install
Install CORE dependencies
cd /usr/local/src
perl -MCPAN -e'install URI'
wget http://cpan.org/modules/by-module/Net/Net_SSLeay.pm-1.25.tar.gz
tar zxf Net_SSLeay.pm-1.25.tar.gz
cd Net_SSLeay.pm-1.25
echo "/usr/local/openssl" >> openssl_path
perl Makefile.PL /usr/local/openssl -t
make && make test
# an error on www.ubs.com is ok
make install
RT does provide an 'auto-install' script that should get all the Perl modules in place for you. Try it with the command:
make fixdeps
If it doesn't work for you, here is a list of the Perl modules you will need, grouped in some semblance of order and sequence to eliminate dependency errors:
perl -MCPAN -e'install IO::Socket::INET'
perl -MCPAN -e'install IO::Socket::SSL'
perl -MCPAN -e'install Module::Build'
perl -MCPAN -e'install Params::Validate'
perl -MCPAN -e'install DBI'
perl -MCPAN -e'install Apache::DBI'
perl -MCPAN -e'install Test::Inline'
perl -MCPAN -e'install Class::ReturnValue'
perl -MCPAN -e'install DBIx::SearchBuilder'
perl -MCPAN -e'install Text::Template'
perl -MCPAN -e'install HTML::Entities'
perl -MCPAN -e'install HTML::Scrubber'
perl -MCPAN -e'install Log::Dispatch'
perl -MCPAN -e'install Locale::Maketext::Lexicon'
perl -MCPAN -e'install Locale::Maketext::Fuzzy'
perl -MCPAN -e'install MIME::Entity'
perl -MCPAN -e'install Mail::Mailer'
perl -MCPAN -e'install Text::Wrapper'
perl -MCPAN -e'install Time::ParseDate'
perl -MCPAN -e'install Text::Autoformat'
perl -MCPAN -e'install Text::Quoted'
perl -MCPAN -e'install Tree::Simple'
perl -MCPAN -e'install Module::Versions::Report'
perl -MCPAN -e'install XML::Parser'
perl -MCPAN -e'install FCGI'
DEV dependencies:
perl -MCPAN -e'install Regexp::Common'
perl -MCPAN -e'install Test::Inline'
perl -MCPAN -e'install Test::Memory::Cycle'
perl -MCPAN -e'install Test::Pod'
perl -MCPAN -e'install Test::Pod::Coverage'
perl -MCPAN -e'install Test::Taint'
perl -MCPAN -e'install Test::Warn'
perl -MCPAN -e'install Apache::Test'
# enter /usr/local/apache/bin/httpd for httpd location
# enter /usr/local/apache/bin/apxs for apxs location
perl -MCPAN -e'install HTML::Form'
# answer 'y' to libwww app installation
perl -MCPAN -e'install HTML::TokeParser'
wget http://cpan.org/modules/by-module/WWW/WWW-Mechanize-1.12.tar.gz
tar zxf WWW-Mechanize-1.12.tar.gz
cd WWW-Mechanize-1.12
perl Makefile.PL
make && make install
MAILGATE dependencies
perl -MCPAN -e'install HTML::TreeBuilder'
perl -MCPAN -e'install HTML::FormatText'
MASON dependencies
perl -MCPAN -e'install Params::Validate'
perl -MCPAN -e'install Cache::Cache'
perl -MCPAN -e'install Exception::Class'
perl -MCPAN -e'install HTML::Mason'
perl -MCPAN -e'install MLDBM'
perl -MCPAN -e'install FreezeThaw'
perl -MCPAN -e'install Apache::Session'
perl -MCPAN -e'install XML::RSS'
MYSQL dependency
# this step requires the 'test' database to still be installed for MySQL
wget http://cpan.org/modules/by-module/DBD/DBD-mysql-2.9005_3.tar.gz
tar zxf DBD-mysql-2.9005_3.tar.gz
cd DBD-mysql-2.9005_3
perl Makefile.PL \
--libs="-L/opt/mysql/lib/mysql -lmysqlclient -lz" \
--cflags=-I/opt/mysql/include/mysql \
--testuser=xxx \ # <- enter your MySQL root username (usually 'root')
--testpassword=yyy # <- enter your MySQL root user password
make && make test && make install
INSTALL REQUEST TRACKER
cd /usr/local/src/rt-3.2.3
./configure \
--prefix=/opt/rt \
--exec-prefix=/opt/rt \
--with-bin-owner=root \
--with-db-database=tickets \ <- this is the database name RT will use
--with-db-dba=sqladmin \ <- put in your MySQL root username here
--with-db-host=localhost \
--with-db-rt-host=localhost \
--with-db-rt-pass=t1cket \ <- this is the password for the RT MySQL user
--with-db-rt-user=rt_user \ <- this is the username for the RT MySQL user
--with-db-type=mysql \
--with-libs-owner=root \
--with-libs-group=bin \
--with-rt-group=rt \
--with-web-group=httpd \ <- this needs to match httpd.conf
--with-web-user=httpd <- this needs to match httpd.conf
make testdeps
make install
make initialize-database
cd /opt/rt/etc
cp RT_Config.pm RT_SiteConfig.pm
#edit RT_SiteConfig.pm and make relevant changes
# - rtname, Organization, Timezone, OwnerEmail, RTAddressRegexp,
# CanonicalizeEmailAddressMatch, CanonicalizeEmailAddressReplace,
# FriendlyFromLineFormat, FriendlyToLineFormat,
# RT::WebPath
CONFIGURE APACHE
Edit /usr/local/apache/httpd/conf/httpd.conf, and add:
NameVirtualHost ip.ad.re.ss
<VirtualHost ip.ad.re.ss:80>
ServerName host.domain.tld
ServerAdmin email@host.domain.tld
DocumentRoot /home/rt/share/html
AddDefaultCharset UTF-8
PerlModule Apache::DBI
PerlRequire /home/rt/bin/webmux.pl
ErrorLog /var/log/httpd/rt-error_log
CustomLog /var/log/httpd/rt-access_log common
<Location />
SetHandler perl-script
PerlHandler RT::Mason
</Location>
</VirtualHost>
# need to add the step for SSL vsite as well
/usr/local/apache/bin/apachectl stop
/usr/local/apache/bin/apachectl start
Remember that when logging into RT for the first time, use the username
root with password password
(and then change the password right away!)
![]()
This work is copyright © 2002-2009
Bruce Timberlake
and is licensed under a
Creative Commons Attribution Share-Alike License. It may be copied, modified, and distributed freely as long as
it attributes the original author by name ("Bruce Timberlake") and
URL ("http://brucetimberlake.com/") and maintains the original
license. See the license for details.