Nginx + MySQL + PHP5 + APC + Spawn_FastCGI [2nd Part: Nginx] के साथ वेब सर्वर कैसे स्थापित करें

कुछ समय पहले मैंने आपको ट्यूटोरियल की इस श्रृंखला के बारे में बतायापर उच्च मांग होस्टिंग के लिए एक सर्वर को कैसे स्थापित करें और कॉन्फ़िगर करें। यह लेख Nginx को स्थापित करने और कॉन्फ़िगर करने के बारे में होगा:

nginx:

हमने आपको पहले ही लेख में नग्नेक्स के बारे में बताया था नेग्नेक्स: अपाचे के लिए एक दिलचस्प विकल्प, वहां हमने आपको बताया कि यह Apache, LightHttpd या Cherokee जैसे एक वेब सर्वर है, लेकिन Apache की तुलना में यह अपने प्रदर्शन और कम हार्डवेयर खपत के लिए खड़ा है, ठीक उसी कारण से कई बड़ी साइट्स जैसे Facebook, MyOpera.com, DropBox या यहां तक ​​कि वर्डप्रेस .com अपाचे के बजाय Nginx का उपयोग करते हैं। लिनक्स की दुनिया में FromLinux एकमात्र ऐसा नहीं है जो Nginx का उपयोग करता है, जहाँ तक मुझे पता है, emsLinux और MuyLinux भी इसका उपयोग करते हैं Since

नगनेक्स के साथ मेरा व्यक्तिगत अनुभव कई साल पहले का है, जब आवश्यकता से बाहर मैंने अपाचे के लिए हल्के विकल्पों की तलाश शुरू कर दी थी। उस समय Nginx संस्करण 0.6 के लिए जा रहा था और PHP में बनाए गए उच्च मांग साइटों के साथ इसकी संगतता सबसे इष्टतम नहीं थी, हालांकि आज संस्करण 0.9 से आगे (डेबियन स्टेबल पर उपलब्ध v1.2.1, आर्कलिन पर उपलब्ध v1.4.2) ने बहुत सुधार किया है, इस बिंदु पर कि नगिनक्स + पीएचपी के एक उचित विन्यास और संघ के साथ सब कुछ एक आकर्षण की तरह काम करेगा।

इस ट्यूटोरियल श्रृंखला में मैं Nginx संस्करण 1.2.1-2.2 का उपयोग करूंगा, डेबियन स्थिर रेपो (व्हीज़ी) में उपलब्ध है।

यह ट्यूटोरियल केवल और विशेष रूप से Nginx के बारे में बताता है, Nginx + PHP के बारे में नहीं, Nginx + PHP के संघ के साथ-साथ इसके अनुकूलन या आवश्यक कॉन्फ़िगरेशन को संबोधित किया जाएगा। अगला ट्यूटोरियल

1. स्थापना:

हम पहली चीज के साथ शुरू करेंगे, हमारे रिपॉजिटरी से नग्नेक्स स्थापित करें।

निष्पादित होने वाली सभी कमांड को रूट अनुमतियों के साथ निष्पादित किया जाता है, या तो प्रत्येक पंक्ति की शुरुआत में sudo लगाकर या रूट में लॉग इन करके

यदि आपके सर्वर पर आप वितरण का उपयोग करते हैं जैसे कि डेबियन, उबंटू या टर्मिनल में कुछ व्युत्पन्न, तो आपको निम्नलिखित डालना चाहिए और दबाएं दर्ज :

aptitude install nginx

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

यदि आप अपने सर्वर पर एक और वितरण जैसे कि CentOS, Red Hat, Fedora का उपयोग करते हैं, तो बस पैकेज स्थापित करें: आधिकारिक रिपॉजिटरी से nginx

