0

ApacheWebサーバーで.rhtmlファイルを処理するように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ファイルが解析されていません(Ruby式をフラットテキストとして出力しているだけです)

httpd.confファイルに次の行を追加しましたが、何もしませんでした-

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

erubisではなくeruby自体をインストールする場合は、それでうまくいくと思います。erubisのWebサイトには、私がすでに行ったgemを介してインストールする以外に、これを起動して実行する方法に関する明確な例はありません。

また、念のため、ファイルとconfの設定を.rhtmlから.erubyに変更してみましたが、それも機能しませんでした。

助けてください!

4

1 に答える 1

3

どうやら、組み込み Ruby を使用するこのスタイルはもはや進むべき道ではありませんが、私は eruby も実行したかったので、要求されたページを erubis に渡す CGI シェル スクリプトを追加することで、erubis が .rhtml ページを処理できるようにする 1 つの方法を見つけました。私の解決策はここで説明されています:

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


Ubuntu 12.04Ruby 1.8.7Apache/2.2.22があります。erubis 2.7.0実装をインストールし、実行可能な erubis ファイルを Apache の cgi フォルダー (私の場合は /usr/lib/cgi-bin/erubis) にコピーしました。

これらのディレクティブを /etc/apache/httpd.conf に追加して、.rhtml ファイルの要求を処理する erubis.sh という名前の CGI スクリプトを構成しました。

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

次のコマンドを実行して、Action モジュールが有効になっていることを確認しました。

$ sudo a2enmod action

Ruby が埋め込まれたページのリクエストを処理するために、この bash シェル スクリプトerubis.shを作成しました。

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

最小限の http ヘッダーを出力してから、埋め込まれた Ruby を含む要求された .rhtml ファイルを処理するよう erubis に要求します。埋め込まれた Ruby ブロックの出力を適切な場所に取得するには、Stdout 拡張オプションが必要であると思われました。

于 2012-11-25T07:59:31.470 に答える