El propósito de dichos proyectos los pueden encontrar en los siguientes enlaces:
http://www.redmine.org/
https://projects.apache.org/project.html?httpd-http_server
Antes de iniciar es necesario mencionar que gran parte de las instrucciones fueron extraídas de este post lo cual merece todo el reconocimiento al autor, así que básicamente es una traducción con unos pocos agregados..
http://www.informaddict.net/installer-redmine-sur-centos-7/
1 .Descargamos las herramientas de desarrollo de la distribución:
yum groupinstall "Development Tools"
yum install mariadb-server mariadb-devel ruby ruby-devel ImageMagick ImageMagick-devel rubygem-rake rubygem-bundler
systemctl enable mariadb && systemctl start mariadb
|
mysql_secure_installation
mysql -p
CREATE DATABASE redmine CHARACTER SET utf8;
8. Se conceden todos los permisos para el usuario redmine sobre la base de datos redmine.
9. Instalamos el servidor apache y sus librerías de desarrollo.
yum install libcurl-devel httpd-devel apr-devel apr-util-devel httpd -y
10. Habilitamos y iniciamos el servidor apache.
systemctl enable httpd && systemctl start httpd
11. Descargamos la ultima versión de redmine desde la pagina oficial (el enlace esta al inicio del post) y lo dejamos sobre el directorio "/var/www/html/"
12. Se descomprime el empaquetado.
cd /var/www/html
tar xvzf redmine-3.3.x.tar.gz13. Se cambia el nombre al directorio recién creado se deja como gusten, en mi caso se queda como redmine.
mv redmine-3.3.x redmine
mv database.yml.example database.yml
14. Se cambia el dueño y el grupo del directorio para el directorio redmine:
chown -R apache:apache redmine
15. Ahora vamos a hacer unos pequeños ajustes para que redmine se conecta a su base de datos, primero accedemos al directorio "config".
cd redmine/config
Ahora se cambia el nombre al archivo por defecto.
Una vez cambiado el nombre del archivo vamos a editar su contenido con vi, buscaremos la sección de producción dicha sección debe lucir algo similar a lo siguiente:
production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: "my_password"
encoding: utf8
Con esto ya le indicamos que base de datos va a utilizar ... continuamos..
16 . Ahora vamos a ubicarnos sobre el directorio base de redmine es decir sobre "/var/www/html/redmine", esto es muy importante ya que vamos a comenzar el despliegue de los plugings de ruby si no lo hacemos sobre este directorio nuestra instalación va a fallar.
cd /var/www/html/redmine
17. Hora de instalar el gem de bundler con el siguiente comando.
gem install bundler --no-rdoc --no-ri
Nos debe mostrar algo como lo siguiente.
Successfully installed bundler-1.12.5
1 gem installed
Ahora instalamos bundler con el siguiente comando.
Nos debe mostrar algo similar a lo siguiente:
machine.
Rubygems 2.0.14 is not threadsafe, so your gems will be installed one at a time. Upgrade to Rubygems 2.1.0 or higher to enable parallel gem installation.
Using rake 11.2.2
Using i18n 0.7.0
Using json 1.8.3
Using minitest 5.9.0
Using thread_safe 0.3.5
Using builder 3.2.2
Using erubis 2.7.0
Using mini_portile2 2.1.0
Using pkg-config 1.1.7
Using rack 1.6.4
Using mime-types-data 3.2016.0521
Using arel 6.0.3
Using addressable 2.4.0
Using coderay 1.1.1
Using concurrent-ruby 1.0.2
Using htmlentities 4.3.1
Using thor 0.19.1
Using mimemagic 0.3.2
Using mysql2 0.3.21
Using net-ldap 0.12.1
Using ruby-openid 2.3.0
Using bundler 1.12.5
Using rbpdf-font 1.19.0
Using redcarpet 3.3.4
Using request_store 1.0.5
Using rmagick 2.15.4
Using tzinfo 1.2.2
Using nokogiri 1.6.8
Using rack-test 0.6.3
Using mime-types 3.1
Using css_parser 1.3.7
Using sprockets 3.7.0
Using rack-openid 1.4.2
Using rbpdf 1.19.0
Using activesupport 4.2.6
Using loofah 2.0.3
Using mail 2.6.4
Using roadie 3.1.1
Using rails-deprecated_sanitizer 1.0.3
Using globalid 0.3.7
Using activemodel 4.2.6
Using rails-html-sanitizer 1.0.3
Using rails-dom-testing 1.0.7
Using activejob 4.2.6
Using activerecord 4.2.6
Using protected_attributes 1.1.3
Using actionview 4.2.6
Using actionpack 4.2.6
Using actionmailer 4.2.6
Using actionpack-action_caching 1.1.1
Using actionpack-xml_parser 1.0.2
Using railties 4.2.6
Using sprockets-rails 3.1.1
Using jquery-rails 3.1.4
Using roadie-rails 1.1.1
Using rails 4.2.6
Bundle complete! 31 Gemfile dependencies, 56 gems now installed.
Gems in the groups development, test, postgresql and sqlite were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.
18. Generamos los tokens de seguridad.
bundle exec rake generate_secret_token
19. Poblamos la base de datos con los datos.
20. Instalamos el gem de passenger.
gem install passenger --no-rdoc --no-ri
21. Antes de hacer el despliegue del gem vamos a ir a "/etc/httpd/conf.d" y crearemos un archivo llamado passenger.conf con el siguiente contenido.
<IfModule mod_passenger.c >
PassengerRoot /usr/local/share/gems/gems/passenger-5.0.30/
PassengerDefaultRuby /usr/bin/ruby
</IfModule >
NameVirtualHost *:80
<VirtualHost *:80>
ServerName redmine
DocumentRoot /var/www/html/redmine/public
</VirtualHost>
Este paso es para que no falle la validación del despliegue del modulo de esta forma ya estamos desplegando el virtualhost de apache para redmine.
22. Bien hora de desplegar el gem de passenger, aquí va a preguntar algunas cosas, lo cual solo daremos enter hasta que comience el proceso de compilación, este demora un rato.
passenger-install-apache2-module
23. Establecer security tokens, error "utils.rb:87 ]: *** Exception RuntimeError in Rack application object (Missing `secret_token` and `secret_key_base` for 'production' environment, set these values in `config/secrets.yml`)", un error por cuestiones de retrocompatibilidad esto lo solucionamos de la siguiente forma.
a - vamos a ubicarnos sobre el directorio de configuración de redmine.
cd /var/www/html/redmine/config
b - Luego ejecutamos el comando, este nos debe arrojar una cadena.
rake secret
(in /var/www/html/redmine)
cce23d6e14210e56b349303de9423dc14b77f59f1f07b960168883b7a07e7dce847fae8023f006ad8e357d4385a11eb2e73f2604c02d64d7fa70c17747d
secret_key_base: cce23d6e14210e56b349303de9423dc14b77f59f1f07b960168883b7a07e7dce847fae8023f006ad8e357d4385a11eb2e73f2604c02d64d7fa70c17747d
cce23d6e14210e56b349303de9423dc14b77f59f1f07b960168883b7a07e7dce847fae8023f006ad8e357d4385a11eb2e73f2604c02d64d7fa70c17747d
c - luego creamos el archivo secrets.yml con el siguiente contenido (el hash es el del resultaod del paso anterior):
24. Reiniciar apache y verificar el correcto acceso a la herramienta.
systemctl restart httpd
25. Multiples instancias de redmine, básicamente lo que tenemos que hacer es crear una nueva base de datos, la cual la podemos hacer siguiendo los pasos del punto 6,7 y 8, lo siguiente es desempaquetar o copiar el directorio redmain (si son instancias en blando desde cero, las podemos copiar con rsync) si son instancias nuevas y las actuales ya están pobladas será descomprimir el tar.gz en el directorio "/var/www/html" (cuidado que no borre o reemplace la instalación ya existente), una ves creado el comprimido configuramos el redmine para el acceso a la base de datos como se hizo en el punto 15, seguidamente repoblamos la base de datos con el paso en el punto 19, creamos un nuevo secret lo cual especificamos en el punto 23, lo siguiente es agregar un puerto de escucha al apache y agregar el virtualhost adicional al passenger.conf, el contenido del nuevo passenger sería algo similar a lo siguiente.
LoadModule passenger_module /usr/local/share/gems/gems/passenger-5.0.30/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c >
PassengerRoot /usr/local/share/gems/gems/passenger-5.0.30/
PassengerDefaultRuby /usr/bin/ruby
</IfModule >
NameVirtualHost *:80
<VirtualHost *:80>
ServerName redmine
DocumentRoot /var/www/html/redmine/public
</VirtualHost>
NameVirtualHost *:8090
<VirtualHost *:8090>
ServerName redmine-ins1
DocumentRoot /var/www/html/redmine-ins1/public
</VirtualHost>
Si bien en este ejemplo se están utilizando puertos diferentes, también es funcional por el mismo puerto de apache, pero utilizando nombres DNS diferentes con el fin que los capture el virtualhost correspondiente.
LoadModule passenger_module /usr/local/share/gems/gems/passenger-5.0.30/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c >
PassengerRoot /usr/local/share/gems/gems/passenger-5.0.30/
PassengerDefaultRuby /usr/bin/ruby
</IfModule >
NameVirtualHost *:80
<VirtualHost *:80>
ServerName redmine
DocumentRoot /var/www/html/redmine/public
</VirtualHost>
NameVirtualHost *:8090
<VirtualHost *:8090>
ServerName redmine-ins1
DocumentRoot /var/www/html/redmine-ins1/public
</VirtualHost>
Si bien en este ejemplo se están utilizando puertos diferentes, también es funcional por el mismo puerto de apache, pero utilizando nombres DNS diferentes con el fin que los capture el virtualhost correspondiente.
Se recarga apache y con eso se tendría redmine en diferentes instancias.
Como siempre los comentarios y criticas son bienvenidos, espero sea de utilidad para alguien.