在Apache中设置Ruby CGI

Joó*_*dám 15 ruby apache cgi

我想通过CGI在Apache中使用Ruby.我的配置文件中有以下内容:

DocumentRoot /home/ceriak/ruby

<Directory /home/ceriak/ruby>
    Options +ExecCGI
    AddHandler cgi-script .rb
</Directory>
Run Code Online (Sandbox Code Playgroud)

test.rb是一个放置在第一行下的testfile /home/ceriak/ruby/,#!/usr/bin/ruby并给出了可执行权限.不过,当我访问时,localhost/test.rb我得到一个下载窗口,可以获取源代码.

有趣的是,当我将相同的脚本置于其下/usr/lib/cgi-bin/并调用localhost/cgi-bin/test.rb它时可以正常工作.

(Ubuntu 9.10上的Apache2.)

任何的想法?

rob*_*rit 7

几件事要检查:

  • 你的文件可执行吗?你可以通过去做它可执行chmod +x /path/to/file
  • 你输出了正确的内容类型吗?
  • 标题和输出之间是否有空白换行符?
  • 你在设置配置后重启了Apache吗?

如果你做了所有这些,它应该工作正常.我有这个作为我的test.rb文件:

#!/usr/bin/env ruby

puts <<EOS
Content-type: text/html

<html><body>hi</body></html>
EOS
Run Code Online (Sandbox Code Playgroud)