如何通过 Apache 执行 Ruby 脚本(不一定使用 Rails)?

如何通过 Apache 执行 Ruby 脚本(不一定使用 Rails)?

我正在尝试让 Apache 解释我的 Ruby 文件,但我不知道该怎么做。我现在不关心 Rails,只关心 Ruby。我在 Google 上找到的结果让我很困惑。有什么建议吗?

答案1

在 Web 服务器环境中运行 Ruby 代码的最常见方式是让代码实现 rack 接口。这是一个非常简单的 API,允许 Web 服务器与您的 Ruby 应用程序通信。对于 Apache,最常见的 rack 处理程序是 Passenger(又名 mod_rails 和 mod_rack)。几乎所有当前的 Ruby Web 框架(如 rails、sinatra、camping 等)都使用 rack 处理程序连接到 Web 服务器。您可以使用其中一个框架,但也可以不使用它们直接编写 rack 应用程序。所有 Ruby 应用程序服务器(mongrel、thin、unicorn、rainbows 等)都实现了 rack 接口。

另一种选择是使用 (f)cgi,但我建议您不要使用这种方法,因为其界面和协议很不方便并且并不能真正提供现代化的管理设施。

答案2

我一直在寻找简单的我已经回答了这个问题一段时间了,我发现你所要做的就是将 ruby​​ 脚本放在你的 web 服务器的 cgi-bin 目录中,然后加载相应的 URL。例如,在我的默认 CentOS 6.2/httpd 安装中,我将一个名为 hello.rb 的脚本放在 /var/www/cgi-bin/ 中,然后加载http://localhost/cgi-bin/hello.rb在我的浏览器中,它执行了脚本并向我展示了发送到 STDOUT 的内容(即来自 puts 等)。

这里发生的情况是每次加载 URL 时,脚本都会完全运行。这对于高容量网络服务器或速度至关重要的情况来说并不理想——因此,类似 fastCGI 之类的东西会让脚本始终运行,但您必须编写脚本来处理这个问题。

希望有帮助。

答案3

您可以使用 fast cgi 执行 ruby​​ 脚本。查看fcgi 项目了解更多信息。

答案4

尝试莫德鲁比

相关内容