2011-02-02 64 views
10

Tôi đang chạy Rails 3 với Apache và Hành khách. Kể từ khi tôi chuyển từ Mongrel sang Hành khách tôi thấy rằng tôi phải khởi động lại Apache mỗi lần tôi thay đổi mã của mình. Đây có phải là hành vi dự định không? Là cách duy nhất để tránh vấn đề này khi sử dụng Mongrel trong quá trình phát triển?Tôi phải khởi động lại Apache mỗi khi tôi thay đổi mã Rails

+0

Điều này có hữu ích không: http://stackoverflow.com/questions/1106996/why-do-i-have-to-restart-apache-to-properly-refresh-a-ruby-on-rails-view-in -the-b và phần cuối cùng của http://blog.bsodmike.com/2010/06/05/howto-ruby-on-rails-with-apache-passenger-mod_rails-ubuntu-lucid-lynx-10-04/ – Zabba

+0

Bạn đang nói về sản xuất hay phát triển? –

+0

Tôi không biết - Tôi cũng đang gặp sự cố khi kiểm soát việc tôi đang sản xuất hay phát triển. –

Trả lời

21

Giả sử bạn phải khởi động lại Apache ngay cả đối với mã mô hình/xem/điều khiển, nó sẽ có vẻ như nếu bạn đã thiết lập hành khách để chạy ứng dụng của bạn trong môi trường sản xuất. Bạn có thể sửa lỗi này bằng cách thêm RailsEnv development vào máy chủ ảo của mình.

Một số mã sẽ yêu cầu bạn phải khởi động lại ứng dụng - ví dụ về điều này là bất cứ điều gì trong config/initializersvendor.

Có cách để chỉ khởi động lại ứng dụng (và không phải toàn bộ máy chủ), chỉ đơn giản là touch tmp/restart.txt. Điều này sẽ cập nhật dấu thời gian của tmp/restart.txt, điều này sẽ kích hoạt Hành khách khởi động lại ứng dụng.

Ngoài ra, bạn có thể làm touch tmp/always_restart.txt. Điều này sẽ cho Hành khách khởi động lại ứng dụng trên mỗi lần tải trang. Điều này có thể hữu ích nếu bạn đang làm việc trên các phần yêu cầu khởi động lại (chẳng hạn như các ví dụ được đề cập ở trên). Để ngừng tự động khởi động lại, bạn sẽ phải xóa tệp, như sau: rm tmp/always_restart.txt.

+0

Đúng, "' touch tmp/restart.txt' "thực hiện thủ thuật cho tôi! –

+0

Tôi đã bỏ lỡ 'tmp/always_restart.txt', tốt hơn rất nhiều so với việc gõ thủ công' restart.txt' mỗi lần. – joemaller

0

Bạn cũng có thể tự sử dụng hành khách bằng cách sử dụng chế độ độc lập. Từ thư mục dự án của bạn, loại

 
passenger start 
Các vấn đề liên quan