2012-05-21 37 views
5

Tôi nghĩ mình sẽ làm một điều đơn giản nhưng có khả năng rất hữu ích và tạo một liên kết tượng trưng khác được gọi là live, trỏ đến bản phát hành tùy ý và để dòng hiện tại ở đầu thường:dàn dựng và ứng dụng trực tiếp với capistrano

20120519235508 
20120521004833 
20120521024312 <-- live 
20120521025150 
20120521030449 <-- current 

sau đó tôi cấu hình www.mysite.com để đạt

live/public 

và stage.mysite.com để đạt

current/public 

Thật không may cả hai máy dường như chạy cùng một ứng dụng và không phải 2 ứng dụng khác nhau. Tôi đã xác nhận httpd.conf có cài đặt chính xác và đã khởi động lại nó. Tuy nhiên không có thay đổi, cả hai đều đang chạy cùng một ứng dụng, ứng dụng được tham chiếu bởi hiện tại/công khai là chính xác.

Tôi không biết mình có cài đặt sai hay không, nếu điều gì khác cần được khởi động lại hoặc nếu điều này không thể hoạt động như tôi tưởng tượng. Tôi đang sử dụng hành khách.

Ai đó có thể làm sáng tỏ chủ đề này, vì cấu hình này sẽ rất hữu ích đối với tôi đối với nhiều dự án.

Trả lời

12

Thay vì tạo một liên kết tượng trưng khác trong thư mục bản phát hành, tôi khuyên bạn nên sử dụng phần mở rộng nhiều tầng. Với tiện ích mở rộng này, bạn có thể xác định các giai đoạn khác nhau và thêm cấu hình tùy chỉnh cho chúng. Vì vậy, thay vì sử dụng một thư mục triển khai cho cả dàn dựng và sản xuất, hãy sử dụng một thư mục riêng biệt cho nhau.

Thêm những dòng này để deploy.rb:

require "capistrano/ext/multistage" 

set :stages, ["staging", "production"] 
set :default_stage, "staging" 

Tháo biến deploy_to từ deploy.rb. Sau đó tạo một thư mục triển khai bên trong cấu hình có các tệp có tên sân khấu. Trong trường hợp này: deploy/staging.rb và deploy/production.rb. Nội dung của staging.rb:

set :rails_env, "staging" 
set :deploy_to, "staging/capistrano" 

Và tương tự cho production.rb:

set :rails_env, "production" 
set :deploy_to, "production/capistrano" 

Dĩ nhiên thay đổi đường dẫn trong deploy_to. Sau đó, trỏ staging.example.com đến staging/capistrano/current/public và www.example.com đến production/capistrano/current/public.

Để thực hiện triển khai dàn dựng, hãy thực hiện cap staging deploy hoặc đơn giản cap deploy (hãy nhớ, dàn dựng được đặt thành mặc định trong deploy.rb) và cap production deploy để triển khai sang sản xuất.

+0

Gergo, đây hoàn toàn là cách để đi. Cảm ơn vì điều này. Tôi cũng đã giải quyết vấn đề trên btw, đó là vì PassengerAppRoot trong tệp .htaccess. – pixelearth

+0

có vẻ như bạn không đề cập đến việc tôi phải cài đặt đá quý capistrano-ext? – pixelearth

+0

Có thể. Nó đã có sẵn trên hệ thống của tôi (OS X) khi tôi bắt đầu sử dụng nó, tôi không nhớ tôi đã phải cài đặt nó bằng tay. –

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