2011-10-23 29 views
6

Tôi chuyển từ RVM sang rbenv trên máy chủ sản xuất của mình. Tôi gỡ cài đặt rvm bằng cách sử dụng "rvm implode" và cài đặt rbenv, ruby ​​1.9.2, đường ray, hành khách và mô-đun nginx. tôi đã không sửa đổi nginx.conf originlal của tôi ngoài việc thay đổi passenger_root như sau:Di chuyển đến rbenv vi phạm hành khách (nginx)

1st Try: 
passenger_root /root/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/passenger-3.0.9; 
passenger_ruby /root/.rbenv/versions/1.9.2-p290/bin/ruby; 
2nd Try: 
passenger_root /root/.rbenv/shims/passenger; 
passenger_ruby /root/.rbenv/shims/ruby; 

Bây giờ, khi tôi cố gắng để chạy ứng dụng của tôi, tôi thấy lỗi sau đây trong error.log:

[error] 1291#0: *105 open() "/home/passenger/grabber/current/public/view" failed (2: No such file or directory) 

Điều này cho thấy rõ ràng rằng hành khách chưa khởi chạy và ứng dụng đường ray của tôi không được nhận dạng. Khi tôi cố gắng bằng tay bắt đầu hành khách, tôi nhận được lỗi sau:

[ pid=17605 thr=70022120 file=utils.rb:176 time=2011-10-23 23:40:41.917 ]: *** Exception LoadError in PhusionPassenger::Rack::ApplicationSpawner (libruby.so.1.9: cannot open shared object file: No such file or directory - /home/passenger/grabber/shared/bundle/ruby/1.9.1/gems/nokogiri-1.5.0/lib/nokogiri/nokogiri.so) (process 17605, thread #<Thread:0x858e7d0>): 
from /home/passenger/grabber/shared/bundle/ruby/1.9.1/gems/activesupport-3.0.9/lib/active_support/dependencies.rb:239:in `require' 

Tôi đã cài đặt nokogiri nhiều lần và tôi có thể thấy nokogiri trong danh sách đá quý của tôi. Tôi không chắc tại sao chuyển đến rbenv đã làm hỏng hành khách đối với tôi.

+0

Mọi trợ giúp ở đây? – Ved

+0

Dù sao, tôi đã xóa rbenv và chuyển về RVM. Tốt riddance. – Ved

Trả lời

-12

Có vẻ là không có khả năng tương thích giữa hành khách và rbenv (chắc chắn rằng bạn biết điều này trước khi bạn bắn mình trong bàn chân) - vì vậy tôi bỏ rbenv và chuyển về RVM ...

+2

Điều này chỉ là sai. – briangonzalez

+1

Xác nhận sai. hành khách và rbenv hoạt động tốt. – gdurelle

19

Có thể sử dụng rbenv, nginx và hành khách. Một số đã đi cho một cài đặt trên toàn hệ thống. http://blakewilliams.me/blog/4-system-wide-rbenv-install

Tôi hiện đang thử nghiệm trên môi trường phát triển của tôi như vậy, giả sử bạn đã cài đặt rbenv và có rbenv init đúng trong .bashrc của bạn:

gem install passenger 
rbenv rehash 
sudo bash -c "source ~/.bashrc && passenger-install-nginx-module" 

Bạn phải gem install passenger để có được những miếng chêm. Làm bundle install để cài đặt hành khách sẽ không cung cấp cho bạn những điều này.

Cuối cùng:

passenger-config --root 

sẽ cung cấp cho bạn con đường passenger_root bạn và:

rbenv which ruby 

đường passenger_ruby của bạn.

Điểm tạm dừng hành khách cho điểm thực thi nhưng passenger_root phải là đường dẫn đến thư mục. Tôi đã cố gắng sử dụng shim ruby ​​nhưng nó không hoạt động. Tôi chưa hiểu tại sao.

BTW, tôi có đá quý nokogiri trong Gemfile của mình. Oh, cũng nếu bạn có .rvmrc và/hoặc config/setup_load_paths.rb, bạn nên an toàn để loại bỏ chúng dưới dạng gói tự động tải hành khách.

Tôi vẫn cần thử nghiệm thêm một chút về điều này nhưng cho đến nay vẫn tốt.

+0

Tôi đã thay đổi liên kết đến bài đăng blog gần đây nhưng tôi chưa xác nhận nó hoạt động. Nếu có ai xác nhận, hãy cho tôi biết. – PhilT

+1

"Hỗ trợ" cho rbenv có vẻ như nó sẽ hỗ trợ chức năng thực sự của rbenv, là có các mã nhị phân ruby ​​khác nhau cho từng ứng dụng Ruby và sử dụng cấu hình của mỗi ứng dụng để chọn nó. Bạn phải tự bỏ qua rbenv và cấu hình Hành khách với một nhị phân Ruby cụ thể và bạn chỉ có thể chỉ định một nhị phân ruby ​​cho tất cả Hành khách. @Ved về cơ bản là chính xác, nó không được hỗ trợ. Nhưng không phải là rvm. –

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