این جی آئی این ایکس میں علیحدہ پی ایچ پی-ایف پی ایم پول کیسے مرتب کریں
شائع شدہ: 15 فروری، 2025 کو 11:53:19 AM UTC
آخری بار اپ ڈیٹ کیا گیا: 12 جنوری، 2026 کو 8:30:11 AM UTC
اس آرٹیکل میں، میں متعدد PHP-FPM پولز کو چلانے اور NGINX کو FastCGI کے ذریعے ان سے جوڑنے کے لیے درکار کنفیگریشن کے مراحل کو دیکھتا ہوں، جس سے ورچوئل میزبانوں کے درمیان عمل کو الگ کرنے اور الگ تھلگ کرنے کی اجازت ملتی ہے۔
How to Set Up Separate PHP-FPM Pools in NGINX
اس پوسٹ میں موجود معلومات NGINX 1.4.6 اور PHP-FPM 5.5.9 پر مبنی ہے جو Ubuntu Server 14.04 x64 پر چل رہے ہیں۔ یہ دوسرے ورژن کے لیے درست ہو سکتا ہے یا نہیں۔ (اپ ڈیٹ: میں تصدیق کر سکتا ہوں کہ Ubuntu Server 24.04، PHP-FPM 8.3 اور NGINX 1.24.0 کے مطابق، اس پوسٹ میں موجود تمام ہدایات اب بھی کام کرتی ہیں)
ایک ہی پول میں ہر چیز کو چلانے کے بجائے متعدد PHP-FPM چائلڈ پروسیس پول قائم کرنے کے بہت سے فوائد ہیں۔ سیکورٹی، علیحدگی/تنہائی اور وسائل کا انتظام چند اہم چیزوں کے طور پر ذہن میں آتا ہے۔
اس سے قطع نظر کہ آپ کی حوصلہ افزائی کیا ہے، یہ پوسٹ آپ کو ایسا کرنے میں مدد دے گی :-)
حصہ 1 - ایک نیا PHP-FPM پول قائم کریں۔
سب سے پہلے، آپ کو اس ڈائرکٹری کو تلاش کرنے کی ضرورت ہے جہاں PHP-FPM اپنی پول کنفیگریشن کو اسٹور کرتا ہے۔ Ubuntu 14.04 پر، یہ ڈیفالٹ کے طور پر /etc/php5/fpm/pool.d ہے۔ وہاں شاید پہلے سے ہی ایک فائل موجود ہے جسے www.conf کہتے ہیں، جو پہلے سے طے شدہ پول کے لیے کنفیگریشن رکھتی ہے۔ اگر آپ نے امکانات سے پہلے اس فائل کو نہیں دیکھا ہے تو آپ کو اس سے گزرنا چاہیے اور اپنے سیٹ اپ کے لیے اس میں سیٹنگز کو درست کرنا چاہیے کیونکہ ڈیفالٹس کافی حد تک کم طاقت والے سرور کے لیے ہوتے ہیں، لیکن فی الحال اس کی صرف ایک کاپی بنائیں تاکہ ہمیں شروع سے شروع کرنے کی ضرورت نہ پڑے:
بلاشبہ، "mypool" کو اس چیز سے بدل دیں جو آپ چاہتے ہیں کہ آپ کے پول کو بلایا جائے۔
اب نینو یا کسی بھی ٹیکسٹ ایڈیٹر کا استعمال کرتے ہوئے نئی فائل کھولیں اور اسے اپنے مقصد کے مطابق ایڈجسٹ کریں۔ آپ ممکنہ طور پر چائلڈ پروسیس نمبرز کو موافقت کرنا چاہیں گے اور ممکنہ طور پر پول کس صارف اور گروپ کے تحت چلتا ہے، لیکن دو سیٹنگز جو آپ کو بالکل تبدیل کرنی ہوں گی وہ ہیں پول کا نام اور وہ ساکٹ جسے وہ سن رہا ہے، ورنہ یہ موجودہ پول سے متصادم ہو جائے گا اور چیزیں کام کرنا بند کر دیں گی۔
پول کا نام فائل کے اوپری حصے کے قریب ہے، جو مربع بریکٹ میں بند ہے۔ پہلے سے طے شدہ طور پر یہ [www] ہے۔ آپ جو چاہیں اسے تبدیل کریں۔ میں وہی تجویز کرتا ہوں جیسا کہ آپ نے کنفیگریشن فائل کا نام دیا ہے، لہذا اس مثال کی خاطر اسے [mypool] میں تبدیل کریں۔ اگر آپ اسے تبدیل نہیں کرتے ہیں، تو ایسا لگتا ہے کہ PHP-FPM صرف اس نام کے ساتھ پہلی کنفیگریشن فائل لوڈ کرے گا، جس سے چیزوں کے ٹوٹنے کا امکان ہے۔
اس کے بعد آپ کو اس ساکٹ یا ایڈریس کو تبدیل کرنے کی ضرورت ہے جسے آپ سن رہے ہیں، جس کی تعریف سننے کی ہدایت سے کی گئی ہے۔ پہلے سے طے شدہ طور پر، PHP-FPM یونکس ساکٹ استعمال کرتا ہے لہذا آپ کی سننے کی ہدایت شاید اس طرح نظر آئے گی۔
آپ اسے جو بھی درست نام چاہتے ہیں اس میں تبدیل کر سکتے ہیں، لیکن ایک بار پھر، میں تجویز کرتا ہوں کہ کنفیگریشن فائل نام سے ملتی جلتی کسی چیز پر قائم رہیں، تاکہ آپ مثال کے طور پر اسے اس پر سیٹ کر سکیں:
ٹھیک ہے پھر فائل کو محفوظ کریں اور ٹیکسٹ ایڈیٹر سے باہر نکلیں۔
حصہ 2 - NGINX ورچوئل ہوسٹ کنفیگریشن کو اپ ڈیٹ کریں۔
اب آپ کو NGINX ورچوئل ہوسٹ فائل کو FastCGI کنفیگریشن کے ساتھ کھولنے کی ضرورت ہے جسے آپ ایک نئے پول میں تبدیل کرنا چاہتے ہیں - یا اس کے بجائے، نئے ساکٹ سے جڑیں۔
Ubuntu 14.04 پر پہلے سے طے شدہ طور پر، یہ /etc/nginx/sites-available کے تحت ذخیرہ کیے جاتے ہیں، لیکن ان کی وضاحت کہیں اور بھی کی جا سکتی ہے۔ آپ شاید بہتر جانتے ہوں گے کہ آپ کی ورچوئل ہوسٹ کنفیگریشنز کہاں واقع ہیں ؛-)
اپنے پسندیدہ ٹیکسٹ ایڈیٹر میں متعلقہ کنفیگریشن فائل کو کھولیں اور PHP-FPM ساکٹ کی وضاحت کرنے والی فاسٹ سی جی_پاس ڈائریکٹیو (جو کہ مقام کے تناظر میں ہونی چاہیے) کو تلاش کریں۔ آپ کو اس قدر کو تبدیل کرنا ہوگا تاکہ یہ آپ کے پہلے مرحلے کے تحت بنائے گئے نئے PHP-FPM پول کنفیگریشن سے مماثل ہو، لہذا ہماری مثال کو جاری رکھتے ہوئے آپ اسے اس میں تبدیل کریں گے:
fastcgi_pass unix:/var/run/php5-fpm-mypool.sock؛
پھر اس فائل کو بھی محفوظ اور بند کر دیں۔ آپ اب تقریباً مکمل کر چکے ہیں۔
حصہ 3 - PHP-FPM اور NGINX کو دوبارہ شروع کریں۔
آپ نے جو کنفیگریشن تبدیلیاں کی ہیں ان کو لاگو کرنے کے لیے، PHP-FPM اور NGINX دونوں کو دوبارہ شروع کریں۔ یہ دوبارہ شروع کرنے کے بجائے دوبارہ لوڈ کرنا کافی ہوسکتا ہے، لیکن مجھے لگتا ہے کہ یہ تھوڑا سا ہٹ اور مس ہے، اس پر منحصر ہے کہ کن ترتیبات کو تبدیل کیا گیا ہے۔ خاص صورت میں، میں چاہتا تھا کہ پرانے PHP-FPM چائلڈ پروسیسز فوراً مر جائیں، اس لیے PHP-FPM کو دوبارہ شروع کرنے کی ضرورت تھی، لیکن NGINX کے لیے دوبارہ لوڈ کرنا کافی ہو سکتا ہے۔ اسے خود ہی آزمائیں۔
sudo service nginx restart
اور وویلا، آپ کا کام ہو گیا۔ اگر آپ نے سب کچھ صحیح طریقے سے کیا ہے تو، آپ نے جس ورچوئل ہوسٹ میں ترمیم کی ہے اسے اب نیا PHP-FPM پول استعمال کرنا چاہیے اور کسی دوسرے ورچوئل میزبان کے ساتھ چائلڈ پروسیس کا اشتراک نہیں کرنا چاہیے۔
