Estoy tratando de hacer que Apache interprete mis archivos Ruby, pero no entiendo cómo hacerlo. No estoy preocupado por Rails en este momento, solo Ruby. Lo que he encontrado en Google solo me confunde. ¿Algún consejo?
Estoy tratando de hacer que Apache interprete mis archivos Ruby, pero no entiendo cómo hacerlo. No estoy preocupado por Rails en este momento, solo Ruby. Lo que he encontrado en Google solo me confunde. ¿Algún consejo?
Respuestas:
La forma más común de ejecutar código ruby en un entorno de servidor web es hacer que el código implemente una interfaz de rack. Es una API muy simple que permite al servidor web hablar con su aplicación ruby. Para Apache, el manejador de rack más común es el pasajero (también conocido como mod_rails y mod_rack). Casi todos los marcos web actuales de ruby (como rails, sinatra, camping, ...) se conectan al servidor web mediante un controlador de rack. Puede usar uno de esos marcos, pero también puede escribir aplicaciones en rack directamente sin ellas. Todos los servidores de aplicaciones ruby (mongrel, thin, unicorn, rainbows, ...) implementan la interfaz de rack.
Otra alternativa sería usar (f) cgi, pero le aconsejaría que se mantenga alejado de esa ruta, ya que la interfaz y los protocolos son incómodos y realmente no proporcionan instalaciones de administración modernas.
He estado tratando de encontrar la respuesta simple a esta pregunta por un tiempo, y descubrí que todo lo que tiene que hacer es poner el script ruby en el directorio cgi-bin de su servidor web y cargar la URL correspondiente. Entonces, por ejemplo, en mi instalación predeterminada de CentOS 6.2 / httpd, puse un script llamado hello.rb en / var / www / cgi-bin / y luego cargué http: //localhost/cgi-bin/hello.rb en mi navegador y ejecutó la secuencia de comandos y me mostró lo que fue a STDOUT (es decir, de Putts, etc.).
Lo que sucede aquí es que cada vez que se carga la URL, el script se ejecuta por completo. Esto no es ideal para un servidor web de alto volumen o donde la velocidad es crucial, por lo que algo como fastCGI mantiene el script ejecutándose siempre, pero debe escribir el script para manejar eso.
Espero que ayude.
Puede ejecutar scripts ruby con cgi rápido. Mira el proyecto fcgi para más información.
Prueba modruby .
Invalid command 'RubyAddPath'
¿Es esto una especie de cosa esotérica que nadie hace? Me sorprende lo difícil que es hacer que Ruby trabaje con Apache en comparación con PHP.
AddHandler ruby-object .rbx
, LoadModule ruby_module /path/to/mod_ruby
, RubyRequire apache/ruby-run
, y RubyHandler Apache::RubyRun.instance
a httpd.conf
debería ser suficiente para una configuración simple.