Nginx में PHP-FPM स्थिति को कैसे सक्षम और मॉनिटर करें


PHP-FPM ( FastCGI प्रक्रिया प्रबंधक ) एक वैकल्पिक PHP FastCGI कार्यान्वयन है जो किसी भी आकार की वेबसाइटों के लिए उपयोगी कई अतिरिक्त सुविधाओं के साथ आता है, विशेष रूप से साइटें जो उच्च ट्रैफ़िक प्राप्त करती हैं।

यह आमतौर पर LEMP ( Linux Nginx MySQL/MariaDB PHP ) स्टैक में उपयोग किया जाता है; Nginx एक नेटवर्क पर गतिशील HTTP सामग्री की सेवा के लिए PHP FastCGI का उपयोग करता है। इसका उपयोग इंटरनेट पर वेब सर्वर पर सैकड़ों वेबसाइटों के लिए लाखों PHP अनुरोधों की सेवा के लिए किया जा रहा है।

php-fpm की उपयोगी विशेषताओं में से एक अंतर्निहित स्थिति पृष्ठ है, जो आपके स्वास्थ्य की निगरानी में मदद कर सकता है। इस लेख में, हम दिखाएंगे कि लिनक्स पर PHP-FPM स्थिति पृष्ठ को कैसे सक्षम किया जाए।

लिनक्स में PHP-FPM स्थिति पृष्ठ को कैसे सक्षम करें

सबसे पहले php-fpm कॉन्फ़िगरेशन फ़ाइल खोलें और दिखाए गए अनुसार स्थिति पृष्ठ को सक्षम करें।

$ sudo vim /etc/php-fpm.d/www.conf 
OR
$ sudo vim /etc/php/7.2/fpm/pool.d/www.conf	#for PHP versions 5.6, 7.0, 7.1

इस फाइल के अंदर, वैरिएबल pm.status_path =/status को स्क्रीनशॉट में दिखाया गया है।

परिवर्तनों को सहेजें और फ़ाइल से बाहर निकलें।

आगे, नीचे दिए गए कमांड को चलाकर किसी भी त्रुटि के लिए PHP-FPM कॉन्फ़िगरेशन फ़ाइल देखें।

$ sudo php-fpm -t
OR
$ sudo php7.2-fpm -t

फिर हाल के परिवर्तनों को लागू करने के लिए PHP-FPM सेवा को पुनरारंभ करें।

$ sudo systemctl restart php-fpm
OR
$ sudo systemctl restart php7.2-fpm

इसके बाद, अपने डिफ़ॉल्ट सर्वर ब्लॉक ( वर्चुअल होस्ट ) कॉन्फ़िगरेशन फ़ाइल को संपादित करें और उसमें नीचे स्थान ब्लॉक जोड़ें। उदाहरण के लिए, परीक्षण प्रणाली पर, डिफ़ॉल्ट सर्वर ब्लॉक की कॉन्फिग फ़ाइल साइट test.lab के लिए /etc/nginx/conf.d/default.conf है।

$ sudo vim /etc/nginx/conf.d/default.conf 

यहां स्थान ब्लॉक जोड़ा जाना है। इस कॉन्फिगरेशन में, हमने केवल सुरक्षा कारणों के लिए निर्देश 127.0.0.1 का उपयोग करके लोकलहोस्ट के भीतर PHP-FPM प्रोसेस स्टेटस तक पहुंच की अनुमति दी है।

location ~ ^/(status|ping)$ {
        allow 127.0.0.1;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_index index.php;
        include fastcgi_params;
        #fastcgi_pass 127.0.0.1:9000;
        fastcgi_pass   unix:/var/run/php7.2-fpm.sock;
}

फ़ाइल को सहेजें और इसे बंद करें।

फिर उपरोक्त परिवर्तनों को लागू करने के लिए Nginx सर्वर को पुनरारंभ करें।

$ sudo systemctl restart nginx

अब एक ब्राउज़र खोलें और अपनी PHP-FPM प्रक्रिया की स्थिति देखने के लिए URL http: //test.lab/status टाइप करें।

वैकल्पिक रूप से, निम्नानुसार कर्ल प्रोग्राम का उपयोग करें, जहां -L ध्वज पृष्ठ का स्थान निर्दिष्ट करता है।

$ curl -L http://test.lab/status

डिफ़ॉल्ट रूप से, स्थिति पृष्ठ केवल एक सारांश या संक्षिप्त स्थिति प्रिंट करता है। प्रत्येक पूल प्रक्रिया के लिए स्थिति देखने के लिए, उदाहरण के लिए, "पूर्ण" क्वेरी स्ट्रिंग में पास करें:

http://www.foo.bar/status?full

जैसा कि दिखाया गया है आप आउटपुट प्रारूप (JSON, HTML या XML) को परिभाषित कर सकते हैं।

http://www.foo.bar/status?json&full
http://www.foo.bar/status?html&full
http://www.foo.bar/status?xml&full

प्रत्येक प्रक्रिया के लिए नीचे दिए गए मान php-fpm पूर्ण स्थिति में हैं:

  • pid – PID of the process.
  • state process status (idle, running, etc.).
  • start time – date and time the process has started.
  • start since – number of seconds since the process has started.
  • requests – number of requests the process has served.
  • request duration – duration in µs of the requests.
  • request method – request method (GET, POST, etc.).
  • request URI – request URI with the query string.
  • content length – content length of the request (only with POST).
  • user – user (PHP_AUTH_USER) (or ‘-‘ if not set).
  • script – main script called (or ‘-‘ if not set).
  • last request cpu – %cpu the last request consumed (note that it’s always 0 if the process is not in Idle state).
  • last request memory – max amount of memory the last request consumed (it’s always 0 if the process is not in Idle state).

अभी के लिए बस इतना ही! इस लेख में, हमने बताया है कि Nginx वेब सर्वर के तहत php-fpm स्थिति पृष्ठ को कैसे सक्षम किया जाए। अपने विचारों को हमारे साथ साझा करने के लिए नीचे दिए गए फ़ीडबैक फ़ॉर्म का उपयोग करें।