h1. HOWTO: Install Subversion, Ruby on Rails and Redmine on CentOS5 (& RHEL5) NOTES * This HOWTO is written for CentOS 5.2 * Replace [FQDN] with either your IP address or the hostname (or FQDN) which you’ll be using to access the interface. * Replace [user] with the username under whom's home directory the Subversion repository database will be located. e.g. /home/[user]/svn-repos * This HOWTO will be using the following variables: >* You will be running apache as the user ‘apache’ >* The subversion repository root folder will be under /home/[user]/subversion/ >* The vhost's folder locationg will be /var/www/svn >* The subversion repository to be created will be called ‘example-repo’ Install and set up Subversion
yum install mod_dav_svn subversionAdd the group [user] to the user apache and make the subversion base URL readable and writable...
usermod -aG [user] apache chmod g+x /home/[user] mkdir /home/[user]/subversion chmod g+rwx /home/[user]/subversionMake the web directory:
mkdir /var/www/svn chown apache.apache /var/www/svnPut the following into /etc/httpd/conf.d/svn.conf (this is for a sub-repo called 'example-repo')
NameVirtualHost *:80Add an HTTP auth user...DocumentRoot "/var/www/svn" ServerName [FQDN] DAV svn SVNPath /home/[user]/subversion/example-repo AuthType Basic AuthName "Subversion repo" AuthUserFile /var/www/passwd Require valid-user allow from all Options +Indexes
htpasswd -cm /var/www/passwd [user]Create a proper SVN repository
cd /home/[user]/subversion su [user] -c "svnadmin create example-repo"Import any SVN repos by doing:
su [user] -c "svnadmin load example-repo < /path/to/repo/dump/file"Make sure the permissions are correct
chmod g+rwx /home/[user]/subversion chown -R [user].[user] /home/[user]*+Install Ruby on Rails+* *NOTE: Ruby on Rails installation requires the EPEL yum repository (at time of writing).
su -c 'rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm'Let's get Ruby up and running first... [NOTE: not on an SElinux environment cba with that]
yum install httpd httpd-devel apr make gcc-c++ mysql-server mysql ruby ruby-devel ruby-docs ruby-ri \ ruby-libs ruby-mode ruby-tcltk ruby-irb ruby-rdoc fcgi fcgi-devel mod_fcgid rubygems subversion-rubyNow we'll install passenger (aka mod_rails)
gem install passenger passenger-install-apache2-moduleCreate and insert this text into /etc/httpd/conf.d/rails.conf (or alternatively edit the existing svn.conf created when we set up subversion) NOTE: * The below configuration is specific to the installation of redmine (hence the DocumentRoot)
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6/ext/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.0.6 PassengerRuby /usr/bin/ruby NameVirtualHost *:80*+Now on to Redmine itself+* Get Redmine 0.8 from http://www.redmine.org/wiki/redmine/DownloadServerName 192.168.10.17 DocumentRoot /var/www/rails/redmine/public
cd /usr/src svn co http://redmine.rubyforge.org/svn/branches/0.8-stable redmine-0.8 mkdir /var/www/rails/ cd /var/www/rails/ cp -r /usr/src/redmine-0.8/ redmine/ chown -R apache.apache redmine cd redmineCreate a clean backup of source files
tar czf Redmine0.8-clean.tar.gz .Initialise mySQL:
service mysqld startTo secure mysql:
mysql_secure_installationCreate a mysql database for redmine...
mysql -uAt the prompt enter:-p
create database redmine character set utf8;Quit with:
quitCopy the example database file to the "live" location
cd /var/www/rails/redmine cp config/database.yml.example config/database.ymlEnter the appropriate settings for the [production] section ensuring that host is set to 127.0.0.1
vim /var/www/rails/redmine/config/database.ymlSet up email
cd /var/www/rails/redmine cp config/email.yml.example config/email.ymlEnter the appropriate settings for the [production] section ensuring that "address" is set to the *IP address* of the SMTP host
vim /var/www/rails/redmine/config/email.ymlInstall rails for redmine using gem...
cd /var/www/rails/redmine/app/ gem install -v=2.1.2 railsImport the redmine database into the live database specified in the above config file
cd /var/www/rails/redmine/app/ rake db:migrate RAILS_ENV="production"Install default configuration data in database (this is entirely optional, but recommended).
cd /var/www/rails/redmine/app/ rake redmine:load_default_data RAILS_ENV="production"Bring up the testing webserver, once loaded check your config by browsing to http://[FQDN]:3000
cd /var/www/rails/redmine/ ruby script/server -e productionMake sure your apache config file edits are ok and that the services will start at boot by doing:
service httpd configtest service httpd restart chkconfig httpd on chkconfig mysqld onAdd the following to your crontab which will create a database backup in the /home/[user] directory
/usr/bin/mysqldump -u-p | gzip > /home/[user]/redmine_`date +%y_%m_%d`.gz