व्यक्तिगत रूप से, मैं डेबियन के किसी भी व्युत्पन्न की सिफारिश नहीं करता हूं, सर्वरों के लिए भी उबंटू नहीं, वर्षों से मेरे अनुभव पूरी तरह से संतोषजनक नहीं हैं। सर्वर ऑपरेटिंग सिस्टम के लिए मेरी पहली पसंद डेबियन है, फिर मैं सेंटोस के बारे में सोचूंगा, आखिरकार कुछ बीएसडी

2. विन्यास:

हमारे पास पहले से ही Nginx स्थापित है, लेकिन हमें स्पष्ट रूप से इसे कॉन्फ़िगर करने की आवश्यकता है। मैंने एफ़टीपी पर एक संपीड़ित फ़ाइल तैयार की है जिसमें डेसिडलाइन सर्वर में उपयोग किए जाने वाले सभी कॉन्फ़िगरेशन शामिल हैं, दोनों PHP, Nginx, आदि के लिए। आइए डाउनलोड करें और उस फ़ाइल को अनज़िप करें:

cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz

यह nginx-spawn-fastcgi नामक एक फ़ोल्डर बनाएगा, इसमें से हमें शुद्ध Nginx के लिए दो फ़ाइलों की आवश्यकता होगी (अर्थात, इसे PHP से लिंक किए बिना):

  • nginx.conf - »मुख्य Nginx कॉन्फ़िगरेशन फ़ाइल (हम इसकी सामग्री के बारे में बाद में बात करेंगे)
  • index.html - »एक सरल html फ़ाइल जिसका उपयोग हम यह देखने के लिए करेंगे कि क्या Nginx वास्तव में हमारे लिए सबसे बुनियादी रूप में काम करता है
  • mywebsite.net - »एक साधारण वेबसाइट के लिए कॉन्फ़िगरेशन फ़ाइल, एक VHost (वर्चुअल होस्ट) जो पिछले HTML तक पहुंच को कॉन्फ़िगर करेगा

चलिए सबसे पहले Nginx सेटिंग फ़ोल्डर में जाते हैं:

cd /etc/nginx/

तो चलिए इसके डिफ़ॉल्ट कॉन्फ़िगरेशन को हटाते हैं और अपना खुद का:

mv nginx.conf nginx.conf_BK && cp ~/nginx-spawn-fastcgi/nginx.conf ./

जैसा कि मैंने कहा, यह मुख्य नग्नेक्स कॉन्फ़िगरेशन फ़ाइल है, इसमें मैंने पहले ही निम्नलिखित को परिभाषित किया है:

उपयोगकर्ता www-डेटा; कार्यकर्ता_प्रौद्योगिक 4; pid /var/run/nginx.pid;

फ़ाइल सिस्टम के लिए उपयोगकर्ता की पहुंच (जिसके साथ nginx हर जगह पहुंच जाएगा), PID के साथ काम करने के लिए प्रक्रियाओं की संख्या और साथ ही PID (nginx प्रक्रिया आईडी)।

हमारे पास एक छोटा सा ब्लॉक भी है जिसे इवेंट्स (ईवेंट्स के लिए सेटिंग) कहा जाता है जिसमें एक लाइन होती है जो प्रति ईवेंट की अनुमति दी गई अधिकतम कनेक्शन इंगित करती है। नीचे ब्लॉक कहा जाता है http।

यह http ब्लॉक वह है जिसमें होस्टिंग से संबंधित लगभग सभी चीजें शामिल हैं, कम से कम कई चीजें जो आपको रुचि देंगी। उदाहरण के लिए, जीने का अधिकतम समय या प्रतीक्षा (टाइमआउट), जहां हमारे सामान्य लॉग होंगे (access.log और error.log), gzip का उपयोग कर डेटा संपीड़न, साथ ही साथ अन्य नियम जो भविष्य में उपयोगी हो सकते हैं।

एक बार जब मुख्य कॉन्फ़िगरेशन फ़ाइल होती है, तो हम अपने VHost से साइट्स-उपलब्ध फ़ोल्डर में फाइल कॉपी करें

