एनजीआयएनएक्समध्ये स्वतंत्र पीएचपी-एफपीएम पूल कसे स्थापित करावे
प्रकाशित: १५ फेब्रुवारी, २०२५ रोजी ११:५४:३९ AM UTC
शेवटचे अपडेट केलेले: १२ जानेवारी, २०२६ रोजी ८:३०:१५ AM UTC
या लेखात, मी एकाधिक PHP-FPM पूल चालविण्यासाठी आणि NGINX ला FastCGI द्वारे त्यांच्याशी जोडण्यासाठी आवश्यक असलेल्या कॉन्फिगरेशन चरणांवर चर्चा करतो, ज्यामुळे व्हर्च्युअल होस्टमध्ये प्रक्रिया वेगळे करणे आणि वेगळे करणे शक्य होते.
How to Set Up Separate PHP-FPM Pools in NGINX
या पोस्टमधील माहिती उबंटू सर्व्हर १४.०४ x६४ वर चालणाऱ्या NGINX १.४.६ आणि PHP-FPM ५.५.९ वर आधारित आहे. ती इतर आवृत्त्यांसाठी वैध असू शकते किंवा नसू शकते. (अपडेट: मी पुष्टी करू शकतो की उबंटू सर्व्हर २४.०४, PHP-FPM ८.३ आणि NGINX १.२४.० नुसार, या पोस्टमधील सर्व सूचना अजूनही कार्य करतात)
एकाच पूलमध्ये सर्वकाही चालवण्यापेक्षा अनेक PHP-FPM चाइल्ड प्रोसेस पूल सेट करण्याचे अनेक फायदे आहेत. सुरक्षा, वेगळेपणा/आयसोलेशन आणि संसाधन व्यवस्थापन हे काही प्रमुख फायदे म्हणून लक्षात येतात.
तुमची प्रेरणा काहीही असो, ही पोस्ट तुम्हाला ते करण्यास मदत करेल :-)
भाग १ – नवीन PHP-FPM पूल सेट अप करा
प्रथम, तुम्हाला ती डायरेक्टरी शोधावी लागेल जिथे PHP-FPM त्यांचे पूल कॉन्फिगरेशन साठवते. उबंटू १४.०४ वर, हे डिफॉल्टनुसार /etc/php5/fpm/pool.d आहे. कदाचित तिथे आधीच www.conf नावाची एक फाइल असेल, जी डिफॉल्ट पूलसाठी कॉन्फिगरेशन ठेवते. जर तुम्ही ती फाइल आधी पाहिली नसेल तर तुम्ही ती फाइल तपासावी आणि तुमच्या सेटअपसाठी त्यातील सेटिंग्ज बदलाव्यात कारण डिफॉल्ट सेटिंग्ज बऱ्यापैकी कमी पॉवर असलेल्या सर्व्हरसाठी आहेत, परंतु सध्या फक्त त्याची एक प्रत बनवा जेणेकरून आपल्याला सुरवातीपासून सुरुवात करावी लागणार नाही:
अर्थात, "मायपूल" च्या जागी तुम्हाला तुमच्या पूलला जे नाव द्यायचे आहे ते ठेवा.
आता नॅनो किंवा तुम्हाला आवडणाऱ्या कोणत्याही टेक्स्ट एडिटरचा वापर करून नवीन फाइल उघडा आणि तुमच्या उद्देशानुसार ती समायोजित करा. तुम्हाला कदाचित चाइल्ड प्रोसेस नंबर आणि शक्यतो पूल कोणत्या वापरकर्त्याच्या आणि गटाच्या अंतर्गत चालतो ते बदलायचे असतील, परंतु तुम्हाला ज्या दोन सेटिंग्ज बदलाव्या लागतील त्या म्हणजे पूलचे नाव आणि तो ऐकत असलेला सॉकेट, अन्यथा ते विद्यमान पूलशी संघर्ष करेल आणि गोष्टी काम करणे थांबवतील.
पूलचे नाव फाईलच्या वरच्या बाजूला आहे, चौकोनी कंसात बंद केलेले आहे. डिफॉल्टनुसार ते [www] आहे. तुम्हाला हवे ते बदला; तुम्ही कॉन्फिगरेशन फाइलला जसे नाव दिले आहे तसेच मी सुचवितो, म्हणून या उदाहरणासाठी ते [mypool] मध्ये बदला. जर तुम्ही ते बदलले नाही, तर असे दिसते की PHP-FPM फक्त त्या नावाची पहिली कॉन्फिगरेशन फाइल लोड करेल, ज्यामुळे गोष्टी बिघडण्याची शक्यता आहे.
त्यानंतर तुम्हाला ऐकत असलेला सॉकेट किंवा पत्ता बदलावा लागेल, जो ऐकण्याच्या निर्देशाद्वारे परिभाषित केला जातो. डीफॉल्टनुसार, PHP-FPM युनिक्स सॉकेट वापरते म्हणून तुमचा ऐकण्याचा निर्देश कदाचित असा दिसेल:
तुम्ही ते तुम्हाला हवे ते वैध नाव बदलू शकता, परंतु पुन्हा, मी कॉन्फिगरेशन फाइलनावासारखे काहीतरी वापरण्याचा सल्ला देतो, उदाहरणार्थ तुम्ही ते येथे सेट करू शकता:
ठीक आहे, मग फाईल सेव्ह करा आणि टेक्स्ट एडिटरमधून बाहेर पडा.
भाग २ - NGINX व्हर्च्युअल होस्ट कॉन्फिगरेशन अपडेट करा
आता तुम्हाला NGINX व्हर्च्युअल होस्ट फाइल उघडावी लागेल ज्यामध्ये FastCGI कॉन्फिगरेशन तुम्ही नवीन पूलमध्ये बदलू इच्छिता - किंवा त्याऐवजी, नवीन सॉकेटशी कनेक्ट करा.
उबंटू १४.०४ वर डिफॉल्टनुसार, हे /etc/nginx/sites-available अंतर्गत साठवले जातात, परंतु ते इतरत्र देखील परिभाषित केले जाऊ शकतात. तुमचे व्हर्च्युअल होस्ट कॉन्फिगरेशन कुठे आहेत हे तुम्हाला कदाचित चांगले माहिती असेल ;-)
तुमच्या आवडत्या टेक्स्ट एडिटरमध्ये संबंधित कॉन्फिगरेशन फाइल उघडा आणि PHP-FPM सॉकेट परिभाषित करणारा fastcgi_pass निर्देश (जो स्थान संदर्भात असावा) शोधा. तुम्ही हे मूल्य बदलले पाहिजे जेणेकरून ते तुम्ही पहिल्या चरणात केलेल्या नवीन PHP-FPM पूल कॉन्फिगरेशनशी जुळेल, म्हणून आमचे उदाहरण पुढे चालू ठेवल्यास तुम्ही हे बदलू शकाल:
फास्टसीजीआय_पास युनिक्स:/var/run/php5-fpm-mypool.sock;
मग ती फाईलही सेव्ह करा आणि बंद करा. आता तुमचे काम जवळजवळ पूर्ण झाले आहे.
भाग ३ – PHP-FPM आणि NGINX रीस्टार्ट करा
तुम्ही केलेले कॉन्फिगरेशन बदल लागू करण्यासाठी, PHP-FPM आणि NGINX दोन्ही रीस्टार्ट करा. रीस्टार्ट करण्याऐवजी रीलोड करणे पुरेसे असू शकते, परंतु कोणत्या सेटिंग्ज बदलल्या आहेत यावर अवलंबून, मला ते थोडेसे हिट अँड मिस वाटते. विशिष्ट प्रकरणात, मला जुन्या PHP-FPM चाइल्ड प्रोसेस लगेच बंद करायच्या होत्या, म्हणून PHP-FPM रीस्टार्ट करणे आवश्यक होते, परंतु NGINX साठी रीलोड पुरेसे असू शकते. ते स्वतः वापरून पहा.
sudo service nginx restart
आणि हो, तुम्ही काम पूर्ण केले. जर तुम्ही सर्वकाही योग्यरित्या केले असेल, तर तुम्ही सुधारित केलेला व्हर्च्युअल होस्ट आता नवीन PHP-FPM पूल वापरत असावा आणि इतर कोणत्याही व्हर्च्युअल होस्टसह चाइल्ड प्रोसेस शेअर करू नये.
