Redmine on CentOS installation HOWTO » History » Version 12

« Previous - Version 12/53 (diff) - Next » - Current version
Stephan Schuberth, 2012-03-28 01:54


Redmine on CentOS installation HOWTO

This works with CentOS versions 5 and 6 and describes how to get Redmine 1.3.2 set up.

Assumptions

  • Apache is up and running
  • Apache has previously been used and works quite well
  • MySQL is up and running
  • MySQL has previously been used and works quite well
  • Your are logged as root
  • The next steps are done successively without errors

Install pre-dependencies

yum -y install zlib-devel curl-devel openssl-devel httpd-devel apr-devel apr-util-devel mysql-devel

Ruby

Things after *#* are comments, and it is no use to type this stuff in ;)

cd ~/Downloads  # YOUR FOLDER OF CHOICE
ftp ftp.ruby-lang.org

FTP session

ftp> Anonymous  # USERLOGIN
ftp> 'none', just hit Enter  # NO PASSWORD
ftp> cd /pub/ruby
ftp> get ruby-1.8.7.pXXX.tar.gz  # XXX is currently 358, as of 03/2012
ftp> bye

Untar

tar zxvf ruby-1.8.7.pXXX.tar.gz

Install

cd ruby-1.8.7.pXXX
./configure
make
make install

Check installation

If this does not work, it is probably because there is no ruby at /usr/bin to be found.
If it works, skip directly to "Get Gems 1.4.2".

ruby -v

Fix dependencies

(Only in case ruby -v is NOT working)

which ruby  # TO CHECK WHERE IT SHOULD BE
whereis ruby  # TO CHECK WHERE IT IS INSTALLED

which returns like /usr/bin/ along with other directories (where ruby is expected to be), and whereis returns like /usr/local/bin/ruby (thats where ruby actually lies).

Fix via adding /usr/local/bin to $PATH

(Do this with your editor of choice, if you do not like nano.)

nano /etc/profile

Make the section with pathmunge look alike like this:

#Path manupulation
if [ "$EUID" = "0" ]; then
    pathmunge /sbin
    pathmunge /usr/sbin
    pathmunge /usr/local/sbin
    pathmunge /usr/local/bin  # ADDED THIS
else
    pathmunge /usr/local/bin after  # ADDED THIS
    pathmunge /usr/local/sbin after
    pathmunge /usr/sbin after
    pathmunge /sbin
fi

OR ADD THIS AT THE END OF THE FILE:

nano /etc/profile
export PATH="$PATH:/usr/local/bin"

This sets the PATH for all Users beside root. In case you want it for root to change, too:

nano ~/.bashrc
export PATH="$PATH:/usr/local/bin"

Fix via Symlink Creation

This is not recommended, since if the ruby dependency is broken, others will likely be later on, too. Repair this by adding the folder to the $PATH variable like described before, else gem, rake, bundle, passenger-install-apache2-module will not work either... you would have to creat symlinks for them, too.
Symlinks are created like this

ln -s /usr/local/bin/ruby /usr/bin/ruby

Verify ruby to be working

ruby -v # NOW IT MUST RETURN RUBY VERSION, ELSE SOMETHING ELSE IS BROKEN
cd ..

RubyGems 1.4.2

Does not work with Gems 1.5!

Download

wget http://production.cf.rubygems.org/rubygems/rubygems-1.4.2.tgz

Untar

tar zxvf rubygems-1.4.2.tgz

Setup

cd rubygems-1.4.2
ruby setup.rb

Check installation

gem -v

In case this does not work...

... the solution is again creating a symlink, analogical like described in the ruby section above.

Passenger

Regular install method

Requires gcc.

gem install passenger
passenger-install-apache2-module

If the second line does not work, do whereis passenger to find out where it is installed.
So you can execute it like /usr/local/bin/passenger-install-apache2-module ...

The install process is interactive and you wil be told what to do. READ!

Alternative install method

