[HowTo]Install ChiliProject on CentOS 5.6 take two

This is a quick guide on how to setup ChiliProject (or redmine) on CentOS 5.6. This is a followup to this post, with some different, slightly better methodology. I’ll likely be iterating on this guide a few times, so check the blog for updates before launching into this. At the time of writing, ChiliProject v1.4.0 is the current stable release, once v2.0.0 comes out, some of this will not apply.

Once again we’re going to go with the tried and trusted:

  • Ruby Enterprise Edition (REE)
  • Rails
  • RubyGems
  • Passenger
  • Apache
  • MySQL

This time we’re going to install REE via rvm and put chiliproject into it’s own user.

Enable the EPEL repository, so we can grab slightly more up-to-date versions of some packages, as well as subversion and git:

su -c 'rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm'

Same as last time lets install httpd, mysql and the necessary build libraries via the yum repos:

yum install gcc zlib zlib-devel curl curl-devel expat-devel gettext-devel httpd httpd-devel apr-devel apr-util-devel mysql mysql-server mysql-devel openssl openssl-devel make gcc-c++ patch readline-devel ImageMagick ImageMagick-devel libffi-devel libyaml-devel sudo git subversion

Start httpd and mysql and enable them to run on boot:

/etc/init.d/httpd start
/sbin/chkconfig httpd on
/etc/init.d/mysqld start
/sbin/chkconfig mysqld on

Let’s create a user that we are going to put chiliproject under, in this tutorial this user will be called chili.

adduser chili
passwd chili

Depending on your long-term plans I would suggest adding the user chili to /etc/sudoers (using visudo) so you can later disable root logins for a more secure environment. This tutorial will assume you have done so, and at this point are logged in as the chili user. If you choose not to do this, this tutorial will still work just fine executing these as root.

In this example we are going to install just a single version of ruby to use just for our chili user. The following should be done as the chili user, unless otherwise mentioned.

bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

Add this line to the bottom of .bash_profile

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

Log out and log back in.

Ensure rvm is installed and running as a function

type rvm | head -1

Update and reload rvm (just in case)

rvm get head
rvm reload

Install Ruby Enterprise Edition and set it as the default, this may take some time depending on your hardware.

rvm install ree
rvm --default use ree

Install rails version 2.3.5, the mysql gem, and the correct version of the i18n gem

gem install rails --version 2.3.5
gem install mysql
gem install -v=0.4.2 i18n

These are some optional gems you may want to install. rmagick will give you pretty graphs and ruby-openid will enable the ability to activate openid logins.

gem install rmagick -v 1.15.13 --disable-htmldoc
gem install ruby-openid

Install passenger. Follow the prompts and read the last part of the output instructing you to copy-paste some lines into your /etc/httpd/conf/httpd.conf

gem install passenger
rvmsudo passenger-install-apache2-module

While we are editing httpd.conf, let’s go ahead and create a virtualhost entry, edit as neccessary:

<VirtualHost *:80>
        ServerName www.demo.chiliproject.org
        ServerAlias demo.chiliproject.org
        DocumentRoot /home/chili/chiliproject/public
        <Directory /home/chili/chiliproject/public>
                AllowOverride all
                Options -MultiViews

Finally, let’s download and install chiliproject (or redmine)to the location in our virtualhost mentioned above. You can simply follow the install guide from this point on, but I will reproduce the commands I do below for your convenience:

cd /home/chili
git clone git://github.com/chiliproject/chiliproject.git
cd chiliproject/
git checkout stable
create database chiliproject character set utf8;
create user 'chiliproject'@'localhost' identified by 'my_password';
grant all privileges on chiliproject.* to 'chiliproject'@'localhost';
cp config/database.yml.example config/database.yml
vim config/database.yml
cp config/configuration.yml.example config/configuration.yml
vim config/configuration.yml
rake generate_session_store
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data
sudo /etc/init.d/httpd restart

If all went well, you should be able to browse to your successful chiliproject installation at this time! If you need help, hop into the Chiliproject IRC Channel and I’m usually around, and there are many other helpful people there just waiting to help you.