2011-09-30 11 views
14

बल्कि मुझे लगता है कि एक साधारण सवाल है, क्या आपके वेबसर्वर पर nginx पहले से स्थापित होने पर यात्री स्थापित करना संभव है?जब यात्री Nginx पहले से स्थापित है तो यात्री स्थापित करना; मुमकिन?

इस क्षण मैं पहले से ही nginx (मेरी पीएचपी अनुप्रयोगों के लिए) स्थापित किया है पर और अगले मैं यात्री की Git भंडार का एक चेकआउट किया:

अगर जवाब हाँ है, मैं पहले से ही इन कार्यों का प्रदर्शन किया

mkdir /repositories 
cd /repositories/ 
git clone https://github.com/FooBarWidget/passenger.git 
cd passenger/ 

और फिर /etc/nginx/conf/nginx.conf

http { 
     ... 
     passenger_root /repositories/passenger; 
     passenger_ruby /usr/local/rvm/wrappers/ruby-1.9.2-p290/ruby; 
     ... 
    } 

हालांकि करने के लिए इस स्निपेट जोड़ने जब मैं nginx मैं निम्नलिखित त्रुटि मिलती है पुनः आरंभ करना चाहते हैं:

* Starting Web Server nginx 
nginx: [emerg] unknown directive "passenger_root" in /etc/nginx/nginx.conf:19 

कौन सा मुझे निष्कर्ष निकाला है कहने के लिए अभी भी कुछ config मैं निर्धारित करने की आवश्यकता, के लिए nginx ध्यान रखें कि हम यात्री का उपयोग कर रहे हो करने के लिए नहीं है।

मेरे सर्वर ब्लॉक

server { 
    listen 80; 
    server_name rails.kreatude.com; 
    root /srv/www/my_test_app; 
    passenger_enabled on; 
} 

उत्तर

17

मुझे लगता है कि तुम्हारी समस्या है कि यात्री मॉड्यूल nginx में मौजूद नहीं है।

आपके द्वारा वर्णित सभी यात्री आश्रित निर्देश (passenger_root, passenger_ruby, passenger_enabled) केवल तभी उपलब्ध होते हैं जब यात्री मॉड्यूल से nginx में संलग्न होता है। यही कारण है कि आपको --add-module='/path/to/passenger-3.0.9/ext/nginx' के साथ nginx संकलित करना है।

दुर्भाग्यवश, मुझे nginx को पुन: इंस्टॉल किए बिना यात्री मॉड्यूल को सक्षम करने के लिए किसी भी विधि की जानकारी नहीं है। लेकिन, http://wiki.nginx.org/Modules के अनुसार, "संकलन समय पर Nginx मॉड्यूल का चयन किया जाना चाहिए।", इसलिए ऐसा कोई मौका हो सकता है कि ऐसा करने का कोई तरीका न हो।

+0

के साथ एक लूप समय खोज के बाद, यह समाधान है! tks –

-3

सर्वर, http, या स्थान ब्लॉक में passenger_enabled on;

http://modrails.com/documentation/Users%20guide%20Nginx.html#_important_deployment_options

+0

यह काफी समाधान नहीं है।मेरे पास उस वक्तव्य के साथ एक सर्वर ब्लॉक है (मैंने अपडेट किया है) उस ब्लॉक के साथ उस ब्लॉक – Ayrton

2

यात्री दस्तावेज़ों में अध्याय "Generic installation, upgrade and downgrade method: via RubyGems" इस पर चर्चा करता है। असल में, एक बार पैसेंजर मणि स्थापित होने के बाद, nginx को फिर से सम्मिलित करने की आवश्यकता होती है (और फिर यदि कोई मौजूद है तो yum/apt-get-install nginx के बजाय उपयोग किया जाता है)। यात्री का संकलन/कॉन्फ़िगरेशन उपयोगिता "यात्री-इंस्टॉल-nginx-module" यह आपके लिए करता है (यह यात्री मणि का हिस्सा है), और इसमें स्वचालित रूप से यात्री के लिए आवश्यक स्विच शामिल हैं। यह आपको अपने स्वयं के स्विच जोड़ने का विकल्प भी देता है (जैसे अतिरिक्त मॉड्यूल के लिए, या एनजीआईएनएक्स की अंतर्निर्मित सुविधाओं को सक्षम/अक्षम करने के लिए)।

0

मैं आयन-br के जवाब की पुष्टि, मैं समस्याओं का एक ही तरह का सामना करना पड़ रहा हूँ और PhusionPassenger की साइट राज्यों:

Before you begin, you should know that installing Passenger in its Nginx integration mode involves extending Nginx with code from Passenger. However, Nginx does not support loadable modules. This means that in order to install Passenger's Nginx integration mode, it is necessary to recompile Nginx from source.

एकमात्र समाधान इस प्रकार है ठीक से Nginx पुनर्स्थापित करने के लिए, यदि आपका मशीन एक एडब्ल्यूएस एएमआई उदाहरण है समाधान here है।

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