2015-01-30 15 views
36

एक अजीब समस्या होने और मदद की ज़रूरत है।उत्पादन सर्वर पर रेल 4 कंसोल शुरू नहीं कर सकते

मैं एक उत्पादन सर्वर पर रेल कंसोल शुरू करने की कोशिश कर रहा हूं और यह रेल सी कमांड की तरह काम कर रहा है।

एफडब्ल्यूआईडब्ल्यू, मैं 4 साल के लिए रेल डेवलपर रहा हूं और बिना किसी मुद्दे के अन्य सर्वरों पर इसे हर समय करता हूं। इस सर्वर पर, मैं बिना किसी समस्या के डेटाबेस को बीज, बना, माइग्रेट कर सकता हूं (RAILS_ENV = उत्पादन का उपयोग कर), और ऐप किसी भी मुद्दे के बिना ठीक काम करता है।

सेटअप:

Ubuntu 14.04 (racksapce 2 जनरल प्रदर्शन 1 सर्वर)
साथ यात्री Nginx (मैं आम तौर पर यूनिकॉर्न उपयोग करें, लेकिन क्षुधा में से किसी पर एक समस्या थी कभी नहीं किया है मैं के साथ यात्री तैनात किया है)
रूबी 2.1.5 (rvm का प्रयोग करके)
रेल 4.1.7
Postgres
Capistrano 3

(rvm, माइग्रेशन, परिसंपत्ति precompilation, आदि एक्सटेंशन का उपयोग)

मैं क्या कोशिश की है: एप्लिकेशन निर्देशिका में

सीडी:

cd /home/deployer/app_name/current 

कौन सा .rvmrc लोड करता है और पता चलता है कि मैं सही gemset में हूँ, बस के लिए kicks बंडल भाग गया।

rails c production # (which usually works no problem) 

bundle exec rails c production # (sometimes have to do this on older apps that do not have the newer capistrano 3 and rvm setup) 

rails c production RAILS_ENV=production # (getting desperate here) 

RAILS_ENV=production rails c production # (haha, surely this won't work, but out of options) 

RAILS_ENV=production bundle exec rails console 

हर बार, मैं एक सूचना है कि निकलता है 'रेल ग' मान्य आदेश नहीं है मिलती है:

Usage: 
    rails new APP_PATH [options] 

Options: 
    -r, [--ruby=PATH]          # Path to the Ruby binary  of your choice 

..... yada yada, shows the rest of the rails options (oddly enough does not show 'c' or 'console' as options?) 

फिर से, मैं दोनों nginx/अपाचे पर उत्पादन शान्ति के सैकड़ों के साथ तैनात में लॉग इन किया है यूनिकॉर्न और पैसेंजर के ज्यादातर पुराने संस्करणों के पुराने और नए संस्करण।

यह पहली बार है जब मैंने कभी यह संदेश प्राप्त कर लिया है, और कंसोल केवल एक चीज है जो टूटा हुआ प्रतीत होता है - बाकी सब ठीक काम करता है! ऐप लाइव है और बहुत अच्छा काम करता है।

मुझे पता है कि सुझाव देने वाली पहली बात यह है कि मैं ऐप निर्देशिका से रेल सी उत्पादन नहीं चला रहा हूं - मैंने कम से कम 10 बार सही निर्देशिका में सीडी किया है और मैन्युअल रूप से सही रत्न लोड किया है, यह नहीं है समस्या।

यह पता नहीं लगा सकता कि यह विकास में ठीक क्यों काम करता है, लेकिन उत्पादन में नहीं। मुझे पता है कि कुछ देर पहले एक स्क्रिप्ट निर्देशिका थी (शायद रेल 2?) - क्या अभी भी एक निर्देशिका है जिसमें रेल के लिए स्क्रिप्ट कमांड शामिल हैं जो दूषित हो सकते हैं?

क्या किसी ने कभी इसका अनुभव किया है या कोई सुझाव है?

मुझे लगता है कि मुझे कुछ याद आ रहा है।

+0

क्या अन्य आदेश अपेक्षित काम कर रहे हैं? ('रेल सर्वर '...) रेल क्या करता है -v आपको बताता है? क्या यह 4.1.7 है? – wpp

+0

नहीं, रेल और रेल सर्वर दोनों ऊपर वर्णित "उपयोग:" संदेश प्रदर्शित करते हैं। और रेल-वी रिटर्न: रेल 4.1.7 – johndavid400

उत्तर

64

ठीक है, इस मुद्दे को मिला ... @stoodfarback बहुत करीब था, लेकिन मैं सोचा कि इस मुद्दे का कारण उन लोगों के लिए जरूरी है जो एक ही चीज़ का सामना कर सकते हैं।

असल में मैं कैपिस्ट्रानो (3.3.5) का एक नया संस्करण उपयोग कर रहा हूं, जैसा कि मैंने अतीत में उपयोग किया है और यह (डिफ़ॉल्ट रूप से) साझा निर्देशिकाओं की सूची में 'बिन' जोड़ता है जो प्रत्येक तैनाती पर सिम्लिंक करता है।

set :linked_dirs, fetch(:linked_dirs, []).push('bin', 'log', 'tmp', 'public/system', "public/downloads", "public/assets") 

तो तैनाती स्क्रिप्ट साझा बुलाया बिन (जो खाली था) और शुरू करने के लिए रेल सर्वर और कंसोल लापता थे उपयोग की गई फ़ाइलों में एक नया निर्देशिका बनाया। वे अभी भी विकास में थे, इसलिए यह केवल उत्पादन को प्रभावित करता था।

linked_dirs सूची से 'बिन' हटा दिया गया और सबकुछ अब अपेक्षित रूप से काम करता है।

अब लगता है कि:

set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp', 'public/system', "public/downloads","publ ic/assets") 

मैं linked_dirs रहता है बहुत कुछ बदल के लिए Capistrano के अंतिम कुछ संस्करणों है कि मैं का इस्तेमाल किया है, प्रारूप और चूक पर ध्यान दिया है, लेकिन मुझे लगता है कि में बिन कभी नहीं देखा था सूची। वास्तव में यह सुनिश्चित नहीं है कि बिन को सिम्लिंक होने की आवश्यकता क्यों होगी ... इसमें केवल डिफ़ॉल्ट रेल फाइलें हैं और मैं नहीं सोच सकता कि उन्हें स्रोत नियंत्रण से क्यों हटाया जाना चाहिए, लेकिन शायद कैपिस्ट्रानो टीम का एक कारण है।

उम्मीद है कि यह किसी की मदद करेगा।

+4

इसके लिए धन्यवाद, बहुत उपयोगी स्पष्टीकरण! –

+1

शानदार! धन्यवाद। – oct4th

2

चेक आप इन फ़ाइलों से कोई भी और उन्हें हटाने की कोशिश करता है, तो:

  • script/rails
  • bin/rails
+0

कोई स्क्रिप्ट निर्देशिका नहीं है और बिन निर्देशिका खाली है। – johndavid400

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