Я должен перезапускать Apache каждый раз, когда я меняю код Rails - PullRequest
10 голосов
/ 02 февраля 2011

Я использую Rails 3 с Apache и Passenger.С тех пор, как я переключился с Mongrel на Passenger, я обнаружил, что должен перезапускать Apache каждый раз, когда меняю свой код.Это предполагаемое поведение?Единственный способ избежать этой проблемы - использовать Mongrel в разработке?

Ответы [ 2 ]

22 голосов
/ 03 февраля 2011

При условии, что вам нужно перезапустить Apache даже для кода модели / вида / контроллера, может показаться, что вы настроили Passenger для запуска приложения в производственной среде. Вы можете исправить это, добавив RailsEnv development к своему виртуальному хосту.

Некоторый код потребует от вас перезапустить приложение - примеры этого могут быть в config/initializers и vendor.

Существует способ перезапустить приложение (а не весь сервер), которое просто touch tmp/restart.txt. Это обновит отметку времени tmp/restart.txt, что приведет к тому, что Пассажир перезапустит приложение.

Кроме того, вы можете сделать touch tmp/always_restart.txt. Это скажет Пассажиру, чтобы перезапустить приложение при каждой загрузке страницы. Это может быть полезно, если вы работаете с разделами, требующими перезапуска (например, в приведенных выше примерах). Чтобы остановить автоматический перезапуск, вам нужно удалить файл, например: rm tmp/always_restart.txt.

0 голосов
/ 03 февраля 2011

Вы также можете использовать самого пассажира в разработке, используя автономный режим. В каталоге вашего проекта введите

passenger start
...