The first thing you need to do is install all the required packages. The following is my rt.xml bundle for use with Bcfg2. It details the Packages, Services, and Paths that need to be setup for RT to work properly (the fetchmail configuration is not detailed below).
Note: There are some packages explicitly listed below due to the fact that I configure apt not to install recommended packages by default. You may or may not need to install them in order for your request tracker installation to work properly (the libfcgi-perl is required in order to use the rt4-fcgi method).
<Bundle name='rt'> <Package name="mysql-server"/> <Service name="mysql"/> <!-- rt configuration --> <Package name="request-tracker4"/> <Package name="libmime-tools-perl"/> <Package name="libmouse-perl"/> <Package name="libterm-readline-perl-perl"/> <Package name="libxml-libxml-perl"/> <Package name="rt4-fcgi"/> <Path name="/etc/default/rt4-fcgi"/> <Package name="libfcgi-perl"/> <Package name="rt4-db-mysql"/> <Package name="mysql-client"/> <Package name="ttf-dejavu-core"/> <Service name="request-tracker4"/> <Package name="nginx-full"/> <Path name="/etc/nginx/sites-available/rt"/> <Service name="nginx"/> <Service name="rt4-fcgi"/> <Path name="/etc/request-tracker4/RT_SiteConfig.d/50-debconf"/> <Path name="/etc/request-tracker4/RT_SiteConfig.d/51-dbconfig-common"/> <!-- fetchmail configuration --> <Package name="fetchmail"/> <Path name="/etc/default/fetchmail"/> <Path name="/etc/fetchmailrc"/> <Service name="fetchmail"/> </Bundle>
You will want to install the mysql-server package first and setup the RT database.
root@rt:~# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 43 Server version: 5.1.61-2 (Debian) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database rtdb; Query OK, 1 row affected (0.00 sec) mysql> grant all privileges on rtdb.* to 'rt'@'localhost' identified by 'SECRETPASSWORD'; Query OK, 0 rows affected (0.03 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
Next, modify /etc/request-tracker4/RT_SiteConfig.d/50-debconf
to suit your custom environment. You also need to reconfigure /etc/request-tracker4/RT_SiteConfig.d/51-dbconfig-common
to use mysql with the appropriate values for the database that was created.
# THE DATABASE: # generated by dbconfig-common # map from dbconfig-common database types to their names as known by RT my %typemap = ( mysql => 'mysql', pgsql => 'Pg', sqlite3 => 'SQLite', ); Set($DatabaseType, $typemap{mysql} || "UNKNOWN"); Set($DatabaseHost, 'localhost'); Set($DatabasePort, '3306'); Set($DatabaseUser , 'rt'); Set($DatabasePassword , 'SECRETPASSWORD'); # 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); } Set($DatabaseName, 'rtdb');
By default, the RT install uses an sqlite database. The above tells it to use the mysql database that was created in the previous step. Once that is complete, you need to update the SiteConfig by running update-rt-siteconfig
. Then you can move on to configuring nginx.
The following nginx configuration works for configuring RT with fcgi (probably not optimal, suggestions for improvement are welcome):
server { listen 80; server_name rt.siriad.com; access_log /var/log/nginx/rt.siriad.com/access_log; error_log /var/log/nginx/rt.siriad.com/error_log; root /usr/share/request-tracker4/html; client_max_body_size 20M; location /NoAuth/images/ { try_files local/html$uri share/html$uri @main ; expires 1M; } location / { fastcgi_pass unix:/var/run/rt4-fcgi.sock; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_NAME ""; fastcgi_param PATH_INFO $uri; } location @main { fastcgi_pass unix:/var/run/rt4-fcgi.sock; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_NAME ""; fastcgi_param PATH_INFO $uri; } }
The above nginx configuration expects the following in /etc/default/rt4-fcgi
(to enable the rt4-fcgi init script).
# Defaults for request-tracker4 initscript # sourced by /etc/init.d/rt4-fcgi # # This is a POSIX shell fragment # enabled=1 # number of RT workers: workers=2
You should now be able to start the rt4-fcgi init script and nginx and login with the default RT username and password.