Instalar Redmine con NGINX, Passenger y MySQL en CentOS 6

Redmine es la aplicación web para administración de proyectos open source mas popular que existe en la actualidad.
Instalar todos los elementos y dependencias necesarios para correr Redmine a veces resulta muy tedioso y complicado porque hay que compilar ruby instalar las gemas, compilar NGINX con Passenger, etc. Todo de forma manual. Siguiendo esta guía instalaras todo usando RPMs lo cual hará tu vida mucho mas fácil.

Antes de empezar asegúrate de que SELinux este deshabilitado

Configurar los repositorios necesarios

EPEL

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6*.rpm epel-release-6*.rpm

Phusion Passenger

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

Instala el software necesario y sus dependencias

yum -y install gcc gcc-c++ zlib-devel curl-devel openssl-devel apr-devel apr-util-devel mysql mysql-server mysql-devel ruby ruby-devel rubygems ImageMagick-devel ruby-RMagick nginx-passenger

Descarga Redmine desde su pagina web http://www.redmine.org/projects/redmine/wiki/Download

Descomprime el contenido y muévelo al directorio donde apuntara NGINX

unzip redmine-[version]
mkdir -p /webroot
mv redmine-[version] /webroot/redmine
chown -R nginx:nginx /webroot/redmine
chmod -R 755 /webroot/redmine

Conéctate a la consola de MySQL
Si no sabes como configurar un password para root en MySQL ve aquí y sigue las indicaciones del paso 1

service mysqld start
mysql -u root -p

Crea el usuario y base de datos que Redmine usara para conectarse a MySQL

CREATE DATABASE redminedb CHARACTER SET utf8;
CREATE USER redmine@localhost IDENTIFIED BY 'tupassword';
GRANT ALL PRIVILEGES ON redminedb.* to redmine@localhost;
FLUSH PRIVILEGES;  
exit

Configura redmine para que se conecte a la base de datos que acabas de crear

cd /webroot/redmine/config
cp -p configuration.yml.example configuration.yml
cp -p database.yml.example database.yml

Modifica el archivo database.yml y agrega los datos de conexión a la base de datos

production:
  adapter: mysql2
  database: redminedb
  host: localhost
  username: redmine
  password: "tupassword"
  encoding: utf8

Instala las dependencias de Redmine y ejecuta las ultimas configuraciones

gem install bundler
cd /webroot/redmine
bundle install
RAILS_ENV=production bundle exec rake generate_secret_token
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:plugins
cd /webroot/redmine/public
mv dispatch.fcgi.example dispatch.fcgi
mv htaccess.fcgi.example .htaccess

Para finalizar configure NGINX
Modifica el archivo /etc/nginx/conf.d/default.conf y remplaza todo el contenido del mismo por el siguiente

server {
  listen  80;
  server_name tudominio.com;
  root /webroot/redmine/public;
  passenger_enabled on;
  client_max_body_size      10m; # Max attachemnt size
}

Reinicia NGINX y asegúrate de que MySQL y NGINX inicien automáticamente cada vez que el sistema sea reiniciado

service nginx restart
chkconfig nginx on
chkconfig mysqld on

Estas listo para empezar a usar Redmine, el usuario y password de administrador por defecto es admin/admin

Deja tus comentarios y/o sugerencias.