我想运行嵌入在某种 html 网页中的内联 ruby 代码。周围有 ruby 服务器,例如 mongrel、thin,但我只是想在 html 中运行内联 ruby,而不需要制作符合某些我不想学习的框架的所谓 ruby 应用程序。我希望 ruby 代码像 PHP 一样运行,以便我可以访问数据库、打印表单等。
我应该有什么设置?
我想运行嵌入在某种 html 网页中的内联 ruby 代码。周围有 ruby 服务器,例如 mongrel、thin,但我只是想在 html 中运行内联 ruby,而不需要制作符合某些我不想学习的框架的所谓 ruby 应用程序。我希望 ruby 代码像 PHP 一样运行,以便我可以访问数据库、打印表单等。
我应该有什么设置?
诚然,我从来没有这样做过,但是mod_ruby应该能够做到这一点。如果你能够安装 mod_php,你就可以使用 mod_ruby。
嵌入式 PHP 如下所示:
嵌入式 Ruby 看起来像这样:
或类似的东西;有一段时间没有这样做了;-) 更多语法内容可以在这里找到。长话短说:安装 mod_ruby 就可以了。
你可以看看我对 SO 上类似问题的回答。这有点类似于丹尼尔的回答,但我创建了一个 ruby-cgi 脚本,它为你做了一些“魔法”。
Sinatra足够小,可以不妨碍您(而不是告诉您该做什么),但功能齐全,您可以快速上手,无需太多努力。
您可以免费获得路由、视图(Erb 或 HAML/SaSS)、帮助程序、过滤器和对各种数据库适配器的支持。Sinatra 不会对您将要做什么做出任何假设。您的项目可以根据需要简单或复杂。更重要的是,文档非常好,并且有很好的示例(真实项目!)。
使用任何机架兼容的 HTTP 服务器(例如 Mongrel 或 Thin)可以轻松部署 Sinatra 应用程序。
另外两个选项是使用erb和 cgi(2) 或 eruby(3)(如果您在安装 mod_ruby 时遇到问题):
erb
带有*.rb
-controller-sort-of。这需要一个页面的两个文件,但可以将逻辑和视图进行一些简单的分离(没有“框架”)。设置起来非常简单,只需输入一行
httpd.conf
或.htaccess
(给定可执行权限):你
mypage.eruby
是一个类似 php 的 ERB 模板:但它涉及一些使用的编码。在您的
mypage.rb
文件中:现在请求
mypage.rb
使用
eruby
可执行文件(更像经典的 php 风格)。对于简单的脚本来说可能更容易。下载 eruby 可执行文件(您的平台可能有一个二进制文件)并将其复制到
/cgi-bin/eruby
在
httpd.conf
:然后创建你的
mypage.rhtml
:现在请求
mypage.rhtml
我更喜欢 1,但是一旦安装了 eruby,开始使用 2 可能会更容易。请原谅我的任何错误 - 我还没有测试我建议的配置和代码。
(我是发布工作链接的新手。如果有权限的人喜欢修复它们,我将不胜感激。)
一个非常简单的设置是使用Phusion Passenger (一个能够运行任何 Ruby 机架应用程序的 Web 应用程序服务器,它既可以独立运行,也可以作为 apache/ngix 模块工作)+机架服务器页面gem(这是一个小型机架应用程序,允许您服务带有嵌入 Ruby 代码的简单 HTML 页面)。
在独立模式下使用Passenger,您只需要在您要服务的文件的根目录中运行“passenger start”,并在该文件夹中拥有一个只有2行的config.ru文件:
您现在可以通过将任何 .erb 文件放在
public
子文件夹中来提供它们。您也可以只运行“rackup”并让页面由您选择的 ruby 服务器提供服务。