2010-02-11 24 views
14

Quiero usar Ruby en Apache a través de CGI. Tengo el siguiente en mi fichero de configuración:Configuración de Ruby CGI en Apache

DocumentRoot /home/ceriak/ruby 

<Directory /home/ceriak/ruby> 
    Options +ExecCGI 
    AddHandler cgi-script .rb 
</Directory> 

test.rb es una testfile colocado bajo /home/ceriak/ruby/, #!/usr/bin/ruby incluida en la primera línea y dados los permisos de ejecución. Aún así, cuando visito localhost/test.rb obtengo una ventana de descarga y puedo obtener el código fuente.

Curiosamente, cuando coloco el mismo script bajo /usr/lib/cgi-bin/ y llamo al localhost/cgi-bin/test.rb funciona como se supone.

(Apache 2 en Ubuntu 9.10.)

Alguna idea?

+3

pertenece a Server Fault –

Respuesta

7

Pocas cosas a comprobar:

  • es el archivo ejecutable? Puede hacerlo ejecutable yendo al chmod +x /path/to/file
  • ¿produjo el tipo de contenido correcto?
  • ¿Hay una nueva línea en blanco entre sus encabezados y su salida?
  • reinició Apache después de establecer la configuración?

Si hiciste todo eso, debería funcionar bien. Tengo esto como mi archivo test.rb:

#!/usr/bin/env ruby 

puts <<EOS 
Content-type: text/html 

<html><body>hi</body></html> 
EOS 
1

me encontré en la misma situación y fue capaz de solucionarlo añadiendo la siguiente línea después AddHandler:

Require all granted 
1

vuelve a comprobar que es mod_cgi habilitado; el http.conf predeterminado de Yosemite lo tiene deshabilitado.

Cuestiones relacionadas