Railsに独自のサーバ(Mongrel、WEBrick、mod_railsなど)が必要な理由を説明することができるので、これは愚かな質問のように聞こえるのはごめんなさい。単にmod_rubyを使うことはできませんか?なぜmod_rubyでRailsを使用できないのですか?
答えて
mod_rubyを実行しているすべてのApacheインスタンスは、Rubyインタプリタを共有します。これは、共有ホスト上、またはマシンごとに複数のRailsアプリケーションが実行されている環境では、まったく使用できないことを意味します。 1つのマシン上で同じアプリケーションの複数のコピーを実行することは可能かもしれませんが、バグを追跡するのが容易ではありません。レールはシングルスレッドなので、1台のマシンにつき1つのルビプロセスを実行することは考えられないことです。
また、それをすべて実行するわけではありません。より多くの深さでの議論については
、チェックアウトthis Phusion employee's blog
「mod_rubyとは、名前空間内のすべてのお互いの上にそのアプリの 散歩を意味し、Apacheプロセスごとに通訳を使用しています。少なくとも、Railsのために、それは 許容できないのですしたがって、mod_rubyが必要な場合は、Apacheの設定ごとに1アプリです。 " - あなたはまだ彼らのホスティング環境にルビーを含めるようにしようとしなかったmod_ruby FAQ
Dreamhostをチェックアウトし、それを使用したい場合には、いくつかを揶揄されていますことを今David Heinemeier Hansson
、このこの努力から彼らの結論に自分のブログから。
mod_rubyは共有Rubyインタプリタを生成するとの回答がありましたが、これは特に問題となるのは、クラスが相互に絡み合うということです。たとえば、特定のデータベースへの接続を定義するActiveRecord :: Baseを考えてみましょう。このクラスの状態は、さまざまなRailsアプリケーションによって異なります。そのため、同じインタプリタで複数のRailsアプリケーションを実行すると、深刻なクラスの戦いが発生します。
もう1つの答えは、Railsはシングルスレッドであると述べましたが、これはRails 2.2.2では必ずしも当てはまりません。私はその答えにコメントとしてこれを残したいが、私はカルマstraitjacketにいる:)
- 1. RailsでRecord.all.destroyを使用できないのはなぜですか?
- 2. railsコンソールでpluralizeメソッドを使用できないのはなぜですか?
- 3. なぜcodeigniterでinsert_batchを使用できないのですか?
- 4. なぜコルーチンをrun_in_executorで使用できないのですか?
- 5. なぜReact.jsで `debugger`を使用できないのですか
- 6. なぜAsync.Stdを使用できないのですか?
- 7. なぜscipy.ioを使用できないのですか?
- 8. なぜcharポインタを使用できないのですか?
- 9. 「?」を使用できないのはなぜですか?オペレーター?
- 10. strerrorを使用できないのはなぜですか?
- 11. $ session_start()を使用できないのはなぜですか?
- 12. 「TermDocumentMatrix」を使用できないのはなぜですか?
- 13. なぜPaypal Adaptive Paymentsを使用できないのですか?
- 14. なぜ私はasfreq()を使用できないのですか?
- 15. KeyError: 'name'なぜ 'name'を使用できないのですか?
- 16. CSSの変数 - なぜ使用できないのですか?
- 17. なぜ、ランタイムエラーなしでResources.getSystem()を使用できないのですか?
- 18. 特殊なパラメータでenable_ifを使用できないのはなぜですか?
- 19. Gmailで修正できないのはなぜですか:フィールドからRailsアクションメーラー
- 20. モデルをPostgreSQLデータベースにRailsで保存できないのはなぜですか?
- 21. Rails/RSpecがテストで&をレンダリングできないのはなぜですか?
- 22. AndroidでHTTPSでInputStreamを使用できないのはなぜですか?
- 23. three.jsでポイントライトでシャドウを使用できないのはなぜですか?
- 24. C#でxUnitでドットネットを使用できないのはなぜですか
- 25. StyleCopルールで#regionをコードで使用できないのはなぜですか?
- 26. JavascriptのStrictモードでなぜwithステートメントを使用できないのですか?
- 27. EstimateItemSizeでUICollectionViewFlowLayoutのreferenceSizeForFooterInSectionを使用できないのはなぜですか?
- 28. JPanelのArrayListでsetLayoutメソッドを使用できないのはなぜですか?
- 29. javascriptのオブジェクトリテラルでプロトタイプを使用できないのはなぜですか?
- 30. swtoのStringで.toInt()を使用できないのはなぜですか?