ApacheにRubyファイルを解釈させようとしていますが、その方法がわかりません。私は今のところRailsには関心がなく、Rubyにのみ関心があります。私がグーグルによって見つけたものは私を混乱させるだけです。何かアドバイス?
ApacheにRubyファイルを解釈させようとしていますが、その方法がわかりません。私は今のところRailsには関心がなく、Rubyにのみ関心があります。私がグーグルによって見つけたものは私を混乱させるだけです。何かアドバイス?
回答:
Webサーバー環境でRubyコードを実行する最も一般的な方法は、コードにラックインターフェースを実装させることです。これは、ウェブサーバーがルビーアプリケーションと通信できるようにする非常にシンプルなAPIです。Apacheの場合、最も一般的なラックハンドラーはパッセンジャーです(別名mod_railsおよびmod_rack)。ほとんどすべての現在のRuby Webフレームワーク(レール、シナトラ、キャンプなど)は、ラックハンドラーを使用してWebサーバーに接続します。これらのフレームワークのいずれかを使用できますが、それらなしで直接ラックアプリを作成することもできます。すべてのルビーアプリケーションサーバー(雑種、シン、ユニコーン、レインボーなど)は、ラックインターフェースを実装しています。
別の代替手段は(f)cgiを使用することですが、インターフェイスとプロトコルが扱いにくく、最新の管理機能を実際に提供していないため、そのルートから離れることをお勧めします。
私はしばらくの間、この質問に対する簡単な答えを見つけようと努めてきましたが、あなたがしなければならないことは、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のようなものは常にスクリプトを実行し続けますが、それを処理するにはスクリプトを作成する必要があります。
お役に立てば幸いです。
高速なcgiでRubyスクリプトを実行できます。詳細については、fcgiプロジェクトを参照してください。
modrubyを試してください。
Invalid command 'RubyAddPath'
これは、これまで誰も行わなかったある種の難解なことですか?PHPと比較して、RubyをApacheで動作させるのがどれほど難しいかに驚いています。
AddHandler ruby-object .rbx
、LoadModule ruby_module /path/to/mod_ruby
、RubyRequire apache/ruby-run
、とRubyHandler Apache::RubyRun.instance
するhttpd.conf
シンプルな構成のための十分なはずです。