2011-10-23 13 views
6

पर जाकर मैं अपने उत्पादन सर्वर पर आरवीएम से आरबीएनवी में स्थानांतरित हो गया। मैंने "आरवीएम इम्प्लोड" का उपयोग करके आरवीएम को अनइंस्टॉल किया और आरबीएनवी, रूबी 1.9.2, रेल, यात्री और एनजिनक्स-मॉड्यूल स्थापित किया। मैं passenger_root बदलते इस प्रकार से अलग मेरी originlal nginx.conf संशोधित नहीं किया है:आरबीएनवी ब्रेक यात्री (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; 

अब, जब मैं अपने आवेदन मैं error.log में निम्न त्रुटि देख चलाने का प्रयास:

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

यह स्पष्ट रूप से इंगित करता है कि यात्री लॉन्च नहीं हुआ है और मेरे रेल ऐप को पहचाना नहीं गया है। जब मैं मैन्युअल रूप से यात्री प्रारंभ करने का प्रयास है, मैं निम्नलिखित त्रुटि मिलती है:

[ 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' 

मैं स्थापित किया है nokogiri कई बार और मैं अपने मणि सूची में nokogiri देख सकते हैं। मुझे यकीन नहीं है कि आरबीएनवी में क्यों चल रहा है मेरे लिए यात्री टूट गया है। ... इसलिए मैं rbenv हटा दिया और वापस RVM में ले जाया गया

+0

कोई मदद यहाँ? – Ved

+0

वैसे भी, मैंने rbenv को हटा दिया और वापस आरवीएम में ले जाया गया। अच्छा छुटकारा। – Ved

उत्तर

-12

वहाँ यात्री और rbenv (यकीन है कि तुम यह जानते हो इससे पहले कि आप अपने आप को पैर में गोली मार कर) के बीच कोई संगतता हो रहा है आरबीएनवी, nginx और यात्री। कुछ सिस्टम-व्यापी इंस्टॉलेशन के लिए गए हैं। http://blakewilliams.me/blog/4-system-wide-rbenv-install

मैं वर्तमान में मेरे विकास के वातावरण पर परीक्षण कर रहा हूँ तो यह मानकर कि आप rbenv स्थापित करने और अपने .bashrc में सही rbenv init किया है:

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

आप gem install passenger शिम्स प्राप्त करने के लिए आवश्यक है। यात्री स्थापित करने के लिए bundle install करना आपको ये नहीं देगा।

अंत में

:

passenger-config --root 

आप अपने passenger_root पथ देने के लिए और होगा:

rbenv which ruby 

अपने passenger_ruby पथ।

यात्री शिम निष्पादन योग्य को इंगित करता है लेकिन passenger_root फ़ोल्डर के लिए पथ होना चाहिए। मैंने रूबी शिम का उपयोग करने की कोशिश की है लेकिन यह काम नहीं करता है। मैंने अभी तक क्यों खोला नहीं है।

बीटीडब्ल्यू, मेरे पास मेरे जेमफाइल में नोकोगिरी मणि है। ओह, अगर आपके पास .rvmrc और/या config/setup_load_paths.rb है तो इसे यात्री ऑटोलोड्स बंडलर के रूप में निकालने के लिए सुरक्षित होना चाहिए।

मुझे अभी भी इस पर थोड़ा और परीक्षण करने की आवश्यकता है लेकिन अब तक बहुत अच्छा है।

+2

यह सिर्फ गलत है। – briangonzalez

+1

झूठा दावा। यात्री और आरबीएनवी बस ठीक काम करता है। – gdurelle

19

यह उपयोग करना संभव है -

+0

मैंने लिंक को हाल ही में ब्लॉग पोस्ट में बदल दिया है, लेकिन मैंने पुष्टि नहीं की है कि यह काम करता है। अगर कोई पुष्टि करता है, तो मुझे बताएं। – PhilT

+1

आरबीएनवी के लिए "समर्थन" ऐसा लगता है कि यह आरबीएनवी की वास्तविक कार्यक्षमता का समर्थन करेगा, जो कि प्रत्येक रूबी अनुप्रयोग के लिए अलग रूबी बाइनरी है, और इसे चुनने के लिए प्रत्येक एप्लिकेशन की कॉन्फ़िगरेशन का उपयोग करें। आपको मैन्युअल रूप से rbenv को बाईपास करना होगा और यात्री को एक विशिष्ट रूबी बाइनरी के साथ कॉन्फ़िगर करना होगा, और आप केवल यात्री के लिए एक रूबी बाइनरी निर्दिष्ट कर सकते हैं। @Ved अनिवार्य रूप से सही है, यह समर्थित नहीं है। लेकिन न तो आरवीएम है। –

संबंधित मुद्दे