2012-04-24 67 views
0

我試圖讓Erubis安裝程序在Apache Web服務器上處理.rhtml文件。Apache Apache httpd.conf上的Erubis和安裝程序?

我安裝了Ruby(v 1.9.2p290),並通過Ruby Gems安裝了Erubis(2.7.0)。

我似乎無法找到正確的方式來配置httpd.conf文件 - 我找到了在Apache上設置eruby的指南http://www.ruby-doc.org/docs/ProgrammingRuby/html/web.html - 我嘗試使用這些配置設置,重新啓動apache等。 。但RHTML文件不被解析(它只是輸出紅寶石表達是純文本)

添加以下行到httpd.conf文件,但它沒有這樣做anything--

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

我覺得如果我自己安裝eruby,而不是erubis,那會有用。 erubis網站沒有提供任何關於如何啓動和運行的明確示例,除了通過我已經完成的gem安裝之外。

我也嘗試將文件和conf設置從.rhtml更改爲.eruby,以防萬一,並且這也不起作用。

請幫忙!

回答

3

顯然,這種使用嵌入式Ruby的風格不再是要走的路,但我也想運行eruby以及&找到了一種方法來讓erubis通過添加CGI shell腳本來處理.rhtml頁面來傳遞請求的頁面到erubis。我的解決方案在這裏描述:

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


我對的Apache/2.2.22的Ubuntu 12.04 & 的Ruby 1.8.7。我安裝了erubis 2.7.0實現&將可執行文件erubis文件複製到Apache的cgi文件夾,在我的情況下複製到/ usr/lib/cgi-bin/erubis。

我通過將這些指令配置稱爲erubis.sh來處理的.rhtml文件的請求CGI腳本來/etc/apache/httpd.conf:

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

我確信,動作模塊啓用運行以下命令:

$ 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塊的輸出。

+0

如果鏈接失效,您可以總結鏈接中的相關鏈接點嗎? – jonsca 2012-11-25 08:23:28