我想通过CGI在Apache中使用Ruby。 我有我的configuration文件中的以下内容:
DocumentRoot /home/ceriak/ruby <Directory /home/ceriak/ruby> Options +ExecCGI AddHandler cgi-script .rb </Directory>
test.rb
是放在/home/ceriak/ruby/
, #!/usr/bin/ruby
包含在第一行并给出了可执行的权限。 不过,当我访问localhost/test.rb
我得到一个下载窗口,并可以获得源代码。
有趣的是,当我将相同的脚本放在/usr/lib/cgi-bin/
并调用localhost/cgi-bin/test.rb
它的工作方式与假设一致。
(Ubuntu 9.10上的Apache2)。
任何想法?
几件事情检查:
chmod +x /path/to/file
来使其可执行 如果你这样做,它应该工作正常。 我有这个作为我的test.rb文件:
#!/usr/bin/env ruby puts <<EOS Content-type: text/html <html><body>hi</body></html> EOS
我跑到了相同的情况,并能够通过在AddHandler
后添加以下行来解决它:
Require all granted
仔细检查mod_cgi是否启用; 默认的优胜美地http.conf已禁用。