Miklix

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

نُشرت: ١٥ فبراير ٢٠٢٥ م في ١١:٤١:٥٦ ص 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 هناك، والذي يحمل تكوين المجموعة الافتراضية. إذا لم تكن قد نظرت إلى هذا الملف من قبل، فمن المحتمل أن يتعين عليك مراجعته وتعديل الإعدادات فيه لإعدادك لأن الإعدادات الافتراضية مخصصة لخادم ضعيف إلى حد ما، ولكن في الوقت الحالي، قم بعمل نسخة منه حتى لا نضطر إلى البدء من الصفر:

sudo cp www.conf mypool.conf

بالطبع، استبدل "mypool" بأي اسم تريد أن يُطلق على مجموعتك.

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

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

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

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

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

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

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


الجزء 2 – تحديث تكوين المضيف الافتراضي NGINX

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

بشكل افتراضي في Ubuntu 14.04، يتم تخزين هذه الملفات في /etc/nginx/sites-available، ولكن يمكن أيضًا تعريفها في مكان آخر. ربما تكون أنت من يعرف مكان تكوينات المضيف الافتراضي الخاص بك ;-)

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

fastcgi_pass يونكس:/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 عامًا كمبرمج كمبيوتر/مطور برامج محترف ويعمل حاليًا بدوام كامل في إحدى شركات تكنولوجيا المعلومات الأوروبية الكبرى. عندما لا يقوم بالتدوين، يقضي وقت فراغه في مجموعة واسعة من الاهتمامات والهوايات والأنشطة، والتي قد تنعكس إلى حد ما في تنوع الموضوعات التي يغطيها هذا الموقع.