如何设置网络服务器来运行内联 ruby​​?

如何设置网络服务器来运行内联 ruby​​?

我想运行嵌入在某种 html 网页中的内联 ruby​​ 代码。目前有 mongrel、thin 等 ruby​​ 服务器,但我只想在 html 中运行内联 ruby​​,而不想制作符合我不想学习的框架的所谓 ruby​​ 应用程序。我希望 ruby​​ 代码像 PHP 一样运行,这样我就可以访问数据库、打印表格等等。

我应该有什么设置?

答案1

诚然,我从来没有这样做过,但是mod_ruby应该可以做到这一点。如果您能够安装 mod_php,那么您就可以使用 mod_ruby。

嵌入式 PHP 如下所示:

<?php
    print("Hello world");
?>

嵌入的 Ruby 看起来是这样的:

<% var="Hello world %>
<%= var %>

或者类似的东西;有一段时间没这样做了;-) 还有更多语法内容有待发现这里。长话短说:安装 mod_ruby 就可以了。

答案2

你可以看看我的答案回答 SO 上的一个类似问题。它与 Daniel 的回答有点相似,但我创建了一个 ruby​​-cgi 脚本,它可以为您做一些“魔术”。

答案3

西纳特拉足够简单,不会妨碍您(并且不会告诉您要做什么),但功能足够齐全,您可以快速上手,而无需付出太多努力。

您可以免费获得路由、视图(Erb 或 HAML/SaSS)、帮助程序、过滤器和对各种数据库适配器的支持。Sinatra 不会对您要做的事情做任何假设。您的项目可以根据需要简单或复杂。更重要的是,文档出色的还有好的例子(真实项目!)。

使用任何机架兼容的 HTTP 服务器(如 Mongrel 或 Thin)可以轻松部署 Sinatra 应用程序。

答案4

一个非常简单的设置是使用Phusion 乘客(能够运行任何 Ruby 机架应用程序,既可以独立运行,也可以作为 apache/ngix 模块运行)+机架服务器页面gem(这是一个小型 rack 应用程序,允许您使用嵌入的 Ruby 代码提供简单的 HTML 页面)。

在独立模式下使用 Passenger,您只需要在想要提供的文件的根目录中运行“passenger start”,并在该文件夹中创建一个只有两行内容的 config.ru 文件:

require 'rack-server-pages'
run Rack::ServerPages

现在,您可以将任何 .erb 文件放入public子文件夹中来提供它们。

您也可以只运行“rackup”并让您选择的 ruby​​ 服务器提供页面服务。

相关内容