首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rhtml (eruby) apache问题

rhtml (eruby) apache问题
EN

Stack Overflow用户
提问于 2011-01-23 10:32:19
回答 2查看 1K关注 0票数 3

我正在尝试在rhtml中运行嵌入式ruby。

代码语言:javascript
复制
$cat test.rhtml

<html>
<body>
Testing <% foo = "Ruby"; print "#{foo}!" %>
</body>
</html>

它在命令行中运行得很好:

代码语言:javascript
复制
$eruby test.rhtml


<html>
<body>
Testing Ruby!
</body>
</html>

但在我的apache设置中,它不起作用。

访问"http://localhost/cgi-bin/test.rhtml“会出现以下错误:

“内部服务器错误

服务器遇到内部错误或配置错误,无法完成您的请求。

请联系服务器管理员you@example.com,并告知他们错误发生的时间,以及您可能执行的任何可能导致错误的操作。

有关此错误的详细信息,可以在服务器错误日志中找到。“

错误日志显示:

Sat Jan 22 17:56:07 2011 client ::1执行格式错误:'Dir/cgi-bin/ test.rhtml‘的执行失败Sat Jan 22 17:56:07 2011 client ::1过早结束脚本头:test.rhtml

我已经将"eruby“可执行文件复制到"Dir/cgi-bin/”目录,并对apache (2.2)进行了如下配置:

代码语言:javascript
复制
AddType application/x-httpd-eruby .rhtml
Action application/x-httpd-eruby Dir/cgi-bin/eruby

有什么想法吗?谢谢!

EN

回答 2

Stack Overflow用户

发布于 2011-01-23 10:47:26

您可能需要添加,至少,

代码语言:javascript
复制
Content-type: text/html

<html>
....

在eruby文件的顶部-- CGI脚本负责在内容之前将标头发送回客户端。可能有更多有意义的标头需要发回,但这可能足以开始使用。

票数 1
EN

Stack Overflow用户

发布于 2012-11-26 08:21:43

我在Ubuntu12.04Ruby1.8.7上安装了Apache/2.2.22。我安装了Apache 2.7.0cgi实现,并将可执行的erubis文件复制到文件夹,在我的例子中是/usr/lib/ cgi -bin/erubis。我配置了一个名为erubis.sh的cgi脚本,通过将以下指令添加到/etc/apache/httpd.conf来处理对.rhtml文件的请求:

代码语言:javascript
复制
AddType application/x-httpd-eruby .rhtml
Application application/x-httpd-eruby /cgi-bin/erubis.sh

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

代码语言:javascript
复制
$ sudo a2enmod action

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

代码语言:javascript
复制
#!/bin/bash
echo "Content-type: text/html"
echo
echo "<!DOCTYPE HTML>"
erubis -E Stdout <$DOCUMENT_ROOT$REQUEST_URI

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4771975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档