2010-02-11 12 views
14

Je souhaite utiliser Ruby dans Apache via CGI. Je le suivais dans mon fichier de configuration:Configuration de Ruby CGI dans Apache

DocumentRoot /home/ceriak/ruby 

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

test.rb est un testfile placé sous /home/ceriak/ruby/, #!/usr/bin/ruby inclus sur la première ligne et compte tenu des autorisations exécutables. Pourtant, quand je visite localhost/test.rb je reçois une fenêtre de téléchargement et peut obtenir le code source. Il est intéressant, lorsque je place le même script sous /usr/lib/cgi-bin/ et appelez localhost/cgi-bin/test.rb cela fonctionne comme supposé.

(Apache2 sur Ubuntu 9.10.)

Toute idée?

+3

appartient à Server Fault –

Répondre

7

Peu de choses à vérifier:

  • est votre fichier exécutable? Vous pouvez le rendre exécutable en allant chmod +x /path/to/file
  • avez-vous sorti le bon type de contenu?
  • Y a-t-il une nouvelle ligne vide entre vos en-têtes et votre sortie?
  • avez-vous redémarré Apache après avoir configuré la configuration?

Si vous avez fait tout cela, cela devrait fonctionner correctement. J'ai ce que mon fichier test.rb:

#!/usr/bin/env ruby 

puts <<EOS 
Content-type: text/html 

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

J'ai couru dans la même situation et a pu y remédier en ajoutant la ligne suivante après AddHandler:

Require all granted 
1

vérifiez que mod_cgi est activée; le fichier http.conf Yosemite par défaut l'a désactivé.

Questions connexes