Install mod_passenger RPM for Apache from the following location:

http://passenger.stealthymonkeys.com/

RHEL/CentOS 5

rpm -Uvh http://passenger.stealthymonkeys.com/rhel/5/passenger-release.noarch.rpm
yum install mod_passenger

RHEL/CentOS 6

rpm --import http://passenger.stealthymonkeys.com/RPM-GPG-KEY-stealthymonkeys.asc
yum install http://passenger.stealthymonkeys.com/rhel/6/passenger-release.noarch.rpm
yum install mod_passenger

Restart Apache

service httpd restart

Install Redmine

Download

Download page:

http://rubyforge.org/frs/?group_id=1850

wget http://rubyforge.org/frs/download.php/75910/redmine-1.3.2.tar.gz # GET LATEST VERSION ON RUBYFORGE

Untar

tar zxvf redmine-1.3.2.tar.gz

Copy the folder to its HTTP document root folder

mkdir /var/www/redmine
cp -av redmine-1.3.2/* /var/www/redmine

Rails Settings

Dependency management with bundler

For more info go to the bundler site.

Install

gem install bundler

Create Gemfile

You can of course use vi/vim as your editor of choice, if you know what you are doing. ;)

nano /var/www/redmine/Gemfile

Register gems

Put the following into the file you just opened:

# file: /var/www/redmine/Gemfile
source "http://rubygems.org" 
gem "rake", "0.8.3" 
gem "rack", "1.1.0" 
gem "i18n", "0.4.2" 
gem "rubytree", "0.5.2", :require => "tree" 
gem "RedCloth", "~>4.2.3", :require => "redcloth" # for CodeRay
gem "mysql" 
gem "coderay", "~>0.9.7"

Save and exit the editor.

Install the provided dependencies:

cd /var/www/redmine
bundle install

Set environment to "production"

Rails has the concept of environments to represent the stages of an application’s lifecycle: test, development, and production by default.
Specify your choice with the RAILS_ENV environment variable.
Production has less verbose logging and is a bit faster, testing and development environment are not needed anyway for your Redmine.

Uncomment the following line in file redmine/config/environment.rb:

ENV['RAILS_ENV'] ||= 'production'

Generate the session store

RAILS_ENV=production bundle exec rake generate_session_store

Migrate the database models

RAILS_ENV=production bundle exec rake db:migrate

Load default data (optional)

RAILS_ENV=production bundle exec rake redmine:load_default_data

Follow instructions.

Rename dispatch CGI files in /var/www/redmine/public/

mv dispatch.cgi.example dispatch.cgi
mv dispatch.fcgi.example dispatch.fcgi
mv dispatch.rb.example dispatch.rb

Link Redmine to the Database

Install MySQL DB Server

yum install mysql-server
chkconfig mysqld on
service mysqld start
/usr/bin/mysql_secure_installation

Create a MySQL database to use with Redmine

Latest MySQL Version

start the mysql client (mysql -u root -p) and enter the following commands:

create database redmine character set utf8;
create user 'redmine'@'localhost' identified by 'my_password';
grant all privileges on redmine.* to 'redmine'@'localhost'; 

For versions of MySQL prior to 5.0.2

Skip the 'create user' step and do instead:

 grant all privileges on redmine.* to 'redmine'@'localhost' identified by 'my_password';

Now the database is created and a user to be used with it. Also the user has the rights to work on the database that was created.

Configure /var/www/redmine/config/database.yml

cp database.yml.example database.yml

TODO: describe what to change there...

Apache Settings

Configure Apache to host the documents

more information can be found here: HowTo configure Apache to run Redmine

Edit .htaccess file for CGI dispatch configuration

mv htaccess.fcgi.example .htaccess

Fix rights for the apache user

cd ..
chown -R apache:apache redmine-1.x
chmod -R 755 redmine-1.x

This should be everything.

Redmine is now installed and usable.

Enjoy!