Apacheを介して(必ずしもRailsを使用する必要はありません)Rubyスクリプトを実行するにはどうすればよいですか?


8

ApacheにRubyファイルを解釈させようとしていますが、その方法がわかりません。私は今のところRailsには関心がなく、Rubyにのみ関心があります。私がグーグルによって見つけたものは私を混乱させるだけです。何かアドバイス?

回答:


3

Webサーバー環境でRubyコードを実行する最も一般的な方法は、コードにラックインターフェースを実装させることです。これは、ウェブサーバーがルビーアプリケーションと通信できるようにする非常にシンプルなAPIです。Apacheの場合、最も一般的なラックハンドラーはパッセンジャーです(別名mod_railsおよびmod_rack)。ほとんどすべての現在のRuby Webフレームワーク(レール、シナトラ、キャンプなど)は、ラックハンドラーを使用してWebサーバーに接続します。これらのフレームワークのいずれかを使用できますが、それらなしで直接ラックアプリを作成することもできます。すべてのルビーアプリケーションサーバー(雑種、シン、ユニコーン、レインボーなど)は、ラックインターフェースを実装しています。

別の代替手段は(f)cgiを使用することですが、インターフェイスとプロトコルが扱いにくく、最新の管理機能を実際に提供していないため、そのルートから離れることをお勧めします。


2

私はしばらくの間、この質問に対する簡単な答えを見つけようと努めてきましたが、あなたがしなければならないことは、RubyスクリプトをWebサーバーのcgi-binディレクトリに置き、対応するURLをロードすることだけであると考えました。したがって、たとえば、デフォルトのCentOS 6.2 / httpdインストールでは、hello.rbというスクリプトを/ var / www / cgi-bin /に置き、http://localhost/cgi-bin/hello.rbをブラウザとスクリプトが実行され、STDOUTへの移動(プットなどから)が表示されました。

ここでは、URLが読み込まれるたびにスクリプトが完全に実行されます。これは、大容量のWebサーバーや速度が重要な場合には理想的ではありません。fastCGIのようなものは常にスクリプトを実行し続けますが、それを処理するにはスクリプトを作成する必要があります。

お役に立てば幸いです。



0

modrubyを試してください。


私はそれを試してみました。それは何もしませんでした、そして、もしドキュメントがあれば、彼らはそれを隠すという素晴らしい仕事をしました。
Jason Swett、2011年


それもうまくいきませんでした。Invalid command 'RubyAddPath'これは、これまで誰も行わなかったある種の難解なことですか?PHPと比較して、RubyをApacheで動作させるのがどれほど難しいかに驚いています。
Jason Swett、2011年

「LoadModule ruby​​_module "path_to_mod / mod_ruby.so"
alvosu

追加AddHandler ruby-object .rbxLoadModule ruby_module /path/to/mod_rubyRubyRequire apache/ruby-run、とRubyHandler Apache::RubyRun.instanceするhttpd.confシンプルな構成のための十分なはずです。
クリスS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.