2008-09-29 15 views
10

Estoy tratando de comenzar a escribir algunas aplicaciones de Ruby on Rails y he tenido éxito con Mongrel pero, me gustaría implementar mis aplicaciones en mi instancia de Apache 2.2 en Windows? Todos los tutoriales que he encontrado parecen desactualizados y corresponden a versiones anteriores de Apache/Rails.¿Cómo configuro Apache 2.2 para Ruby on Rails en Windows?

¿Alguien sabe de un buen tutorial actual para configurar Apache 2.2 para las aplicaciones de Ruby on Rails?

+0

posible duplicado de [Cómo instalar Ruby on Rails junto WampServer?] (Http://stackoverflow.com/questions/2025449/how-to-install-ruby-on-rails-alongside-wampserver) –

Respuesta

13

EDIT: Al menos hasta que haya un Phusion Passenger for Win, Apache + Mongrel es el camino a seguir. Puede usar Apache + FastCGI sin Mongrel, pero bajo cargas reales obtendrá (más) procesos zombies y (más) pérdidas de memoria.

También puede consultar el proxy a Thin de la misma manera que se detalla a continuación. Sin embargo, he tenido algunas inestabilidades con Thin on Win, aunque es considerablemente más rápido. AB (Apache Benchmark) es tu amigo aquí!

La configuración de Apache + Mongrel en Windows no es significativamente diferente de * nix.

Básicamente, necesita solicitudes de proxy que entren en Apache a Mongrel. Lo que esto se reduce a algo como esto:

LoadModule proxy_module modules/mod_proxy.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 
<VirtualHost localhost:80> 
    ServerName www.myapp.comm 
    DocumentRoot "C:/web/myapp/public" 
    ProxyPass/http://www.myapp.com:3000/ 
    ProxyPassReverse/http://www.myapp.com:3000/ 
    ProxyPreserveHost On 
</VirtualHost> 

palillo de esto en su httpd.conf (o httpd-vhost.conf si está incluida ella).

Supone que ejecutará mongrel en el puerto 3000, la raíz de Rails está en C:\web\myapp, y accederá a la aplicación en www.myapp.com.

para ejecutar la aplicación en modo de producción rieles:

mongrel_rails start -p 3000 -e production 

y ya está (en realidad por defecto mestizos al puerto 3000 por lo que podría saltar -p 3000 si lo desea).

La principal diferencia es que no se puede demonizar mestizo en Windows (es decir, hacer que se ejecute en segundo plano). En su lugar, puede instalarlo como un servicio utilizando la gema mongrel_service.

Además, la ejecución de un clúster es más complicado y que no será capaz de utilizar Capistrano. Hazme saber si quieres más información.

+0

¿Es así como las aplicaciones de Ruby on Rails se implementan normalmente en Apache? Pensé que no habría manera de desplegarlos directamente a Apache sin necesidad de Mongrel. – Owen

+0

Creo que es absolutamente el camino, al menos hasta que haya un Phusion Passenger for Win. Puede usar Apache + FastCGI sin Mongrel, pero bajo cargas reales obtendrá (más) procesos zombies y (más) pérdidas de memoria. –

+0

También puede ver el proxy a Thin (http://code.macournoyer.com/thin/) de la misma manera. Sin embargo, he tenido algunas inestabilidades con Thin on Win, aunque es considerablemente más rápido. AB (benchmark de apache) es tu amigo aquí! –

3

Soy nuevo en RoR y han intentado lo mismo en Windows Server 2008, he aquí algunas notas adicionales sobre cómo obtener mestizo va como un servicio:

si se producen errores de compilación cuando se instala mongrel_service:

gem install mongrel_service 

intentar usar un binario en lugar especificando su plataforma:

gem install mongrel_service --platform x86-mswin32 

Además, para instalar realmente el servicio que necesita para r ONU este comando en el directorio de aplicación de RoR:

mongrel_rails service::install --name MyApp -e production -p 3001 -a 0.0.0.0 

(o para eliminar:

mongrel_rails service::remove --name MyApp 

)

, entonces debería ser capaz de iniciar/detener la aplicación "MyApp" en sus ventanas panel de control de servicios.

Espero que ayude a alguien.

2

Por el momento Mongrel no funciona correctamente con Ruby 1.9 y lanzará un error "msvcrt-ruby18.dll no encontrado" al ejecutar el comando mongrel_rails.

Delgado en este caso parece ser la única opción por el momento.

+1

Mongrel 1.2.0.pre2 parece funcionar bien con Ruby 1.9. Instalar a través de: 'gem install mongrel --prerelease' – gerard