Redmine Installation Notes

I installed Redmine v0.9.4 on a 32-bit CentOS 5.5 box. The following versions were used:

You’ll need a MySQL database ready, so set it up and make a note of the username and password. There are quite a few steps involved, so let’s go!


yum install httpd-devel openssl-devel zlib-devel gcc gcc-c++ curl-devel expat-devel gettext-devel ImageMagick ImageMagick-devel mysql-devel

You may have issues with mysql-devel. In this case,

yum remove mysql  
yum install mysql mysql-devel mysql-server

Step 1: Compile and Install Ruby

The FTP site is at

tar -xzvf ruby-1.8.7.tar.gz  
sudo ./configure --enable-shared --enable-pthread  
make install

The weird thing is that you now have to tell Ruby about zlibs and re-compile. In the compilation folder:

cd ext/zlib  
ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib  
cd ../../  
sudo make  
sudo make install

Test this:

[root@pdb-d rubygems-1.3.7]# ruby --version  
ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]

Step 2: Install RubyGems

sudo tar xzvf rubygems-1.3.7.tgz  
cd rubygems-1.3.7  
sudo ruby setup.rb

Now check with:

[root@pdb-d rubygems-1.3.7]# gem -v  

Step 3: Install Rails

Note the version! Redmine requires Rails 2.3.5. So:

gem install rails -v=2.3.5

Step 4: Install the MySQL gem

gem install mysql -- --with-mysql-config=/usr/bin/mysql_config

Step 5: Install Passenger

Any Rails application can use a bunch of servers. Mongrel is an example; it runs completely independent of Apache. Passenger runs Rails apps on top of Apache (as a module) is amazing w.r.t. the simplicity of its setup and debugging.

gem install passenger  

Now add an httpd directive called /etc/httpd/conf.d/passenger.conf. Here are the contents:

LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.14/ext/apache2/  
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.14  
PassengerRuby /usr/local/bin/ruby

Restart the httpd service.

Step 6: Install Redmine

I’m choosing to install Redmine in /opt.

svn checkout /opt/redmine  
chmod 777 /opt/redmine/files

Tell Passenger to run Redmine!

AFAIK, any Rails app will have a public folder that ‘kickstarts’ the application (again, don’t know anything about this; seems like it to me.) I created a /opt/redmine/public/.htaccess file and added this:

PassengerAppRoot /opt/redmine

Now I just symlinked the /opt/redmine/public to my Apache root, restarted httpd, and was good to go at http://localhost/redmine

ln -s /opt/redmine/public /var/www/html/redmine