cp ~/nginx-spawn-fastcgi/mywebsite.net sites-available/

इसके अलावा, हमें इस फ़ाइल से साइट्स-सक्षम फ़ोल्डर में एक प्रतीकात्मक लिंक बनाना चाहिए।

ln -s /etc/nginx/sites-available/mywebsite.net /etc/nginx/sites-enabled/

मैं साइटों-सक्षम और साइटों-उपलब्ध होने की उपयोगिता की व्याख्या करता हूं।

वे क्षणों को पाएंगे जब उनके पास कई vhost फाइलें तैयार और कॉन्फ़िगर होनी चाहिए, क्योंकि उस सर्वर पर वे 5 साइटें कहेंगे। हालाँकि, ऐसा होता है कि यह उन 2 vhosts में से 5 को सक्षम करने का समय नहीं है, लेकिन उनके पास फाइलें तैयार होनी चाहिए ताकि जब आवश्यक हो वे कम से कम समय में ऑनलाइन हों। साइट-उपलब्ध (साइट्स-उपलब्ध) में आप जितने चाहें उतने व्हाट्सएप डाल सकते हैं, क्योंकि जिन नग्नेक्स को ऑनलाइन डालने के लिए पढ़ते हैं, वे केवल साइटों-सक्षम (साइट-सक्षम) हैं, यह विपरीत दिशा में भी काम करेगा, यदि आप किसी साइट को ऑफ़लाइन (उदाहरण के लिए अस्थायी रूप से) रखना चाहते हैं, तो आपके सर्वर से फ़ाइलों को हटाने की कोई आवश्यकता नहीं है (जिन फ़ाइलों को हमें किसी अन्य समय की आवश्यकता होगी), हम बस साइटों के प्रतीकात्मक लिंक को सक्षम करते हैं और यह है। प्रतीकात्मक लिंक होने और बस एक फ़ोल्डर से दूसरे फ़ोल्डर में फ़ाइल की प्रतिलिपि बनाने की उपयोगिता यह है कि जब हम एक vhost को संपादित करना चाहते हैं, तो इससे कोई फर्क नहीं पड़ता कि क्या हम सक्षम या उपलब्ध में स्थित को संपादित करते हैं, अंत में यह वही है
पुरालेख।

फ़ाइल mywebsite.net जैसा कि मैंने पहले कहा था, एक vhost जो एक उदाहरण के रूप में कार्य करता है, अर्थात्, और दूसरे शब्दों में, हमें mywebsite.net को संशोधित करना होगा और हमारे कॉन्फ़िगरेशन को स्थापित करना होगा।

हमें निम्नलिखित को बदलना चाहिए:

  • access_log (पंक्ति 3): यह इस साइट पर पहुंच लॉग फ़ाइल का पथ होगा
  • error_log (पंक्ति 4): यह इस साइट पर त्रुटि लॉग फ़ाइल का पथ होगा
  • server_name (पंक्ति 5): URL, डोमेन जो उस फ़ोल्डर में होस्ट किया गया है, उदाहरण के लिए, यदि वह FromLinux फोरम था तो वह होगा: server_name forum.fromlinux.net
  • रूट (लाइन 6): उस फ़ोल्डर का पथ जहां html फाइलें हैं, चलो इसे / var / www / में छोड़ दें क्योंकि यह केवल एक परीक्षा होगी
जाहिर है वे अपने होस्टिंग प्रदाता (CPanel या किसी अन्य उपकरण का उपयोग करके) के अपने DNS रिकॉर्ड्स में इंगित कर रहे होंगे कि server_name में घोषित डोमेन या उपडोमेन इस सर्वर के आईपी पर स्थित है जो वे कॉन्फ़िगर कर रहे हैं। अर्थात्, DNS में जहां वे अपने डोमेन के लिए उप-डोमेन बनाते हैं, उन्हें यह घोषित करना होगा कि उन्होंने जिस डोमेन या उप-डोमेन को 5 पंक्ति में रखा है, वह इस सर्वर पर स्थित है (यह सर्वर = प्रश्न में सर्वर का आईपी पता)

