Vamos a realizar una configuración en Apache para poder redigir la url tradicional de redmine que se publica por el puerto 3000 para que funcione por el puerto 80.
Hay que tocar los siguientes archivos:
Tabla de contenidos
Configuración del archivo httpd.conf en Apache
El archivo a configurar es httpd.conf que se encuentra en la carpeta conf:
# Virtual hosts
Include "conf/extra/httpd-vhosts.conf"# Proxy
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule rewrite_module modules/mod_rewrite.so
Configuración del archivo VirtualHost en Apache
El archivo a configurar es httpd-vhost.conf:
<VirtualHost *:80>
ServerName localhostDocumentRoot "D:/xampp/htdocs/redmine-3.2.0/public"
ErrorLog "D:/xampp/apache/logs/error.log"
CustomLog "D:/xampp/apache/logs/access.log" combined# Proxy inverso para redirigir las peticiones por el puerto 80 a una url alias
ProxyPass /redmine http://localhost:3000/redmine
ProxyPassReverse /redmine http://localhost:3000/redmine
ProxyPreserveHost On<Directory D:/xampp/htdocs/redmine-3.2.0/public>
AllowOverride all
Options -MultiViews
</Directory></VirtualHost>
Esto implica también cambiar la url base sub-uri donde se publica redmine por defecto. Para ello hay que modificar el siguiente fichero dejando las siguientes líneas así.
Configuración del archivo environment.rb de Redmine
Ruta del archivo: D:\xampp\htdocs\redmine-3.2.0\config\environment.rb
RedmineApp::Application.routes.default_scope = "/redmine"
# Initialize the Rails application
Rails.application.initialize!
De esta manera, con el proxy inverso redigiremos las peticiones del puerto 3000 que están levantadas con Webrick para que salgan por Apache y podamos acceder al Redmine por el puerto 80 y con una url predefinida como por ejemplo localhost/redmine.
Buenos días Javier,
El archivo HTTPD-VHOSTS.CONF esta en varias carpetas dentro de Apache, entre ellas apache\conf\extra y apache\conf\original\extra
¿en cual hay que realizar los cambios?
Buenos días Ramón. Haz los cambios en apache\conf\extra. Yo la carpeta original no la tengo. También tengo un Xampp algo antiguo. Un saludo.
Hola Javier,
Ya lo he realizado y ahora lo que ocurre es que no carga la raiz de apache, se ve un directorio de carpetas como este:
Index of /
[ICO] Name Last modified Size Description
[TXT] 404.html 2015-12-06 14:06 476
[TXT] 500.html 2015-12-06 14:06 667
[ ] dispatch.fcgi.example 2015-12-06 14:06 493
[IMG] favicon.ico 2015-12-06 14:06 7.7K
[DIR] help/ 2015-12-06 14:06 -
[ ] htaccess.fcgi.example 2015-12-06 14:06 1.5K
[DIR] images/ 2015-12-06 14:06 -
[DIR] javascripts/ 2015-12-06 14:06 -
[DIR] plugin_assets/ 2015-12-06 14:06 -
[DIR] stylesheets/ 2015-12-06 14:06 -
[DIR] themes/ 2015-12-06 14:06 -
Te paso el archivo httpd-vhosts.conf de la carpeta extra para ver si tiene algo mal
# Virtual Hosts
#
# Required modules: mod_log_config
ServerName localhost:80
DocumentRoot "C:/xampp/htdocs/redmine-3.2.0/public"
ErrorLog "C:/xampp/apache/logs/error.log"
CustomLog "C:/xampp/apache/logs/access.log" combined
# Proxy inverso para redirigir las peticiones por el puerto 80 a una url alias
ProxyPass /redmine localhost:3000/redmine
ProxyPassReverse /redmine localhost:3000/redmine
ProxyPreserveHost On
AllowOverride all
Options -MultiViews
No veo que hayas puesto las etiquetas de que tengo en el tutorial. Prueba también a comentar la línea DocumentRoot, por hacer una prueba solo. Por cada cambio que hagas en los ficheros de configuración de Apache, tienes que reinciarlo después para que coja los cambios. Un saludo.
Las etiquetas están aunque no se vean y siempre reinicio el servicio de apache para que recoja los cambios.
Ok, voy a comentar ese linea y probar de nuevo. Gracias.
Javier la he comentado y nada, imposible acceder desde fuera de local.
He quitado incluso los dos firewall y nada, ¿para local no hace falta que abra el puerto en el router, verdad?
Para el acceso en local no es necesario abrir puertos en el router. Además, estás configurando el sistema para que la url sea por el puerto 80 en vez de por el 3000, por lo que no sería necesario abrir ningún puerto en el firewall. La url por la que deberías poder acceder desde local o desde otra máquina es ip_servidor/redmine
Hola Javier,
No entra a redmine, con la ip/redmine me da un error 500 y si pongo solo la ip me carga el directorio raiz de la carpeta public de redmine, como te enseñe antes en otro mensaje.
¿Sera que el virtual host no esta funcionando o no esta bien configurado?
Puede ser. Habría que mirar los logs de Apache y ver qué puede ser. ¿Con la ip en local también te da error 500? Cuando dices que te carga el directorio raiz de la carpeta public, eso es correcto, pero te refieres a que te muestra el árbol de carpetas en el navegador? Eso es puede ser porque no está funcionando Ruby, pero me dices que con localhost te funciona, y ya me pillas ahí. Y con localhost/redmine sin el puerto 3000, te funciona?
Hola Javier,
Te contesto por partes, con la IP en local del tipo ip_servidor:3000 no carga nada, si pongo ip_servidor/redmine si carga pero el error 500.
Si pongo solo la IP o localhost, con los dos carga el directorio de redmine pero tal cual, en árbol.
localhost/redmine tambien da el error 500.
Solamente si pongo localhost:3000 en el equipo donde esta instalado todo si funciona y me carga la pagina de inicio de Redmine.
Buenas tardes Ramón. He revisado la configuración de mi servidor por si hubiera alguna errata en los tutoriales, y lo veo todo bien. No he visto ninguna errata. La única url que me funciona desde la otra máquina es ip_servidor/redmine. Desde local me funciona tanto localhost/redmine, como localhost:3000/redmine, como ip_servidor/redmine. En ningún caso me da error 500. Como mucho me muestra el directorio de carpetas de /htdocs o un error Page not found si pongo localhost:3000 sin el /redmine. Ahora mismo no sabría decirte cuál sería el problema. Vuelve a revisar los ficheros: httpd.conf, httpd-vhosts.conf y environment.rb y que coincida con los tutoriales. El problema tiene que estar en la configuración del virtualhost y del proxy inverso. Un saludo, Javier.
Buenos días Javier,
He probado de todas las formas habidas y por haber, revisando todo y nada, lo dejo por imposible por ahora.
A todo esto, yo lo tengo instalado todo en un Windows 7 profesional 32 bits, se que no es la mejor plataforma para ello pero ¿quizá haya alguna incompatibilidad?
Gracias por todo.