Nginx config फाइल (htaccess समकक्ष) का नाम और स्थान क्या है?


30

अपाचे की .htaccess फ़ाइल की नकल करने के लिए Nginx को फिर से लिखने के नियमों के बारे में कई ट्यूटोरियल हैं, लेकिन मैं आत्मविश्वास से यह नहीं कह सकता कि मुझे पता है कि इस तथाकथित Nginx config फाइल का नाम या स्थान वास्तव में क्या है। मैं विशेष रूप से Nginx config फाइल की तलाश कर रहा हूं जो आपको सर्वर पथ और PHP निर्देश लिखने की अनुमति देता है। मैं अपने PHP फ्रेमवर्क के रूप में Ubuntu 12 linux और Codeigniter का उपयोग कर रहा हूं।

यहाँ मैं अब तक क्या जानता हूँ:

  1. यह फ़ाइल: /etc/nginx/nginx.confइसके मोहक नाम के बावजूद स्पष्ट रूप से सर्वर निर्देशों के लिए जगह नहीं है।
  2. यह फ़ाइल: /etc/nginx/sites-available/defaultऐसा लगता है कि मुझे क्या चाहिए (मैं अपने ऐप के लिए विशिष्ट php त्रुटियों को उत्पन्न करने में सक्षम हूं), लेकिन मुझे कोडिग्निटर-विशिष्ट पथ रूटिंग सही नहीं मिल सकती है। सबसे पहले, यह "config" फ़ाइल / .htaccess है जो सभी के बराबर है?

आपकी समस्या PHP भाषा (यानी PHP में प्रोग्रामिंग) के साथ नहीं है, यह एक विशिष्ट सर्वर पर PHP कॉन्फ़िगरेशन के साथ है, जो पूरी तरह से वैध करीबी वोटों की व्याख्या करता है। मैं आपके पोस्ट के उत्तरार्द्ध पर टिप्पणी नहीं कर सकता, क्योंकि यह अत्यधिक व्यक्तिपरक और पक्षपाती लगता है।
निक जूल

1
आप पा सकते हैं कि nginx config का उपयोग करके स्थित है, nginx -Vजिसके साथ आप मैनुअल में पा सकते हैं man nginx-Vविकल्प के रूप में "-v प्रिंट nginx संस्करण, संकलक संस्करण, और कॉन्फ़िगर स्क्रिप्ट मानकों।" प्रलेखित है। यदि nginxआपके रास्ते में नहीं है, तो उपयोग करें which nginxजो कि पूर्ण पथ को वापस nginx$(which nginx) -V
bucabay

जवाबों:


28

मैं निम्नलिखित विन्यास के साथ अपने विकास सर्वर पर nginx के साथ PHP का उपयोग करता हूं:

  1. में /etc/nginx/nginx.confमैंने जोड़ा: include /etc/nginx/sites-enabled/*;आखिरी से पहले }

  2. अपनी साइट कॉन्फ़िगरेशन बनाने के लिए निम्नलिखित कमांड चलाएँ:

    mkdir /etc/nginx/sites-available/
    mkdir /etc/nginx/sites-enabled/
    cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/<site>
    
  3. साइट कॉन्फ़िगरेशन, कुछ संभावित कॉन्फ़िगरेशन (यह वही है जो मैंने अपने सेटअप में संदर्भित किया है) संपादित करें: http://kbeezie.com/view/nginx-configuration-examples/

  4. इसे सक्षम करने के लिए उपलब्ध साइट का लिंक

    ln -s /etc/nginx/sites-available/<site> /etc/nginx/sites-enabled/<site>
    
  5. ध्यान रखें कि आप वास्तव में लगभग कहीं भी कॉन्फ़िगरेशन के भीतर फ़ाइलों को शामिल कर सकते हैं, यह कई साइटों को आसान बनाता है जब आप समान कॉन्फ़िगरेशन को एक साथ फेंकना चाहते हैं।

हाँ, .htaccess नगण्य में server{}ब्लॉक के लिए तुलनीय है , लेकिन वे भी बहुत अलग हैं। nginx में पार्सिंग कॉन्फ़िगरेशन के लिए बहुत अधिक हल्का दृष्टिकोण है, और यह अतिरिक्त कॉन्फ़िगरेशन के लिए साइट निर्देशिकाओं को स्कैन नहीं करेगा, केवल जो कुछ भी nginx.conf द्वारा देखा जाता है, वह जाता है।


- @ एंड्रयू उपयोगी जानकारी के बहुत धन्यवाद! डिफ़ॉल्ट रूप से मेरी /etc/nginx/nginx.confफ़ाइल पहले include /etc/nginx/sites-enabled/*;से ही बहुत अंत में है। ऐसा लगता है कि ये 2 फाइलें मेरे सर्वर पर एक दूसरे से बात कर रही हैं और अब मैं कोडिनाइटर-विशिष्ट मुद्दों से निपट रहा हूं। क्या आप कोडिनिटर का उपयोग कर रहे हैं? कुछ रास्ता मजेदार है जिसे मुझे संभालने की आवश्यकता है ...
टिम पीटरसन

मैं अपने स्वयं के ढांचे का उपयोग करता हूं, जो कोडिग्निटर के समान (यद्यपि अधिक आदिम) है। फिलहाल मैं अपने mod_rewrite regexp नियमों को nginx के HttpRewebite मॉड्यूल में परिवर्तित करने की कोशिश कर रहा हूं। जब मैं गलत तरीके से rootपैरामीटर को कॉन्फ़िगर करता हूं, तो मेरी पहली बड़ी सफलता 403/404 त्रुटियों के नग्नेक्स डिस्प्ले से पहले हो रही थी । यदि आपको किसी प्रेरणा की आवश्यकता हो तो मेरे प्रश्नों की जाँच करें।
२१

अपने सवालों की जाँच करने के लिए टिप के लिए धन्यवाद। मैं सोच रहा हूं कि मैं अब और अधिक समझ रहा हूं, मुझे रास्ते पर स्थापित करने के लिए धन्यवाद ...
टिम पीटरसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.