[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.

[HowTo] Install ChiliProject (or Redmine) on CentOS

This a quick and dirty guide to getting a chiliproject or redmine installation up on CentOS 5.5 with the following:

  • Ruby Enterprise Edition
  • Rails
  • RubyGems
  • Passenger
  • Apache
  • MySQL

This is just a suggested method that I would use for testing locally, there are MANY alternate, better ways of doing this. This is just to get you started in the right direction to setup and test ChiliProject/Redmine. In the future I’ll post a full proper tutorial as soon as I get time. In this “tutorial” I assume you are doing things as root on a server intended only to host a single redmine, in general this is not a secure or perfect setup but is fine for internal use.

First, let’s install some prerequisites and the things we want from the centos repositories:

yum install gcc zlib-devel 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

This will get mysql and apache, as well as the basic tools you should need to build the remaining applications.

Start httpd and make sure there are no errors, configure the server to start automatically

/etc/init.d/httpd start
Starting httpd:                                            [  OK  ]
/sbin/chkconfig httpd on

Same with mysql

/etc/init.d/mysqld start
Starting MySQL:                                            [  OK  ]
/sbin/chkconfig mysqld on

Ensure both are done correctly:

/sbin/chkconfig --list httpd
httpd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off
/sbin/chkconfig --list mysqld
mysqld         	0:off	1:off	2:on	3:on	4:on	5:on

Download, extract and install ruby enterprise edition, if you are not comfortable managing and updating a source installaiton, you should consider using this repository or rvm.

wget http://rubyforge.org/frs/download.php/71096/ruby-enterprise-1.8.7-2010.02.tar.gz
tar xzvf ruby-enterprise-1.8.7-2010.02.tar.gz

Follow the prompts in the installer, the defaults should be fine.

Create some useful symlinks:

ln -s /opt/ruby-enterprise-1.8.7-2010.02/bin/rake /usr/bin/rake
ln -s /opt/ruby-enterprise-1.8.7-2010.02/bin/gem /usr/bin/gem
ln -s /opt/ruby-enterprise-1.8.7-2010.02/bin/ruby /usr/bin/ruby
ln -s /opt/ruby-enterprise-1.8.7-2010.02/bin/irb /usr/bin/irb

Remove the included copy of rails and install the version required by ChiliProject

gem uninstall rails
gem install rails -v=2.3.5

Let’s install passenger:


Once it completes it will give you the following lines to place in the apache config, you can use your favorite editor to add these to /etc/httpd/conf/httpd.conf

   LoadModule passenger_module /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/passenger-3.0.2/ext/apache2/mod_passenger.so
   PassengerRoot /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/passenger-3.0.2
   PassengerRuby /opt/ruby-enterprise-1.8.7-2010.02/bin/ruby

Restart Apache:

/etc/init.d/httpd restart

In case you don’t have git and svn installed, enable EPEL repositories and get them:

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

Now just follow the directions at https://www.chiliproject.org/projects/chiliproject/wiki/Installation (or redmine)

Once you have confirmed it’s working with webrick, add this to your apache conf:

   <VirtualHost *:80>
      ServerName www.yourhost.com
      DocumentRoot /somewhere/public    # <-- be sure to point to 'public'!
      <Directory /somewhere/public>
         AllowOverride all              # <-- relax Apache security settings
         Options -MultiViews            # <-- MultiViews must be turned off

In my example setup it would be like the following:

<VirtualHost *:80>
      ServerName www.my.domain.com
      DocumentRoot /var/www/chiliproject/public
      <Directory /var/www/chiliproject/public>
         AllowOverride all
        Options -MultiViews

Restart apache and everything should be working as expected :)

This is just a rough guide, hit me up on IRC for specific help. If you are setting up a site for public use, this guide isn’t recommended at all.