आज सबसे आम वेब सर्वर संयोजनों में से एक में Nginx वेब सर्वर सॉफ़्टवेयर कार्यान्वयन शामिल है जो उबंटू सर्वर संस्करण पर चल रहा है। यह सिस्टम अत्यधिक कुशल और अपडेट रखने में आसान है, क्योंकि दोनों पैकेज नियमित अपडेट प्राप्त करना जारी रखते हैं। सिस्टम एडमिनिस्ट्रेटर आम तौर पर apt पैकेज मैनेजर के माध्यम से अपडेट इंस्टॉल करते हैं, क्योंकि उबंटू सर्वर में डिफ़ॉल्ट रूप से कोई ग्राफिकल इंटरफेस नहीं होता है।
उबंटू सर्वर अपग्रेड कभी-कभी असामान्य त्रुटियां उत्पन्न कर सकते हैं, और ग्राफिकल यूजर इंटरफेस की यह कमी शुरुआती लोगों के लिए उनका निवारण करना मुश्किल बना सकती है। कुछ सरल कमांड उबंटू अपग्रेड के बाद 404 Nginx त्रुटियों को ठीक करने के लिए पर्याप्त हो सकते हैं।
विधि 1: गुम Nginx त्रुटि पेज को ठीक करना
यदि कोई साइट AWS, एक निजी सर्वर या LEMP स्टैक में किसी अन्य सर्वर कॉन्फ़िगरेशन पर होस्ट की गई है, तो यह उबंटू सर्वर अपग्रेड के बाद बेतरतीब ढंग से डाउन हो सकती है। किसी अन्य मशीन पर वेब ब्राउज़र से साइट तक पहुंचने का प्रयास करें। मान लें कि यह 404 त्रुटि लौटाता है, उबंटू सर्वर CLI पर जाएं और सबसे हाल की त्रुटियों को देखने के लिए tail -f /var/log/nginx/error.log कमांड चलाएं।
यदि लॉग में ऐसी त्रुटि है:
open() "/usr/share/nginx/html/50x.html" failed (2: No such file or directory)
तो आपका सिस्टम एक गुम त्रुटि पेज से पीड़ित है। आप इस लाइन में 40x.html भी देख सकते हैं, हालांकि यह अपेक्षाकृत असामान्य है यदि आपकी साइट डाउन है और आपको बदले में 404 त्रुटियां मिल रही हैं। यह देखने के लिए ls कमांड का उपयोग करें कि क्या वहां कुछ है। यदि नहीं, तो आपको 50X त्रुटियों के लिए एक पेज के लिए HTML कोड बनाना होगा।
ध्यान रखें कि डिफ़ॉल्ट डायरेक्टरी स्ट्रक्चर का उपयोग करना अक्सर पैकेज मैनेजर के साथ एक समस्या है, जो वहां संग्रहीत जो कुछ भी होता है उसे ओवरराइट कर सकता है। यदि आपको कस्टम डायरेक्टरी स्ट्रक्चर बनाने की अनुमति है तो आप Nginx कॉन्फ़िगरेशन में docroot लाइन को बदलकर इस तरह की समस्या को रोक सकते हैं।
विधि 2: PHP को सही सॉकेट ढूंढने के लिए बनाना
आपको /var/log/nginx/error.log में ऐसा कुछ भी मिल सकता है जो पढ़ता है:
connect() to unix:/var/run/php/php7.0-fpm.sock failed (2: No such file or directory)
इसका मतलब है कि आपके पास PHP7.0 चल रहा है, लेकिन यह वहां नहीं चल रहा है जहां यह होना चाहिए। वर्जन नंबर इस बात पर निर्भर हो सकता है कि आपने PHP को कैसे कॉन्फ़िगर किया है। डिफ़ॉल्ट इंस्टॉलेशन /var/run/php/php7.0-fpm.sock या /var/run/php/php-fpm.sock से चलेंगे, लेकिन यदि आपके पास यह त्रुटि है तो इसकी संभावना अधिक नहीं है।
sudo find / -name 'php*fpm.sock' कमांड चलाएं और फिर देखें कि क्या आपके सिस्टम पर कहीं सॉकेट चल रहा है।
यह मानते हुए कि आपको सकारात्मक आउटपुट मिला, तो आपको अपने Nginx कॉन्फ़िगरेशन को अपडेट करने की आवश्यकता है ताकि सॉकेट के सही स्थान को दिखाया जा सके जहां यह चलना चाहिए। स्वाभाविक रूप से, /directoryPath को सही पथ से बदल दिया जाएगा। यदि आप सॉकेट फाइल का उपयोग कर रहे हैं तो लाइन unix:/var/run/php/php7.0-fpm.sock कॉन्फ़िगरेशन को अपडेट करेगी।
पुराने TCP सॉकेट के उपयोगकर्ता जो सॉकेट फाइलों का उपयोग नहीं करते हैं, कमांड लाइन से sudo netstat -tulpn | grep 9000 चलाकर जांच सकते हैं कि क्या PHP सॉकेट वर्तमान में पोर्ट 9000 को सुन रहा है। यदि ऐसा है, तो nano, vi या किसी अन्य टेक्स्ट एडिटर में अपने fastcgi_pass को खोलें और unix:… लाइन को बदलकर इसके बजाय 127.0.0.1:9000 का उपयोग करके सॉकेट को अपडेट करें।
यदि इनमें से कुछ भी काम नहीं करता है, तो सुनिश्चित करें कि php7.0-fpm या आप जिस भी वर्जन नंबर का उपयोग कर रहे हैं, वह sudo systemctl restart php7.0-fpm कमांड के साथ चल रहा है, इसके बाद उपरोक्त प्रक्रिया दोहराएं।
ध्यान रखें कि अधिकांश परिस्थितियों में /etc/php/7.0/fpm/pool.d/www.conf में listen एंट्री और /etc/nginx/sites-available/default में मान समान होने चाहिए। आप नए कॉन्फ़िगरेशन के लिए unix:/var/run/php/php7.0-fpm.sock या पुराने स्टाइल के लिए 127.0.0.1:9000 आज़मा सकते हैं।
लेखक के बारे में

केविन एरोज़
केविन एरोज़ एक अत्यधिक अनुभवी और जानकार प्रौद्योगिकी विशेषज्ञ हैं जिनके पास एक दशक से अधिक का उद्योग अनुभव है। उनके पास माइक्रोसॉफ्ट सर्टिफाइड टेक्नोलॉजी स्पेशलिस्ट (MCTS) प्रमाणन है और नवीनतम तकनीकी विकास पर अपडेट रहने का गहरा जुनून है। केविन ने तकनीक से संबंधित विषयों की एक विस्तृत श्रृंखला पर व्यापक रूप से लिखा है, जिसमें सॉफ़्टवेयर विकास, साइबर सुरक्षा और क्लाउड कंप्यूटिंग जैसे क्षेत्रों में उनकी विशेषज्ञता और ज्ञान का प्रदर्शन होता है। तकनीकी क्षेत्र में उनके योगदान को उनके साथियों द्वारा व्यापक रूप से मान्यता प्राप्त और सम्मानित किया गया है, और उन्हें जटिल तकनीकी अवधारणाओं को स्पष्ट और संक्षिप्त तरीके से समझाने की उनकी क्षमता के लिए उच्च माना जाता है।