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
La leche, y que es todo esto?
Buen trabajo!
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.
Hola! ¿Sabe alguien si este tutorial sigue vigente para aplicar con la ultima versión de cPanel y Redmine 3.x?