Difference between revisions of "Request Tracker"

From ArchWiki
Jump to: navigation, search
(Install the packages)
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:Development (English)]]
+
[[Category:Development]]
[[Category:Web Server (English)]]
+
[[Category:Web Server]]
 
= Installation =
 
= Installation =
  
This guide will help create a new RT (Request Tracker) server using [[MySQL]], [[Apache]], and mod_perl with a location of http://''ip_address''/rt.  RT also supports other database types, web servers (even as a daemon on it's own), Perl engines, and configurations that are not explained here (please consult the [https://github.com/bestpractical/rt/blob/stable/docs/web_deployment.pod appropriate RT documentation]).
+
This guide will help create a new RT (Request Tracker) server using [[MySQL]], [[Apache]], and mod_perl with a location of http://localhost/rt.  RT also supports other database types, web servers (even as a daemon on it's own), Perl engines, and configurations that are not explained here (please consult the [https://github.com/bestpractical/rt/blob/stable/docs/web_deployment.pod appropriate RT documentation]).
  
 
== Install the packages ==
 
== Install the packages ==
  
Build and install the RT package from the AUR [https://aur.archlinux.org/packages.php?ID=53167 here].  Be prepared to build a lot of perl modules from the AUR (about 160 of them!). An AUR wrapper will definitely help you out here.  You will also want to install [[Apache]] (also referred to as httpd) if it isn't on your server already.
+
Build and install the RT package from the AUR [https://aur.archlinux.org/packages.php?ID=53167 here].  Be prepared to install a truckload of Perl dependencies: you'll need about 70 from the AUR and approximately 90 from the mirrors!  An AUR wrapper will definitely help you out here.  You will also want to install [[Apache]] (also referred to as httpd) if it isn't on your server already.
  
 
== Configure Apache ==
 
== Configure Apache ==
Line 20: Line 20:
 
  DocumentRoot "/opt/rt4/share/html"
 
  DocumentRoot "/opt/rt4/share/html"
 
   
 
   
  <Location /rt>
+
  <Location "/rt">
 
   Order allow,deny
 
   Order allow,deny
 
   Allow from all
 
   Allow from all
Line 28: Line 28:
 
   PerlSetVar psgi_app /opt/rt4/sbin/rt-server
 
   PerlSetVar psgi_app /opt/rt4/sbin/rt-server
 
  </Location>
 
  </Location>
 +
 +
<Directory "/opt/rt4/share/html">
 +
  Order allow,deny
 +
  Allow from all
 +
</Directory>
 
   
 
   
 
  <Perl>
 
  <Perl>
Line 59: Line 64:
 
{{Tip|Since the internal user will barely, if ever, be used to manually log in to your [[MySQL]] server, make the password nice and strong.  There is a program in the mirrors called ''pwgen'' for this.  A good, random, 50-character password should work just fine for keeping the crackers out ;)}}
 
{{Tip|Since the internal user will barely, if ever, be used to manually log in to your [[MySQL]] server, make the password nice and strong.  There is a program in the mirrors called ''pwgen'' for this.  A good, random, 50-character password should work just fine for keeping the crackers out ;)}}
  
== Test it out ==
+
= Using RT =
 +
 
 +
After completing the sections above, (re)start httpd and try connecting to http://localhost/rt!  The default admin credentials are root:password.
 +
 
 +
== Tweaking RT_SiteConfig.pm ==
 +
 
 +
Depending on your setup, RT may suggest altering your RT_SiteConfig.pm file to better suit your configuration by writing lines to /var/log/httpd/error_log.  Please be advised that an ideal configuration will write no errors to error_log when loading pages in RT.
  
After completing the sections above, (re)start httpd and try connecting to http://''ip_address''/rt!  Depending on your setup, RT may suggest altering your RT_SiteConfig.pm file to better suit your configuration by writing lines to /var/log/httpd/error_log.  An ideal configuration will write no errors to error_log when loading a page.
+
== Further Reading ==
  
If you encounter problems, try adding "httpd: ALL" to /etc/hosts.allow, review httpd.conf, and read /var/log/httpd/error_log for errors.  Most problems come from permission issues, whether that be with the firewall, the httpd.conf configuration, or the local filesystem.
+
Now that you've got RT up and running on your webserver, use it!  See [http://bestpractical.com/rt/docs.html Best Practical's online documentation] for configuring RT.

Revision as of 16:51, 23 April 2012

Installation

This guide will help create a new RT (Request Tracker) server using MySQL, Apache, and mod_perl with a location of http://localhost/rt. RT also supports other database types, web servers (even as a daemon on it's own), Perl engines, and configurations that are not explained here (please consult the appropriate RT documentation).

Install the packages

Build and install the RT package from the AUR here. Be prepared to install a truckload of Perl dependencies: you'll need about 70 from the AUR and approximately 90 from the mirrors! An AUR wrapper will definitely help you out here. You will also want to install Apache (also referred to as httpd) if it isn't on your server already.

Configure Apache

Add this line to your LoadModule section in /etc/httpd/conf/httpd.conf:

LoadModule perl_module modules/mod_perl.so

Then, add this to the bottom of httpd.conf:

AddDefaultCharset UTF-8
DocumentRoot "/opt/rt4/share/html"

<Location "/rt">
  Order allow,deny
  Allow from all

  SetHandler modperl
  PerlResponseHandler Plack::Handler::Apache2
  PerlSetVar psgi_app /opt/rt4/sbin/rt-server
</Location>

<Directory "/opt/rt4/share/html">
  Order allow,deny
  Allow from all
</Directory>

<Perl>
  use Plack::Handler::Apache2;
  Plack::Handler::Apache2->preload("/opt/rt4/sbin/rt-server");
</Perl>

Create a MySQL database

A MySQL server needs to be installed and running. Create a database for RT by running the following as root (as it writes to /opt/rt4/etc/schema.mysql):

# /opt/rt4/sbin/rt-setup-database --action init

Configure RT

Edit /opt/rt4/etc/RT_SiteConfig.pm (not RT_Config.pm) to make system-level changes to RT. RT_Config.pm is the "default" config file that can be used as a reference for what variables are legal in RT_SiteConfig.pm. It follows a perl syntax like so:

Set($variable, 'setting');

At the very least, make two important changes. WebPath depicts where on the DocumentRoot RT is served (in our case, http://ip_address/rt) and is necessary for the CSS and images to load properly. DatabasePassword is the MySQL database password RT will use when connecting with the internal user (defaults to rt_user). Append this to RT_SiteConfig.pm:

Set($WebPath, '/rt');
Set($DatabasePassword, 'your_password');

After setting a database password, connect to the database (like so) and update the MySQL user accordingly:

USE mysql;
UPDATE user SET password=PASSWORD('your_password') WHERE user='rt_user';
FLUSH PRIVILEGES;
Tip: Since the internal user will barely, if ever, be used to manually log in to your MySQL server, make the password nice and strong. There is a program in the mirrors called pwgen for this. A good, random, 50-character password should work just fine for keeping the crackers out ;)

Using RT

After completing the sections above, (re)start httpd and try connecting to http://localhost/rt! The default admin credentials are root:password.

Tweaking RT_SiteConfig.pm

Depending on your setup, RT may suggest altering your RT_SiteConfig.pm file to better suit your configuration by writing lines to /var/log/httpd/error_log. Please be advised that an ideal configuration will write no errors to error_log when loading pages in RT.

Further Reading

Now that you've got RT up and running on your webserver, use it! See Best Practical's online documentation for configuring RT.