BorrowBits
Portada » Blog » Computación » Linux » Instalar Redmine 1.3 en servidor CentOS con WHM/Cpanel.

Instalar Redmine 1.3 en servidor CentOS con WHM/Cpanel.



Este manual explica cómo instalar Redmine en un servidor con CentOS y WHM/Cpanel. A diferencia de otras distribuciones no podemos configurar Apache así como así, ya que WHM tiene un sistema de plantillas interno para restaurar los ficheros de configuración modificados en base a la configuración del servidor, esto evita problemas y aporta gran estabilidad en entornos de producción.

WHM está preparado para desplegar aplicaciones Rails que cada usuario podrá configurar desde su Cpanel, el único problema es que las gemas disponibles y a la vez necesarias en WHM no son compatibles con redmine.

Para desplegar la aplicación utilizaremos Apache 2.2 junto con phusion_passenger, además del propio Redmine 1.3. Así que en primer lugar obtendremos el código fuente necesario e instalaremos passenger. A través de ssh ejecutaremos:

cd /root/tmp
wget http://rubyforge.org/frs/download.php/75814/redmine-1.3.1.tar.gz
tar zxvf redmine-1.3.1.tar.gz
gem install passenger
passenger-install-apache2-module

El siguiente paso es habilitar el módulo passenger en apache, podremos hacerlo desde el panel de configuración de Apache en WHM. Dentro del panel encontraremos la opción “include editor” y en el selector de pre-virtual-host include añadiremos lo siguiente:

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.11
PassengerRuby /usr/bin/ruby

y pulsamos Update, esto debería reiniciar Apache sin errores. Si el reboot devuelve errores quizás alguna ruta no sea correcta, podemos usar find para ve en que ruta se encuentra cada cosa.
Volvemos al ssh y preparamos nuestro proyecto para ser desplegado:

cd /root/tmp/redmine-1.3.1/config
mv database.yml.example database.yml
cd ../public
mv dispatch.cgi.example dispatch.cgi
mv dispatch.fcgi.example dispatch.fcgi
mv dispatch.rb.example dispatch.rb
mv htaccess.fcgi.example .htaccess

Ahora editaremos el fichero de configuración de la BD:

cd ..
nano config/database.yml

Es evidente que necesitamos crear una BD en mysql, además es aconsejable crear un usuario que tenga todos los privilegios sobre esta BD pero sobre ninguna más. Esto podemos hacerlo desde Cpanel o desde la linea de comandos de mysql.

Ahora debemos preparar las gemas que Redmine necesita, pero en primer lugar necesitamos una versión más antigua de RubyGems:

cd /root/tmp
wget http://production.cf.rubygems.org/rubygems/rubygems-1.4.2.tgz
tar zxvf rubygems-1.4.2.tgz
cd rubygems-1.4.2
ruby setup.rb

gem install bundler

Creamos un fichero ./Gemfile y añadimos las siguientes lineas:

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"

y ejecutamos:

bundle install

Ahora debemos copiar la carpeta donde está redmine en /home/{user}/public_html y cambiar su nombre por redmine:

cp /root/tmp/redmine-1.3.1 /home/{user}/public_html/
mv /home/{user}/public_html/redmine-1.3.1 /home/{user}/public_html/redmine
cd /home/{user}/public_html/redmine
chown -R apache:apache ./
chmod -R 755 ./

Y procedemos a sincronizar la BD:
Editamos el fichero config/environment.rb y descomentamos la linea:

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

ejecutamos:

RAS_ENV=production bundle exec rake generate_session_store
RAILS_ENV=prodILuction bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data

En el último paso podremos elegir el idioma del sistema.

Si hemos llegado hasta aquí, hemos hecho la parte más difícil, la aplicación está lista para usarse, solo falta desplegarla en Apache usando passenger. Como ya comenté no podemos editar los ficheros de configuración generales de Apache pero podemos pedirle al sistema que nos incluya ficheros adicionales creados por nosotros usando un script.

/scripts/ensure_vhost_includes --user=nombre_usuario
/scripts/rebuildhttpdconf
/scripts/restartsrv_httpd

Una vez hecho esto podemos añadir ficheros de configuración adicionales en la carpeta
/etc/httpd/conf/userdata/std/2/ que acabe en “.conf”
Por ejemplo crearemos el fichero:
/etc/httpd/conf/userdata/std/2/redmine.conf donde escribiremos:

RailsEnv production
RailsBaseURI /redmine

Allow from all
Options -MultiViews

Con esto, tras reiniciar Apache:

/etc/init.d/httpd restart

debería estar disponible en la URL: nombre_dominio/redmine

PedroSP

Nací en Ibiza, pero me transladé muy pequeño a Atarfe (Granada).
Estudiante de Ingeniería técnica en informática de Sistemas.
Defensor a ultranza del software libre, el conocimiento libre y el pensamiento crítico.
Amante de las ciencias, la economía, la informática y el mundo de los negocios.
Republicano de corazón.

4 comentarios

  • Hola, una pregunta: realice todo el proceso bien hasta el punto en que tengo q agregar mi propio archivo de configuracion de apache, pero al crear el archivo redmine.conf no encontre el directorio /etc/httpd/conf/userdata/std/2/ asi q lo cree en /etc/httpd/conf/ y reinicie apache, pero al tratar de ingresar a nombre_dominio/redmine me lista todos los archivos q hay en ese directorio y no se ejecuta la aplicacion. Alguien me podria indicar q hace falta. Gracias.

    Otra cosita en el archivo redmine.conf
    es RailsEnv productiond
    o RailsEnv production

    Sin la d al final.

    Gracias

  • Gracias por avisar, había varios bugs, uno de ellos el que tu comentas y otro es que donde pone:

    /scripts/ensure_vhost_includes –user=
    /scripts/rebuildhttpdconf
    /scripts/restartsrv_httpd

    Debería poner:
    /scripts/ensure_vhost_includes –user=nombre_usuario
    /scripts/rebuildhttpdconf
    /scripts/restartsrv_httpd

    Al ejecutar eso, se crearán los directorios que no encuentras y se añadirán los includes necesarios para que los ficheros de configuración añadidos dentro sean interpretados por Apache.
    Este sistema está pensado así para aportar mayor estabilidad al sistema, así si algún usuario quiere añadir configuración » a mano » de Apache, bastará con que el administrador de sistemas ejecute esos scripts y le de permiso de escritura en ese directorio.

    Creo que se ha entendido, si no, pregunta lo que quieras y te lo aclaro.

PedroSP

Nací en Ibiza, pero me transladé muy pequeño a Atarfe (Granada).
Estudiante de Ingeniería técnica en informática de Sistemas.
Defensor a ultranza del software libre, el conocimiento libre y el pensamiento crítico.
Amante de las ciencias, la economía, la informática y el mundo de los negocios.
Republicano de corazón.

Suscríbete

¡Sácale el máximo partido a BorrowBits!

Apúntate para seguir recibir por email las nuevas publicaciones, noticias sobre Blockchain pre-filtradas y material exclusivo para suscriptores. De momento es gratis:

Categorías

Bits del pasado

Sitio patrocinado por:

JitKey rentabilización apartamentos turísticos

JITKey.- Startup enfocada en la gestión de alojamientos turísticos.