Я должен перезапустить Apache каждый раз, когда я меняю код Rails

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

Ответ 1

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

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

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

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

Ответ 2

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

passenger start