2011-02-02 26 views
10

ApacheとPassengerでRails 3を実行しています。 MongrelからPassengerに切り替わって以来、コードを変更するたびにApacheを再起動する必要があることがわかりました。これは意図された動作ですか?この問題を回避して開発中にMongrelを使用する唯一の方法はありますか?私はRailsコードを変更するたびにApacheを再起動する必要があります

+0

これは役立ちますか?http://stackoverflow.com/questions/1106996/why-do-i-have-to-restart-apache-to-properly-refresh-a-ruby-on-rails-view-in -the-bと最後の部分はhttp://blog.bsodmike.com/2010/06/05/howto-ruby-on-rails-with-apache-passenger-mod_rails-ubuntu-lucid-lynx-10-04です/ – Zabba

+0

あなたは生産や開発について話していますか? –

+0

私には分かりません - 私は生産中であるか開発中であるかを制御することにも問題があります。 –

答えて

21

あなたもモデル/ビュー/コントローラのコードは、Apacheを再起動する必要が仮定すると、本番環境でアプリケーションを実行するために旅客を設定しているかのように、それは思われます。これを修正するには、RailsEnv developmentを仮想ホストに追加します。

一部のコードでは、アプリを再起動する必要があります。この例は、config/initializersvendorのいずれかです。

アプリ(サーバー全体ではありません)を再起動する方法があります。これは単にtouch tmp/restart.txtです。これにより、tmp/restart.txtのタイムスタンプが更新され、Passengerがアプリを再起動します。

さらに、touch tmp/always_restart.txtを実行できます。これは、ページロードごとにでアプリを再起動するように旅客に指示します。これは、再起動が必要なセクションで作業している場合(上記の例など)に便利です。自動再起動を停止するには、ファイルを削除する必要があります(例:rm tmp/always_restart.txt)。

+0

ええ、「touch tmp/restart.txt'」は私のためのトリックです! –

+0

私は 'tmp/always_restart.txt'を見逃していました。毎回手動で' restart.txt 'を押すよりはるかに優れていました。 – joemaller

0

また、スタンドアロンモードを使用した開発では、旅客を単独で使用することもできます。プロジェクトディレクトリから、タイプ

 
passenger start 
関連する問題