2011-10-24 8 views
2

私はapache2にルビスクリプトを実行させたいと思います。私はCGIを使ってこれを行うことができましたが、今はもう一歩進んでmod_rubyを使ってやりたいと思います。私はapt-getを使ってmod_rubyをインストールしたので、有効になっているはずですが、http://localhost/test.rbにアクセスすると、出力を表示する代わりにブラウザがファイルをダウンロードします。Apache2は.rbファイルを実行しません(mod_ruby)

私が/etc/apache2/mods-enabled/ruby.loadを開くと、このmodのパスを含む行があります。

私はまた、次は私のapache2.confに並ぶ追加:

<IfModule mod_ruby.c> 
    <Directory /var/www/> 
    Options +ExecCGI 
    </Directory> 
    RubyRequire apache/ruby-run 
    #RubySafeLevel 0 
    <Files *.rb> 
    SetHandler ruby-object 
    RubyHandler Apache::RubyRun.instance 
    </Files> 
    <Files *.rbx> 
    SetHandler ruby-object 
    RubyHandler Apache::RubyRun.instance 
    </Files> 
</IfModule> 

あなたは私を助けてくださいことはできますか?

PS。 RORを使って提案しないでください。私はそれに精通しています。今は教育的な理由から、ルビーを使いたいだけです。また、物事をシンプルにしておいてください。私はapacheの初心者です。

+0

あなたはmod_rubyがロードされるべきだと言っていますが、 '/ etc/apache2/mods-enabled/ruby​​.load'にリンクがあり、' mods- available' – Slartibartfast

+0

mod_ruby.soを指す同じ行のruby.loadファイル(mods-enabledとmods-availableの両方)があります。 - 彼らが指すディレクトリに存在することを確認しました。 – gisek

答えて

2

this articleを参照してください - いくつかの指示があります。基本的には、Rubyファイルをハンドラを通して渡すようにApacheに指示する必要があります。

さらに、Sinatraを試してみることをお勧めします。これは、単純なルビファイルと同じくらい簡単なマイクロウェブフレームワークです。そしてそれはPassengerで実行されます。これはとよく分かります。 Apache用のRubyモジュールです。

+0

私はdebianを使っていますので、mod_rubyをapt-getでインストールするだけで充分です。私はまた、その記事に記載されている行をapache2.confに追加しようとしました – gisek

+0

Sinatraを使うと、すべてが簡単になりました。 – gisek

1

向けHowtoForge上の記事は、ほぼ全体的な話をカバーしていますが、私は、ファイルのダウンロードからブラウザを防ぐために<Directory /var/www>ディレクティブ内の1行を追加する必要:ここ

AddType text/html .rb .rbx 

は私が役に立ったと評価していカップルより多くのサイトがあります:

関連する問題