I installed Redmine v0.9.4 on a 32-bit CentOS 5.5 box. The following versions were used: * Ruby v1.8.7 * RubyGems 1.3.7 * Rails v2.3.5 * Passenger v2.2.14 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! ## Pre-Flight 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 wget ftp://ftp.ruby-lang.org//pub/ruby/1.8/ruby-1.8.7.tar.gz tar -xzvf ruby-1.8.7.tar.gz sudo ./configure --enable-shared --enable-pthread make 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](http://rubygems.org/pages/download) wget http://production.cf.rubygems.org/rubygems/rubygems-1.3.7.tgz 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 1.3.7 ## 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](http://rubyforge.org/projects/mongrel/) is an example; it runs completely independent of Apache. [Passenger](http://www.modrails.com/) 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 passenger-install-apache2-module 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/mod_passenger.so 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 http://redmine.rubyforge.org/svn/tags/0.9.3/ /opt/redmine chmod 777 /opt/redmine/files * Configure `/opt/redmine/config/database.yml` to reflect your database parameters. * Configure `/opt/redmine/config/email.yml` to reflect your email parameters. ## 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 ln -s /opt/redmine/public /var/www/html/redmine ## Sources * [Installing Rails on CentOS 5](http://www.catapult-creative.com/2009/02/04/installing-rails-on-centos-5/) * [Deploying a Rails Application with Passenger](http://wiki.ocssolutions.com/Deploying_a_Rails_Application_With_Passenger)