User:Bob.deleete/RT installation on Centos6 sandbox
I have repeatedly built RT4 from source on fresh CentOS/Scientific Linux installs. In the months/years between each time I find myself doing this work, I forget exactly what I did. So, this page is a reminder for me, and another HOWTO for anyone working on the same thing. In the course of this work I've referred to the two manual installation guides already on this site, ManualInstallation and ManualRequirements.
In this case, I've got two fresh CentOS 6.4 installations (in the past I've done this on Scientific Linux, and presumably it works on RHEL although I've never done that). My goal is to install RT4 with many of the ./configure options enabled, and use PostgreSQL as the database. The two systems are called:
- c6pg - the system with PostgreSQL
- c6rt - the system with RT and Apache
Database Server (c6pg)
I'll start with c6pg. As I only did a base install, there are several things I like to add:
yum install mc nano lynx screen man man-pages yum groupinstall 'Development tools'
note that in this one, some of things I pull in with the first command may be in the Development Tools group, but in my current test environment I didn't do the groupinstall first.
Also in my test environment, I'm using DHCP, and I want to be able to use hostnames rather than IP addresses. I modify the file
/etc/sysconfig/network-scripts/ifcfg-eth0
to make sure that the following lines are in there:
ONBOOT=yes DHCP_HOSTNAME=c6pg BOOTPROTO=dhcp
I use the PostgreSQL yum repository available from the PostgreSQL Global Development Group. The info is here: http://www.postgresql.org/download/linux/redhat/. For this system, I installed the rpm that adds the repository:
yum install http://yum.postgresql.org/9.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-6.noarch.rpm
Then I installed several packages made available through that:
yum update yum install postgresql92 postgresql92-devel postgresql92-docs postgresql92-server postgresql92-contrib
Initialize the db, start the service, and set it to start with the operating system:
service postgresql-9.2 initdb service postgresql-9.2 start chkconfig postgresql-9.2 on
If you want to use the pre-packaged PostgreSQL, that will be fine. I suggest finding the equivalent packages using yum
yum search postgres
and then replace 'postgresql-9.2' in the 3 commands above with whatever RHEL/CentOS/Scientific call it.
PostgreSQL adds a user to the operating system, so you'll want to set its password. As root:
passwd postgres
You'll have to provide a password later when the RT installation process wants to create the database. This is another password yet, the database admin password. To set this, use the su command to switch from root to postgres, then use the psql command to get into the database. For me, this process looks like:
su -l postgres
now you're the postgres user on the OS
psql
now you're in the database, and you can issue SQL commands.
ALTER USER postgres WITH PASSWORD '<enter a password here>';
the postgres user (in the db, not the operating system) now has a password
\q
quit the postgresql cli
exit
and you're back at a OS root prompt.
PostgreSQL has the difficult to understand (for me anyway!) pg_hba.conf file. First, I recommend backing up the original. I do (the path to the files will be a little different if you use CentOS's PostgreSQL):
cd /var/lib/pgsql/9.2/data/ cp pg_hba.conf pg_hba.conf.original
Then, I modified it as such:
nano pg_hba.conf
For my purposes here, I add this line at the end of the file:
host all all 192.168.0.0/24 md5
In the same directory, I also modified the postgresql.conf file. Again, I first back up the original:
cp postgresql.conf postgresql.conf.original
and then make sure the following lines are uncommented and set properly:
listen_addresses = '*' port = 5432
Do a restart of the PostgreSQL service, and this system should be done.
service postgresql-9.2 restart
RT/Web Server (c6rt)
This system started with a base CentOS install also. Building RT will require quite a few things. First I'll add Fedora's Extra Packages for Enterprise Linux (EPEL) repository. Information is here http://fedoraproject.org/wiki/EPEL. Find the section called "How can I use these extra packages?" and click the link for EL6. You'll go on to a page with a URL for an rpm called epel-release-6-8.noarch (currently -8, could be a higher number in the future). Fedora's wiki has a very impressive feature that links to a different mirror each time, so I've omitted the URL. Install this with a command like:
yum install http://example.org/epel/6/i386/epel-release-6-8.noarch.rpm
and install a bunch of rpms:
yum update yum groupinstall 'Development tools' yum install ncftp ftp gd gd-devel graphviz graphviz-devel httpd-devel mod_fcgid perl-devel perl-CPAN postgresql-devel \ sqlite sqlite-devel openssl-devel
some of those things are needed because of the RT or Perl options I chose. You may be able to omit some of the them.
Now to get started with the RT installation. Get the latest RT tarball from the Best Practical site. Go to http://bestpractical.com/ and look in the upper right corner. Currently it's rt-4.0.17.
I download this and move it to /usr/src. Extract the tarball with
tar zxpvf rt-4.0.17.tar.gz
then cd into the extracted source code
cd rt-4.0.17
You'll have to choose some configuration options. They can be seen by running
./configure --help
(to be completed)
for Talk page:
Wishlist
- best practice on setting OS-level postgres password, and database admin password
- best practice on MCPAN setup
- authoritative info on best hba.conf
- authoritative info on Apache config
- https config?
- info on lighttpd or alternative web servers