NGINX-ൽ പ്രത്യേക PHP-FPM പൂളുകൾ എങ്ങനെ സജ്ജമാക്കാം
പ്രസിദ്ധീകരിച്ചത്: 2025, ഫെബ്രുവരി 15 11:55:32 AM UTC
ഈ ലേഖനത്തിൽ, ഒന്നിലധികം പിഎച്ച്പി-എഫ്പിഎം പൂളുകൾ പ്രവർത്തിപ്പിക്കുന്നതിനും ഫാസ്റ്റ്സിജിഐ വഴി എൻജിഐഎൻഎക്സിനെ അവയുമായി ബന്ധിപ്പിക്കുന്നതിനും ആവശ്യമായ കോൺഫിഗറേഷൻ ഘട്ടങ്ങൾ ഞാൻ പരിശോധിക്കുന്നു, ഇത് വെർച്വൽ ഹോസ്റ്റുകൾക്കിടയിൽ പ്രോസസ്സ് വേർതിരിക്കാനും ഒറ്റപ്പെടുത്താനും അനുവദിക്കുന്നു.
How to Set Up Separate PHP-FPM Pools in NGINX
ഈ പോസ്റ്റിലെ വിവരങ്ങൾ ഉബുണ്ടു സെർവർ 14.04 x64 ൽ പ്രവർത്തിക്കുന്ന NGINX 1.4.6, PHP-FPM 5.5.9 എന്നിവയെ അടിസ്ഥാനമാക്കിയുള്ളതാണ്. ഇത് മറ്റ് പതിപ്പുകൾക്ക് സാധുതയുള്ളതോ അല്ലാത്തതോ ആകാം. (അപ്ഡേറ്റ്: ഉബുണ്ടു സെർവർ 24.04, PHP-FPM 8.3, NGINX 1.24.0 എന്നിവ പ്രകാരം, ഈ പോസ്റ്റിലെ എല്ലാ നിർദ്ദേശങ്ങളും ഇപ്പോഴും പ്രവർത്തിക്കുന്നുവെന്ന് എനിക്ക് സ്ഥിരീകരിക്കാൻ കഴിയും)
ഒരേ പൂളിൽ എല്ലാം പ്രവർത്തിപ്പിക്കുന്നതിനേക്കാൾ ഒന്നിലധികം പിഎച്ച്പി-എഫ്പിഎം ചൈൽഡ് പ്രോസസ് പൂളുകൾ സജ്ജീകരിക്കുന്നതിന് നിരവധി ഗുണങ്ങളുണ്ട്. സുരക്ഷ, വേർതിരിക്കൽ / ഒറ്റപ്പെടൽ, വിഭവ മാനേജുമെന്റ് എന്നിവ ചില പ്രധാന കാര്യങ്ങളായി മനസ്സിൽ വരുന്നു.
നിങ്ങളുടെ പ്രചോദനം എന്തായിരുന്നാലും, ഈ പോസ്റ്റ് അത് ചെയ്യാൻ നിങ്ങളെ സഹായിക്കും :-)
ഭാഗം 1 - ഒരു പുതിയ PHP-FPM പൂൾ സജ്ജമാക്കുക
ആദ്യം, പിഎച്ച്പി-എഫ്പിഎം അതിന്റെ പൂൾ കോൺഫിഗറേഷനുകൾ സംഭരിക്കുന്ന ഡയറക്ടറി നിങ്ങൾ കണ്ടെത്തേണ്ടതുണ്ട്. Ubuntu 14.04-ൽ, ഇത് /etc/php5/fpm/pool.d ആണ്. ഡിഫോൾട്ട് പൂളിന്റെ കോൺഫിഗറേഷൻ കൈവശം വയ്ക്കുന്ന www.conf എന്ന് വിളിക്കപ്പെടുന്ന ഒരു ഫയൽ ഇതിനകം തന്നെ അവിടെയുണ്ട്. നിങ്ങൾ ആ ഫയൽ മുമ്പ് നോക്കിയിട്ടില്ലെങ്കിൽ, നിങ്ങൾ അത് പരിശോധിച്ച് നിങ്ങളുടെ സജ്ജീകരണത്തിനായി അതിലെ ക്രമീകരണങ്ങൾ മാറ്റണം, കാരണം ഡിഫോൾട്ടുകൾ വളരെ ശക്തി കുറഞ്ഞ സെർവറിനുള്ളതാണ്, പക്ഷേ ഇപ്പോൾ അതിന്റെ ഒരു പകർപ്പ് ഉണ്ടാക്കുക, അതിനാൽ ഞങ്ങൾ ആദ്യം മുതൽ ആരംഭിക്കേണ്ടതില്ല:
തീർച്ചയായും, "മൈപൂൾ" എന്നതിന് പകരം നിങ്ങളുടെ പൂളിനെ വിളിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നതെന്തും ഉപയോഗിക്കുക.
ഇപ്പോൾ നാനോ അല്ലെങ്കിൽ നിങ്ങൾ ഇഷ്ടപ്പെടുന്ന ടെക്സ്റ്റ് എഡിറ്റർ ഉപയോഗിച്ച് പുതിയ ഫയൽ തുറക്കുക, നിങ്ങളുടെ ഉദ്ദേശ്യത്തിന് അനുയോജ്യമായ രീതിയിൽ ക്രമീകരിക്കുക. ചൈൽഡ് പ്രോസസ്സ് നമ്പറുകളും ഒരുപക്ഷേ ഏത് ഉപയോക്താവും ഗ്രൂപ്പും പൂളിന് കീഴിലാണ് പ്രവർത്തിക്കുന്നതെന്നും മാറ്റാൻ നിങ്ങൾ ആഗ്രഹിച്ചേക്കാം, പക്ഷേ നിങ്ങൾ തീർച്ചയായും മാറ്റേണ്ട രണ്ട് ക്രമീകരണങ്ങൾ പൂളിന്റെ പേരും അത് കേൾക്കുന്ന സോക്കറ്റുമാണ്, അല്ലാത്തപക്ഷം ഇത് നിലവിലുള്ള പൂളുമായി പൊരുത്തപ്പെടുകയും കാര്യങ്ങൾ പ്രവർത്തിക്കാതിരിക്കുകയും ചെയ്യും.
കുളത്തിന്റെ പേര് ഫയലിന്റെ മുകൾ ഭാഗത്താണ്, ചതുരാകൃതിയിലുള്ള ബ്രാക്കറ്റുകളിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്നു. ഡിഫോൾട്ടായി ഇത് [www]. ഇത് നിങ്ങൾക്ക് ഇഷ്ടമുള്ളതിലേക്ക് മാറ്റുക; നിങ്ങൾ കോൺഫിഗറേഷൻ ഫയലിന് പേരിട്ടതുപോലെ ഞാൻ നിർദ്ദേശിക്കുന്നു, അതിനാൽ ഈ ഉദാഹരണത്തിനായി ഇത് [mypool] എന്ന് മാറ്റുക. നിങ്ങൾ അത് മാറ്റിയില്ലെങ്കിൽ, പിഎച്ച്പി-എഫ്പിഎം ആ പേരിലുള്ള ആദ്യത്തെ കോൺഫിഗറേഷൻ ഫയൽ മാത്രമേ ലോഡ് ചെയ്യൂ എന്ന് തോന്നുന്നു, ഇത് കാര്യങ്ങൾ തകർക്കാൻ സാധ്യതയുണ്ട്.
തുടർന്ന് നിങ്ങൾ ശ്രദ്ധിക്കുന്ന സോക്കറ്റ് അല്ലെങ്കിൽ വിലാസം മാറ്റേണ്ടതുണ്ട്, ഇത് ശ്രവണ നിർദ്ദേശത്തിൽ നിർവചിച്ചിരിക്കുന്നു. ഡിഫോൾട്ടായി, PHP-FPM യുണിക്സ് സോക്കറ്റുകൾ ഉപയോഗിക്കുന്നു, അതിനാൽ നിങ്ങളുടെ ശ്രവണ നിർദ്ദേശം ഒരുപക്ഷേ ഇങ്ങനെയായിരിക്കും:
നിങ്ങൾക്ക് ആവശ്യമുള്ള ഏത് സാധുവായ പേരിലേക്കും നിങ്ങൾക്ക് ഇത് മാറ്റാൻ കഴിയും, പക്ഷേ വീണ്ടും, കോൺഫിഗറേഷൻ ഫയൽനാമത്തിന് സമാനമായ എന്തെങ്കിലും ഒട്ടിപ്പിടിക്കാൻ ഞാൻ നിർദ്ദേശിക്കുന്നു, അതിനാൽ ഉദാഹരണത്തിന് നിങ്ങൾക്ക് ഇത് സജ്ജമാക്കാം:
ശരി, ഫയൽ സേവ് ചെയ്ത് ടെക്സ്റ്റ് എഡിറ്ററിൽ നിന്ന് പുറത്തുകടക്കുക.
ഭാഗം 2 – അപ് ഡേറ്റ് NGINX വെർച്വൽ ഹോസ്റ്റ് കോൺഫിഗറേഷൻ
ഇപ്പോൾ നിങ്ങൾ ഒരു പുതിയ പൂളിലേക്ക് മാറ്റാൻ ആഗ്രഹിക്കുന്ന ഫാസ്റ്റ്സിജിഐ കോൺഫിഗറേഷൻ ഉപയോഗിച്ച് NGINX വെർച്വൽ ഹോസ്റ്റ് ഫയൽ തുറക്കേണ്ടതുണ്ട് - അല്ലെങ്കിൽ പുതിയ സോക്കറ്റിലേക്ക് കണക്റ്റുചെയ്യുക.
Ubuntu 14.04-ൽ ഡിഫോൾട്ടായി, ഇവ /etc/nginx/sites-available-ന് കീഴിൽ സംഭരിക്കപ്പെടുന്നു, എന്നാൽ മറ്റെവിടെയെങ്കിലും നിർവചിക്കാൻ കഴിയും. നിങ്ങളുടെ വെർച്വൽ ഹോസ്റ്റ് കോൺഫിഗറേഷനുകൾ എവിടെയാണെന്ന് നിങ്ങൾക്ക് നന്നായി അറിയാം ;-)
നിങ്ങളുടെ പ്രിയപ്പെട്ട ടെക്സ്റ്റ് എഡിറ്ററിൽ പ്രസക്തമായ കോൺഫിഗറേഷൻ ഫയൽ തുറന്ന് പിഎച്ച്പി-എഫ്പിഎം സോക്കറ്റിനെ നിർവചിക്കുന്ന fastcgi_pass നിർദ്ദേശം (ഇത് ഒരു ലൊക്കേഷൻ സന്ദർഭത്തിലായിരിക്കണം) തിരയുക. ഘട്ടം ഒന്നിന് കീഴിൽ നിങ്ങൾ നിർമ്മിച്ച പുതിയ PHP-FPM പൂൾ കോൺഫിഗറേഷനുമായി പൊരുത്തപ്പെടുന്നതിന് നിങ്ങൾ ഈ മൂല്യം മാറ്റണം, അതിനാൽ ഞങ്ങളുടെ ഉദാഹരണം തുടരുമ്പോൾ നിങ്ങൾ ഇത് ഇനിപ്പറയുന്നവയിലേക്ക് മാറ്റും:
fastcgi_pass unix:/var/run/php5-fpm-mypool.sock;
തുടർന്ന് ആ ഫയലും സേവ് ചെയ്ത് അടയ്ക്കുക. നിനക്കിപ്പോൾ പണി തീരാറായി.
ഭാഗം 3 - PHP-FPM, NGINX എന്നിവ പുനരാരംഭിക്കുക
നിങ്ങൾ വരുത്തിയ കോൺഫിഗറേഷൻ മാറ്റങ്ങൾ ബാധകമാക്കുന്നതിന്, PHP-FPM, NGINX എന്നിവ പുനരാരംഭിക്കുക. റീസ്റ്റാർട്ട് ചെയ്യുന്നതിന് പകരം റീലോഡ് ചെയ്താൽ മതിയാകും, പക്ഷേ ഏത് ക്രമീകരണങ്ങളാണ് മാറ്റുന്നത് എന്നതിനെ ആശ്രയിച്ച് ഇത് അൽപ്പം ഹിറ്റും മിസ്സും ആണെന്ന് ഞാൻ കാണുന്നു. പ്രത്യേക സാഹചര്യത്തിൽ, പഴയ പിഎച്ച്പി-എഫ്പിഎം ചൈൽഡ് പ്രക്രിയകൾ ഉടനടി മരിക്കണമെന്ന് ഞാൻ ആഗ്രഹിച്ചു, അതിനാൽ പിഎച്ച്പി-എഫ്പിഎം പുനരാരംഭിക്കേണ്ടത് ആവശ്യമാണ്, പക്ഷേ എൻജിഐഎൻഎക്സിന് ഒരു റീലോഡ് മതിയാകും. സ്വയം പരീക്ഷിച്ചു നോക്കൂ.
sudo service nginx restart
പിന്നെ, നിനക്ക് പണി തീർന്നു. നിങ്ങൾ എല്ലാം ശരിയായി ചെയ്തിട്ടുണ്ടെങ്കിൽ, നിങ്ങൾ പരിഷ്കരിച്ച വെർച്വൽ ഹോസ്റ്റ് ഇപ്പോൾ പുതിയ പിഎച്ച്പി-എഫ്പിഎം പൂൾ ഉപയോഗിക്കുന്നതായിരിക്കണം, മറ്റ് ഏതെങ്കിലും വെർച്വൽ ഹോസ്റ്റുകളുമായി കുട്ടികളുടെ പ്രക്രിയകൾ പങ്കിടരുത്.