ruby-on-rails ruby apache2 windows-server-2003

Configuración de la aplicación Ruby On Rails en un subdirectorio bajo Apache



ruby 2.3 download windows (4)

Tengo Apache2.2 en Windows. Estoy intentando servir tanto subversion (/ svn) como redmine (/ redmine). Tengo svn corriendo bien con esta configuración:

<Location /svn> DAV svn SVNParentPath C:/svn_repository ... </Location>

Esto funciona muy bien: mis usuarios svn pueden presionar http: // mybox / svn muy bien.

Ahora quiero agregar otro directorio para una aplicación de rieles (RedMine):

Seguí el consejo en esta pregunta para configurar un servidor mongrel y tener clientes proxy apache. Funciona bien si lo hago la raíz, pero tengo problemas para hacerlo en un subdirectorio:

<Location /redmine> ProxyPass http://localhost:3000/ ProxyPassReverse http://localhost:3000/ </Location>

¿Alguna sugerencia?


Passenger ( http://modrails.com ) es una mejor alternativa a fastcgi porque es muy fácil de configurar. Recomiendo usar esto para alojar tus aplicaciones de rails usando una configuración similar a la que tienes ahora.


En caso de que aún desee utilizar Mongrel + Apache utilizando un proxy inverso, aquí es cómo resolví el mismo problema en nuestro sistema (Win2k3, Apache 2.2, troncal de Redmine). El secreto es instalar tu servicio mongrel usando --prefix /redmine que le dice que lo sirva desde http://localhost:port/redmine

En Apache httpd.conf (o archivo de inclusión adecuado):

LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so <IfModule mod_proxy.c> ProxyRequests Off #No need to forward on static content - let apache do it faster ProxyPass /redmine/images ! ProxyPass /redmine/stylesheets ! ProxyPass /redmine/javascript ! # Remove the following entry on public sites as this is insecure ProxyPass /redmine/plugin_assets ! ProxyPass /redmine/help ! ProxyPass /redmine http://localhost:4000/redmine ProxyPassReverse /redmine http://localhost:4000/redmine ProxyPreserveHost On #continue with other static files that should be served by apache Alias /redmine/images C:/Repositories/redmine/public/images/ Alias /redmine/stylesheets C:/Repositories/redmine/public/stylesheets/ Alias /redmine/javascript C:/Repositories/redmine/public/javascript/ # Remove the following on public sites as this is insecure Alias /redmine/plugin_assets C:/Repositories/redmine/public/plugin_assets/ Alias /redmine/help C:/Repositories/redmine/public/help/ </IfModule> # Make sure apache can see public and all subfolders - not suitable for public sites <Directory "C:/Repositories/redmine/public/"> Allow from all Order allow,deny </Directory>

Mongrel está instalado como tal:

mongrel_rails service::install --prefix /redmine -N redmine_prod -p 4000 -e production -c C:/Repositories/redmine

Espero que ayude a alguien. Inicialmente, intenté configurar Apache + fastcgi, etc., pero perdí más pelo precioso, no es amigable para Windows.

PD: Encontré este PDF como una referencia muy útil: http://www.napcsweb.com/howto/rails/deployment/RailsWithApacheAndMongrel.pdf

/ Damien


Estoy de acuerdo con Radar. Passenger es realmente fácil de configurar, permite que las aplicaciones de Rails compartan memoria, elimina la carga de administrar un grupo de mongrels y no requiere prácticamente ninguna configuración. Todo lo que necesita es un archivo especial ''config.ru'' con una configuración de RackUp y un DocumentRoot que apunte a RAILS_ROOT / public set en Apache.


Esto es lo que tuve que cambiar:

Eliminé la barra final:

<Location /redmine> ProxyPass http://localhost:3000 ProxyPassReverse http://localhost:3000/ </Location>

Y en mi aplicación de rieles:

# added to end of file C:/redmine/config/environment.rb ActionController::AbstractRequest.relative_url_root = "/redmine"

¡Ahora funciona!

No estaba completamente satisfecho con este enfoque, me encontré con algunos problemas de redirección. Este es otro intento que parece estar funcionando bien hasta ahora.

Este segundo enfoque parece mejor.

ACTUALIZAR:

Como se señaló en los comentarios, para las aplicaciones más recientes que se ejecutan en Rails 2.3.2+, use esto en su lugar:

config.action_controller.relative_url_root = ''/redmine''

Lo puse en el nuevo archivo additional_environment.rb .