अब हमें बस उस HTML फ़ाइल को उस फ़ोल्डर में कॉपी करना होगा जिसे हम अपनी VHost फ़ाइल, / var / www / में परिभाषित करते हैं:

mkdir /var/www/ && cp ~/nginx-spawn-fastcgi/index.html /var/www/

फिर हम नेग्नेक्स को फिर से शुरू करते हैं और यह है:

service nginx restart

और वसीला, कुछ इस तरह दिखाई देगा:

nginx-pure-test-site-html

 

मैं आपको याद दिलाता हूं कि हम HTML के लिए पहले Nginx के साथ काम कर रहे हैं, PHP समर्थन के बिना, यह PHP स्थापित करें और इसे Nginx से लिंक करें अगले ट्यूटोरियल की सामग्री होगी (कुछ दिनों में, मैं वादा करता हूं)।

वैसे भी, यह नगनेक्स इंस्टॉलेशन और कॉन्फ़िगरेशन ट्यूटोरियल है ताकि यह शुद्ध काम करे, यानी एक HTML साइट, मुझे आशा है कि यह आपके लिए हितकारी होगा।

मैं स्पष्ट करूंगा कि हां, अभी भी सबसे अच्छे अभ्यास हैं जिन्हें उपयोग करने के लिए रखा जा सकता है, हालांकि, आइए ट्यूटोरियल की इस श्रृंखला को समाप्त करने की प्रतीक्षा करें और फिर हम काम के अंतिम परिणाम का मूल्यांकन करेंगे yes

सादर


लेख की सामग्री हमारे सिद्धांतों का पालन करती है संपादकीय नैतिकता। त्रुटि की रिपोर्ट करने के लिए क्लिक करें यहां.

26 टिप्पणियाँ, तुम्हारा छोड़ दो

अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   नेल्सन कहा

    धन्यवाद, बहुत मददगार!

    1.    KZKG ^ गारा कहा

      टिप्पणी के लिए धन्यवाद

  2.   घनाकार कहा

    बैकपोर्ट्स में nginx 1.4 है।

    1.    KZKG ^ गारा कहा

      हां, लेकिन उत्पादन में एक सर्वर पर मैं उस but का उपयोग नहीं करता हूं

      1.    घनाकार कहा

        "यह" से आपका तात्पर्य है नगीनक्स द्वारा जारी नवीनतम स्थिर और परीक्षित संस्करण से, आप इसे ध्वनि बनाते हैं जैसे कि यह साइड से एप्ट-पिनिंग है। ~ _ ~

        1.    KZKG ^ गारा कहा

          ओह आओ, यह है कि ... सर्वर पर मैं कभी भी अन्य रिपोज, या बैकपोर्ट या उस जैसे कुछ का उपयोग करना पसंद नहीं करता हूं

      2.    राफेल कास्त्रो कहा

        सर्वर पर हमेशा स्थिर, मैंने वर्षों पहले सीखा था।

        1.    घनाकार कहा

          पिछले अप्रैल से Nginx 1.4 स्थिर है, बैकपोर्ट में यह 1.4.1-3 है।

          2013-04-24

          nginx-1.4.0 स्थिर संस्करण को जारी किया गया है, जिसमें 1.3.x शाखा में विकसित कई नई विशेषताओं को शामिल किया गया है - WebSocket कनेक्शन, OCSP स्टेपलिंग, SPDY मॉड्यूल, गनज़िप फ़िल्टर और बहुत कुछ के लिए समर्थन।

          http://nginx.org/en/CHANGES-1.4

          1.    राफेल कास्त्रो कहा

            आप सही कह रहे हैं, मेरी टोपी बंद है।

  3.   चिनोलोको कहा

    साझा करने के लिए धन्यवाद, मैं वर्तमान में आपके सबसे पुराने पोस्ट को व्यवहार में ला रहा हूं।
    मैं आपको XD सवालों से भरने जा रहा हूं

    1.    KZKG ^ गारा कहा

      पढ़ने के लिए धन्यवाद 🙂
      कोई भी संदेह या प्रश्न जो आप जानते हैं, हम यहां आपकी सहायता करने के लिए हैं, वहां आपके पास forum.desdelinux.net है जहां एक साथ हम आपको सबसे अच्छा समाधान देने की कोशिश करेंगे

      सादर

      1.    जिब्रान बर्रेरा कहा

        मेरे पास एक सवाल है कि मेरे पास LAMP [Linux (Debian Wheezy), Apache, PHP और MySQL] है जो मेरे सर्वर पर वर्डप्रेस और ओक्क्लाउड के लिए चल रहा है, मैं Ngnix पर कैसे जाता हूं, एक और सवाल यह है कि Nixix और Lighttpd में क्या अंतर है।

        1.    KZKG ^ गारा कहा

          अपाचे से नग्नेक्स में प्रवास करने की सबसे बड़ी जटिलता या कठिनाई प्रत्येक साइट के कॉन्फ़िगरेशन हैं, जो कि विशेष रूप से आपके द्वारा उपयोग किए जाने वाले .acaccess हैं।

          .Htaccess सबसे जटिल है जब यह Nginx पर स्विच करने की बात आती है, क्योंकि वे अलग-अलग कॉन्फ़िगरेशन हैं जिन्हें आपको Nginx VHost में डालना होगा।

          LightHTTPd और Nginx के बारे में ... मुझे नहीं पता, मैंने कई साल पहले केवल एक बार LightHTTPd का उपयोग किया था, वर्तमान में मुझे नहीं पता कि इसका विकास कैसे हो रहा है, विशेष रूप से PHP का उपयोग कर।

  4.   एलियोटाइम३००० कहा

    Apache की तुलना में NGINX काफी सीधा दिखता है। अगली कड़ी की प्रतीक्षा में यह PHP के साथ पूरक होने में सक्षम है

  5.   मॉरिशस कहा

    मैं nginx to के लिए और अधिक अनुकूलन करने के लिए सुझावों की प्रतीक्षा कर रहा हूं

    वैसे, गारा, आप अपने अगले ट्यूटोरियल में शामिल कर सकते हैं कि एसएसएल समर्थन कैसे लागू किया जाए।

    नमस्ते.

    1.    KZKG ^ गारा कहा

      जो युक्तियाँ वास्तव में PHP प्रसंस्करण, साइटों को कैश करने के लिए अनुकूलन करने के लिए आती हैं, मैं उस कॉन्फ़िगरेशन का उदाहरण रख सकता हूं जिसका उपयोग हम FromLinux में Nginx + Wordpress + W3_Total_Cache actually के लिए करते हैं

  6.   कैसर कहा

    अच्छे योगदान के लिए धन्यवाद।

  7.   Apr4xas कहा

    और आर्चलिनक्स के लिए गाइड कब? एक्सडी

    1.    KZKG ^ गारा कहा

      आर्क में यह बहुत समान है, केवल पैकेजों के नाम बदलते हैं लेकिन ... यह लगभग समान है

      लेकिन आर्क के साथ उत्पादन सर्वर किसके पास है? 😀

  8.   Apr4xas कहा

    हाय वहाँ है,

    यह मुझे फिर से xD है ...

    मैं आपके कदमों को आर्चलिनक्स वाली मशीन पर लागू कर रहा था और मुझे निम्नलिखित समस्या है:

    [abr4xas@Genius www]$ systemctl status nginx.service
    nginx.service - A high performance web server and a reverse proxy server
    Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled)
    Active: failed (Result: exit-code) since vie 2013-11-15 20:11:35 VET; 1min 13s ago
    Process: 1258 ExecStartPre=/usr/bin/nginx -t -q -g pid /run/nginx.pid; daemon on; master_process on; (code=exited, status=1/FAILURE)

    कोई सुझाव 😀

  9.   राइज कहा

    जो ... xox, मैं केवल एक आंतरिक सर्वर चाहता हूं, अर्थात, मैं केवल xampp को बदलना चाहता हूं, क्या मुझे यह सब करना चाहिए?

    1.    KZKG ^ गारा कहा

      यदि आप चाहते हैं कि आप इसे लागू कर सकते हैं (जो मैं दोहराता हूं, तो यह डीएल के साथ काम करता है), वास्तव में मेरा वर्चुअल सर्वर (जिसका उपयोग मैं विकास और परीक्षण के लिए करता हूं) मैंने इसे इसी चीज के साथ किया है जो मैं समझाता हूं।

      यही है, आप या तो XAMPP को हटा सकते हैं और इस संस्करण को डाल सकते हैं और यह ठीक काम करेगा, या यदि आप XAMPP छोड़ना चाहते हैं ... यह अभी भी आपके लिए काम करेगा।

      इसका उपयोग करने का सकारात्मक बिंदु यह है कि मैं दिखाता हूं कि अपाचे की तुलना में हार्डवेयर की बहुत कम खपत है, लेकिन, आपके व्यक्तिगत कंप्यूटर पर, जो एक उच्च मांग होस्टिंग नहीं है, इससे बहुत दूर ... अगर एक्सएएमपीपी आपके लिए अच्छा काम करता है, तो मैं नहीं करता हूं देखें कि इसे क्यों निकालें 🙂

  10.   इसहाक कहा

    मेरे पास पहले से ही मेरा लिनक्स सर्वर चल रहा है (डेबियन, Nginx, MySQL, और PHP) मेरे पास एक कठिन समय था पीएचपी को नग्नेक्स के साथ काम करने के लिए क्योंकि मुझे सरल अपाचे वेब सर्वर का उपयोग किया गया था।

    खैर मेरा सवाल यह है कि क्या किसी को पता है कि मैं अपने डोमेन के लिए खरीदे गए टेस्ट डोमेन को कैसे इंगित कर सकता हूं? मैं यह देखने के लिए अपने .com डोमेन की कोशिश करना चाहूंगा कि यह कैसे काम करता है, लेकिन मुझे यह पता नहीं है कि इसे कैसे करना है, क्योंकि मुझे हमेशा नोप DUC के साथ इसे एक्सेस करने के लिए NOIP पते का उपयोग किया जाता है।

    मुझे आशा है कि कोई मेरी मदद कर सकता है, धन्यवाद!

  11.   अब्राहम कहा

    मुझे यह तब मिला जब आपके पैर से जुड़ने की कोशिश कर रहा हूं:

    cd ~ && wget http://ftp.desdelinux.net/nginx-spawn-fastcgi.tar.gz && tar xf nginx-spawn-fastcgi.tar.gz

    HTTP अनुरोध भेजा गया, प्रतिक्रिया की प्रतीक्षा की जा रही है ... 404 नहीं मिला
    2015-11-23 17:46:30 ERROR 404: नहीं मिला।

  12.   रयान कहा

    मेरे पास अपना सर्वर CentOS (Gunicorn, Nginx, PHP) पर चल रहा है, मुझे उन्हें काम करने के लिए बहुत काम करना पड़ा लेकिन जिस बिंदु पर मैं फंस गया, वह यह है कि जिस वेब पेज को मैं लॉन्च करना चाहता हूं उसे इस मामले में डोमेन प्रदाता कॉन्फ़िगरेशन की आवश्यकता है। डैडी, तो इस बिंदु पर मैं नहीं जानता कि कैसे जारी रखा जाए।

  13.   रिकार्डो कहा

    क्या आप मेरे साथ विन्यास फाइल साझा कर सकते हैं क्योंकि मैं उन्हें डाउनलोड नहीं कर सकता