Erubis在Apache httpd.conf和设置?

时间:2012-04-24 08:09:04

标签: ruby apache httpd.conf eruby erubis

我正在努力让Erubis设置为在Apache Web服务器上处理.rhtml文件。

我安装了Ruby(v 1.9.2p290),我通过Ruby Gems安装了Erubis(2.7.0)。

我似乎无法找到配置httpd.conf文件的正确方法 - 我在http://www.ruby-doc.org/docs/ProgrammingRuby/html/web.html找到了在Apache上设置eruby的指南 - 我尝试使用这些配置设置,重启apache,等...但是没有解析rhtml文件(它只是将ruby表达式输出为平面文本)

我在httpd.conf文件中添加了以下行,但它没有做任何事情 -

AddType application/x-httpd-eruby .rhtml
Action application/x-httpd-eruby /cgi-bin/eruby

如果我自己安装eruby而不是erubis,我觉得这样可行。除了通过我已经完成的宝石安装之外,erubis网站没有提供任何有关如何启动和运行的明确示例。

我还尝试将文件和conf设置从.rhtml更改为.eruby,以防万一,这也无效。

请帮忙!

1 个答案:

答案 0 :(得分:3)

显然这种使用嵌入式Ruby的风格已经不再适用了,但我还想运行eruby&通过添加CGI shell脚本将请求的页面传递给erubis,找到了一种让erubis处理.rhtml页面的方法。我的解决方案在这里描述:

http://techdog.tumblr.com/post/36496065877/configure-erubis-cgi-in-apache


我在 Ubuntu 12.04 &上有 Apache / 2.2.22 Ruby 1.8.7 。我安装了 erubis 2.7.0 实施&将可执行文件erubis文件复制到Apache的cgi文件夹,在我的例子中复制到/ usr / lib / cgi-bin / erubis。

我通过将这些指令添加到/etc/apache/httpd.conf,配置了一个名为erubis.sh的cgi脚本来处理.rhtml文件的请求:

AddType application/x-httpd-eruby .rhtml  
Application application/x-httpd-eruby /cgi-bin/erubis.sh

我确保通过运行此命令启用了Action模块:

$ sudo a2enmod action

我创建了这个bash shell脚本 erubis.sh 来处理带有嵌入式ruby的页面的请求:

#!/bin/bash  
echo "Content-type: text/html"  
echo  
echo "<!DOCTYPE HTML>"  
erubis -E Stdout <$DOCUMENT_ROOT$REQUEST_URI

它输出一个最小的http头然后要求erubis处理包含嵌入式Ruby的请求的.rhtml文件。 Stdout增强选项似乎有必要将嵌入式Ruby块的输出放在正确的位置。