2012-05-30 22 views
5

--bundler लोड करने के लिए ऐसी कोई फाइल नहीं मैं nginx पर चल रहे एक रेल आवेदन के लिए एक OSX वेबसर्वर की स्थापना की। जब मैं मैन्युअल रूप से सर्वर प्रारंभ, रेल एप्लिकेशन ठीक काम करता है, लेकिन जब मैं सर्वर को पुनः आरंभ मैं हमेशाnginx, यात्री, रेल:

--bundler लोड करने के लिए मैं यह लगता है कि यात्री त्रुटि संदेश

ऐसी कोई फ़ाइल प्राप्त लॉन्च Daemon मैं मैन्युअल की स्थापना के साथ कुछ करने के लिए है:

# /Library/LaunchDaemons/org.nginx.ngnx.plist 

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>Label</key> 
    <string>nginx</string> 
    <key>UserName</key> 
    <string>MyUser</string> 
    <key>ProgramArguments</key> 
    <array> 
     <string>/usr/local/Cellar/nginx/1.0.11/sbin/nginx</string> 
     <string>-g</string> 
     <string>daemon off;</string> 
    </array> 
    <key>KeepAlive</key> 
    <true/> 
    <key>NetworkState</key> 
    <true/> 
    <key>LaunchOnlyOnce</key> 
    <true/> 
</dict> 
</plist> 

जैसा कि आप देख, मैं MyUser उपयोगकर्ता नाम के रूप में plist में इस्तेमाल करते हैं। nginx सर्वर बूट के बाद शुरू होता है और MyUser के रूप में चलाता है, लेकिन मैं यह त्रुटि संदेश मिलता है।

जब मैं sudo nginx -s stop && nginx सब कुछ का उपयोग कर कमांड लाइन पर उसे पुन: प्रारंभ ठीक काम करता है।

कोई विचार क्यों?

संपादित

मेरी nginx.conf इस तरह दिखता है:

env GEM_HOME=/usr/local/rvm/gems/[email protected]/gems; 
worker_processes 1; 

events { 
    worker_connections 1024; 
} 

http { 
    include mime.types; 
    default_type application/octet-stream; 
    sendfile on; 
    keepalive_timeout  60 60; 
    send_timeout   120; 

    recursive_error_pages on; 

    error_log /var/log/nginx/error.log; 
    access_log /var/log/nginx/access.log; 

    gzip on; 
    gzip_http_version 1.1; 
    gzip_comp_level 4; 
    gzip_proxied any; 
    gzip_vary on; 
    gzip_min_length 1100; 
    gzip_buffers 32 16k; 

    #server_tokens off; 
    tcp_nopush on; 
    tcp_nodelay on; 
    keepalive_requests 0; 

    passenger_default_user eveadmin; 
    passenger_default_group staff; 
    passenger_root /usr/local/rvm/gems/[email protected]/gems/passenger-3.0.12; 
    passenger_ruby /usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby; 


    server { 
    listen 8444; 
    #server_name intranet.local; 
    root /Users/eveadmin/rails/intranet/public; 
    passenger_enabled on; 
    rails_env development; 
    } 
} 

error i get

+0

बंडलर वास्तव में स्थापित है? रुबी कैसे स्थापित है? –

+0

सब कुछ जब मैं स्वयं nginx शुरू करते हैं, समस्या यह है कि nginx सही जब मशीन बूट अप शुरू नहीं करता है काम करता है। तो हाँ, बंडलर स्थापित है। homebrew/rvm का उपयोग कर रूबी स्थापित। – tmaximini

+0

यह एक पर्यावरण मुद्दे की तरह लगता है। आपका nginx.conf कैसा दिखता है? –

उत्तर

0

मेरे 2 सेंट: अपने nginx config में GEM_HOME वातावरण चर सेट करके देखें।

+0

दुर्भाग्य से यह – tmaximini

0

कोशिश सेटिंग passenger_default_user और अपने nginx.conf में passenger_default_group।

डिफ़ॉल्ट मान कोई भी नहीं, अपने मुद्दों का कारण हो सकता है जो है।

अधिक जानकारी के लिए Phusion Passenger users guide का संदर्भ लें।

+0

धन्यवाद में मदद नहीं करता है, लेकिन इससे मदद नहीं मिली, मैंने मूल पोस्ट – tmaximini

+0

में अपना nginx conf अपडेट किया, वास्तव में मुझे nginx लगता है।conf ठीक है क्योंकि अगर मैं मैन्युअल रूप से शुरू करता हूं तो यह काम करता है। मुझे लगता है कि समस्या /Library/LaunchDaemons/org.nginx.ngnx.plist – tmaximini

0

आप sudo का उपयोग करके ऐसी rubygems या बंडलर स्थापित किया? यदि ऐसा है, तो उन्हें स्थानीय रूप से पुनर्स्थापित करने का प्रयास करें।

+0

के कारण है, वे स्थानीय रूप से स्थापित हैं ... – tmaximini

0

मैं बंडलर के साथ भी इस मुद्दे का अनुभव किया है। कुछ वातावरण में, अगर मैं बंडल w/sudo चलाने मैं त्रुटि आप देख रहे हैं मिल जाएगा और अगर मैं इसे w/ओ sudo चलाने तो यह ठीक काम करता है।

मेरा मानना ​​है कि ऐसा इसलिए हो सकता है क्योंकि आपका $PATH और $GEM_HOME वेरिएबल सेट नहीं हैं b/c आपके उपयोगकर्ता के खोल वातावरण (शायद बाश) लोड नहीं होता है। अपने लांच डेमॉन से बाहर

/bin/bash -l -c '/usr/local/Cellar/nginx/1.0.11/sbin/nginx' 

यदि वह काम नहीं करता, तो आप उपयोगकर्ता नाम कुंजी लेने की कोशिश की है और देखो क्या होता: हो सकता है आप कुछ इस तरह करने के लिए अपने आदेश बदलना चाहिए?

+0

धन्यवाद मैं कल कोशिश करूँगा ... – tmaximini

+0

hmm अब जब मैं बूट करता हूं तो nginx शुरू नहीं होता है सर्वर ... – tmaximini

+0

आप एक डेमॉन जोड़ने का प्रयास कर सकते हैं जो/bin/bash -l -c 'echo $ PATH >> somelogfile.log' करता है और लॉग फ़ाइल की सामग्री की जांच करता है –

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