Realmente quiero ejecutar algunos códigos ruby en el servidor Apache. Tengo libapache2-mod-ruby
y libapache-ruby1.8
instalados (la lista completa de lo que está instalado es here). ¿Qué debo hacer ahora para que se ejecute (here`s como ejemplo)?Ruby en Apache con mod_ruby
Respuesta
mod-ruby no es realmente la forma preferida de ir en la comunidad de ruby.
La manera más fácil para que pueda comenzar a instalar el pasajero (a través de gema) y configurar apache para usarlo.
Es muy fácil de hacer,
que puede seguir el tutorial oficial aquí: http://www.modrails.com/install.html
Aquí hay una quick howto para obtener mod_ruby en funcionamiento. Un breve resumen de los pasos que he utilizado en Ubuntu 12.04 se replica aquí:
Instalar mod_ruby para apache:
sudo apt-get install libapache2-mod-ruby
Para habilitar mod_ruby para todos los archivos en/var/www, edite el archivo de configuración de Apache, es decir, /etc/apache2/sites-enabled/000-default
he tenido que añadir a +ExecCGI
Options
, y añadir la sección perteneciente a Ruby:
<Directory /var/www/>
Options Indexes +ExecCGI
# Ruby with mod_ruby
RubyRequire apache/ruby-run
<Files *.rb>
SetHandler ruby-object
RubyHandler Apache::RubyRun.instance
AddType text/html rb
</Files>
</Directory>
El principal inconveniente que veo es que parece que no puedo encontrar una manera de establecer el tipo de mimo/contenido desde dentro del script. Debe configurarlo globalmente para todos los scripts de ruby con la directiva AddType text/html rb
.
Finalmente, necesita un script de prueba en/var/www y debe ser ejecutable. Por ejemplo, tengo /var/www/test.rb
:
#!/usr/bin/ruby
puts "Hello World!<br><pre>"
ENV.each { |k,v|
puts "#{k}=#{v}"
}
puts "</pre>"
No se olvide de hacerlo ejecutable:
chmod a+x /var/www/test.rb
Y esta salidas:
Hello World!
HTTP_HOST=10.0.1.3
HTTP_CONNECTION=keep-alive
HTTP_CACHE_CONTROL=max-age=0
HTTP_ACCEPT=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
HTTP_USER_AGENT=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36
HTTP_ACCEPT_ENCODING=gzip,deflate,sdch
HTTP_ACCEPT_LANGUAGE=en-US,en;q=0.8
HTTP_COOKIE=__test=1;
PATH=/bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/local/bin
SERVER_SIGNATURE=
Apache/2.2.22 (Ubuntu) Server at 10.0.1.3 Port 80
SERVER_SOFTWARE=Apache/2.2.22 (Ubuntu)
SERVER_NAME=10.0.1.3
SERVER_ADDR=10.0.1.3
SERVER_PORT=80
REMOTE_ADDR=10.0.1.3
DOCUMENT_ROOT=/var/www
[email protected]
SCRIPT_FILENAME=/var/www/test.rb
REMOTE_PORT=38188
SERVER_PROTOCOL=HTTP/1.1
REQUEST_METHOD=GET
REQUEST_URI=/test.rb
SCRIPT_NAME=/test.rb
MOD_RUBY=mod_ruby/1.2.6
GATEWAY_INTERFACE=CGI-Ruby/1.1
me he encontrado un punto de referencia Apache en mod_ruby contra Ruby simple como CGI (que hace girar el intérprete de Ruby cada solicitud) y mod_ruby fue aproximadamente 8 veces más rápido y a la par con el rendimiento de PHP.
- 1. ¿Por qué aún no hay una mod_ruby viable para Apache?
- 2. Configuración de Ruby CGI en Apache
- 3. Uso de Apache Mahout con Ruby on Rails
- 4. ¿Cómo configuro Apache 2.2 para Ruby on Rails en Windows?
- 5. Apache Cassandra integración con Apache Solr
- 6. ¿Hay algún problema con ejecutar PHP y Ruby en el mismo servidor Apache?
- 7. Multithreading con Apache DBCP
- 8. Apache con clases C#
- 9. Apache, mod_ *, PHP, Perl, Python, Ruby; Aprendiendo al revés
- 10. Reemplazar 'con \' en Ruby?
- 11. Long Polling con PHP en Apache
- 12. Ejecutar Silverlight con servidor Apache (en Linux)
- 13. ¿Cómo funciona Node.js en comparación con Apache?
- 14. SSL en Apache 2 con WSGI
- 15. Cómo configurar Apache Tika con Apache Solr 1.4.1
- 16. Tabla dinámica con Apache Pig
- 17. Apache Shiro combinado con LDAP
- 18. Apache Camel con clúster ActiveMQ
- 19. ¿Apache Rampart trabaja con maven?
- 20. Flowplayer Transmisión segura con Apache
- 21. Apache HttpClient GET con cuerpo
- 22. ¿Cómo funciona PHP con Apache?
- 23. Apache ErrorDocument con ruta absoluta
- 24. ¿Cómo comienzo con Apache Thrift?
- 25. ASP.NET con IIS VS PHP con Apache
- 26. transliteración con Iconv en Ruby
- 27. Phusion Passenger con Ruby 1.8 y 1.9?
- 28. PHP stdout en Apache
- 29. Tengo que reiniciar Apache cuando uso Django en Apache con mod_wsgi
- 30. Apache Wicket vs Apache Click
Pasajero parece ser para Rails - ¿eso es lo que quiere @folone? –
Estoy con Brent. Hay muchos usos para insertar Ruby en medio de una solicitud de Apache (autenticación, autorización, reparación de solicitudes mal formadas, etc.) en lugar de como el adaptador de punto final, es decir, lo que Passenger + Rails hacen juntos. –