web-dev-qa-db-ja.com

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

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

8
Jason Swett

Webサーバー環境でRubyコードを実行する最も一般的な方法は、コードにラックインターフェイスを実装させることです。これは、WebサーバーがRubyアプリケーション。Apacheの場合、最も一般的なラックハンドラーはパッセンジャー(別名mod_Railsおよびmod_rack)です。現在のほとんどすべてのRuby Webフレームワーク(Rails、sinatra、campingなど)。 。)ラックハンドラーを使用してウェブサーバーに接続します。これらのフレームワークの1つを使用できますが、フレームワークなしで直接ラックアプリを作成することもできます。すべてRubyアプリケーションサーバー(mongrel、thin、Unicorn、 rainbows、...)ラックインターフェイスを実装します。

もう1つの方法は、(f)cgiを使用することですが、インターフェイスとプロトコルが扱いにくく、最新の管理機能を実際に提供していないため、そのルートには近づかないことをお勧めします。

3
Holger Just

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

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

それがお役に立てば幸いです。

1
carillonator

高速cgiを使用してRubyスクリプトを実行できます。詳細については、 fcgiプロジェクト を参照してください。

1
Vagmi Mudumbai

modruby を試してください。

0
alvosu