Miklix

كيفية إعداد مجموعات PHP-FPM منفصلة في NGINX

نُشرت: ١٥ فبراير ٢٠٢٥ م في ١١:٤١:٥٦ ص UTC
آخر تحديث: ١٢ يناير ٢٠٢٦ م في ٨:٢٩:٥١ ص UTC

في هذه المقالة، سأستعرض خطوات التكوين اللازمة لتشغيل مجموعات PHP-FPM متعددة وربط NGINX بها عبر FastCGI، مما يسمح بفصل العمليات وعزلها بين المضيفات الافتراضية.


لقد تمت ترجمة هذه الصفحة آليًا من الإنجليزية بهدف جعلها متاحة لأكبر عدد ممكن من الأشخاص. لسوء الحظ، لم يتم تطوير تقنية الترجمة الآلية بعد، لذا قد تحدث أخطاء. إذا كنت تفضل ذلك، يمكنك عرض النسخة الإنجليزية الأصلية هنا:

How to Set Up Separate PHP-FPM Pools in NGINX

تستند المعلومات الواردة في هذه المقالة إلى NGINX 1.4.6 وPHP-FPM 5.5.9 المُشغّلين على خادم أوبونتو 14.04 (64 بت). قد لا تكون هذه المعلومات صالحة للإصدارات الأخرى. (تحديث: أؤكد أنه اعتبارًا من خادم أوبونتو 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 هناك، يحتوي على إعدادات مجموعة الخوادم الافتراضية. إذا لم تكن قد اطلعت على هذا الملف من قبل، فمن الأفضل مراجعته وتعديل الإعدادات فيه لتناسب جهازك، لأن الإعدادات الافتراضية مصممة لخادم ذي إمكانيات محدودة، ولكن في الوقت الحالي، أنشئ نسخة منه فقط حتى لا نضطر للبدء من الصفر.

sudo cp www.conf mypool.conf

بالطبع، استبدل كلمة "mypool" بالاسم الذي ترغب في تسمية حمام السباحة الخاص بك به.

افتح الآن الملف الجديد باستخدام محرر النصوص nano أو أي محرر نصوص آخر تفضله، وقم بتعديله ليناسب غرضك. قد ترغب في تغيير عدد العمليات الفرعية، وربما تحديد المستخدم والمجموعة التي يعمل ضمنها المجمع، ولكن الإعدادين اللذين يجب عليك تغييرهما حتمًا هما اسم المجمع والمقبس الذي يستمع إليه، وإلا سيحدث تعارض مع المجمع الحالي، وستتوقف الأمور عن العمل.

اسم مجموعة الخوادم موجود في أعلى الملف، بين قوسين مربعين. الاسم الافتراضي هو [www]. يمكنك تغييره إلى أي اسم تريده؛ أقترح أن يكون الاسم مطابقًا لاسم ملف الإعدادات، لذا في هذا المثال، غيّره إلى [mypool]. إذا لم تُغيّره، فسيقوم PHP-FPM بتحميل أول ملف إعدادات بهذا الاسم فقط، مما قد يُسبب مشاكل.

بعد ذلك، ستحتاج إلى تغيير المقبس أو العنوان الذي تستمع إليه، والذي يتم تحديده بواسطة توجيه الاستماع. بشكل افتراضي، يستخدم PHP-FPM مقابس Unix، لذا من المحتمل أن يبدو توجيه الاستماع الخاص بك على النحو التالي:

listen = /var/run/php5-fpm.sock

يمكنك تغييره إلى أي اسم صالح تريده، ولكن مرة أخرى، أقترح الالتزام باسم مشابه لاسم ملف التكوين، لذا يمكنك على سبيل المثال تعيينه إلى:

listen = /var/run/php5-fpm-mypool.sock

حسنًا، احفظ الملف واخرج من محرر النصوص.

الجزء الثاني - تحديث إعدادات المضيف الافتراضي لـ NGINX

الآن تحتاج إلى فتح ملف المضيف الظاهري NGINX مع تكوين FastCGI الذي تريد تغييره إلى مجموعة جديدة - أو بالأحرى، الاتصال بالمقبس الجديد.

في نظام أوبونتو 14.04، تُخزَّن هذه الإعدادات افتراضيًا في المسار /etc/nginx/sites-available، ولكن يمكن تحديدها في مكان آخر. من الأفضل أن تعرف مكان ملفات إعدادات المضيف الافتراضي لديك.

افتح ملف الإعدادات ذي الصلة في محرر النصوص المفضل لديك، وابحث عن توجيه fastcgi_pass (الذي يجب أن يكون ضمن سياق الموقع) الذي يُعرّف مقبس 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 php5-fpm restart
sudo service nginx restart

وهكذا، تكون قد انتهيت. إذا قمت بكل شيء بشكل صحيح، فيجب أن يستخدم المضيف الافتراضي الذي قمت بتعديله الآن مجموعة PHP-FPM الجديدة ولن يشارك العمليات الفرعية مع أي مضيفات افتراضية أخرى.

شارك على بلوسكايشارك على الفيسبوكشارك على لينكدإنشارك على تمبلرشارك على إكسشارك على لينكدإنثبت على بينتريست

ميكيل كريستنسن

عن المؤلف

ميكيل كريستنسن
ميكيل هو مؤسس ومالك موقع miklix.com. يتمتع بخبرة تزيد عن 20 عامًا كمبرمج كمبيوتر/مطور برامج محترف ويعمل حاليًا بدوام كامل في إحدى شركات تكنولوجيا المعلومات الأوروبية الكبرى. عندما لا يقوم بالتدوين، يقضي وقت فراغه في مجموعة واسعة من الاهتمامات والهوايات والأنشطة، والتي قد تنعكس إلى حد ما في تنوع الموضوعات التي يغطيها هذا الموقع.