એનજીઆઇએનએક્સમાં અલગ પીએચપી-એફપીએમ પૂલ કેવી રીતે સેટ કરવા
પ્રકાશિત: 15 ફેબ્રુઆરી, 2025 એ 11:55:30 AM UTC વાગ્યે
આ લેખમાં, હું બહુવિધ પીએચપી-એફપીએમ પૂલ્સ ચલાવવા માટે જરૂરી રૂપરેખાંકન પગલાંઓ પર ધ્યાન આપું છું અને ફાસ્ટસીજીઆઈ મારફતે એનજીઆઈએનએક્સને તેમની સાથે જોડું છું, જે વર્ચ્યુઅલ હોસ્ટ્સ વચ્ચે પ્રક્રિયા વિભાજન અને અલગતા માટે પરવાનગી આપે છે.
How to Set Up Separate PHP-FPM Pools in NGINX
આ પોસ્ટમાંની માહિતી એનજીઆઈએનએક્સ 1.4.6 અને પીએચપી-એફપીએમ 5.5.9 પર આધારિત છે જે ઉબુન્ટુ સર્વર 14.04 x64 પર ચાલે છે. તે અન્ય સંસ્કરણો માટે માન્ય હોઈ શકે છે અથવા ન પણ હોઈ શકે. (અપડેટ: હું પુષ્ટિ કરી શકું છું કે ઉબુન્ટુ સર્વર 24.04, પીએચપી-એફપીએમ 8.3 અને એનજીઆઇએનએક્સ 1.24.0 સુધી, આ પોસ્ટમાંની તમામ સૂચનાઓ હજી પણ કામ કરે છે)
એક જ પૂલમાં બધું જ ચલાવવાને બદલે બહુવિધ પીએચપી-એફપીએમ ચાઇલ્ડ પ્રોસેસ પૂલ્સ સ્થાપવાના ઘણા ફાયદા છે. સુરક્ષા, અલગતા/એકલતા અને સંસાધન વ્યવસ્થાપન કેટલાક મુખ્ય મુદ્દાઓ તરીકે ધ્યાનમાં આવે છે.
તમારી પ્રેરણા શું છે તે ધ્યાનમાં લીધા વિના, આ પોસ્ટ તમને તે કરવામાં મદદ કરશે :-)
ભાગ 1 - નવું પીએચપી-એફપીએમ પૂલ સેટ કરો
પ્રથમ, તમારે ડિરેક્ટરીને શોધવાની જરૂર છે જ્યાં PHP-FPM તેના પુલ રૂપરેખાંકનોનો સંગ્રહ કરે છે. ઉબુન્ટુ 14.04 ના રોજ, આ /etc/php5/fpm/pool.d મૂળભૂત રીતે છે. ત્યાં કદાચ પહેલેથી જ એક ફાઇલ છે જેને www.conf તરીકે ઓળખવામાં આવે છે, જે મૂળભૂત પુલ માટે રૂપરેખાંકન ધરાવે છે. જો તમે તે ફાઇલને તક મળે તે પહેલાં ન જોઈ હોય તો તમારે તેમાંથી પસાર થવું જોઈએ અને તમારા સેટઅપ માટે તેમાં સેટિંગ્સ ટ્વીક કરવા જોઈએ કારણ કે ડિફોલ્ટ્સ એકદમ ઓછા પાવરવાળા સર્વર માટે છે, પરંતુ હમણાં માટે ફક્ત તેની એક નકલ બનાવો જેથી આપણે શરૂઆતથી શરૂ ન કરવું પડે:
અલબત્ત, "માયપૂલ"ને બદલી નાંખો અને તમે જે ઇચ્છો છો તે તમારા પૂલને બોલાવવામાં આવે.
હવે નવી ફાઇલને નેનો અથવા તમે જે પણ ટેક્સ્ટ એડિટરને પસંદ કરો છો તેનો ઉપયોગ કરીને ખોલો અને તમારા હેતુને અનુરૂપ તેને સમાયોજિત કરો. તમે સંભવતઃ ચાઇલ્ડ પ્રોસેસ નંબરો અને સંભવતઃ કયા વપરાશકર્તા અને જૂથ હેઠળ પૂલ ચાલે છે તેને ટ્વીક કરવા માંગો છો, પરંતુ તમારે જે બે સેટિંગ્સ સંપૂર્ણપણે બદલવા જોઈએ તે પૂલનું નામ અને સોકેટ છે જે તે સાંભળી રહ્યું છે, અન્યથા તે હાલના પૂલ સાથે ટકરાશે અને વસ્તુઓ કામ કરવાનું બંધ કરી દેશે.
પૂલનું નામ ફાઇલની ટોચની નજીક છે, ચોરસ કૌંસમાં બંધ છે. મૂળભૂત રીતે તે [www]છે. આને તમે જે ઇચ્છો તેમાં બદલો; હું તે જ સૂચવું છું જે તમે રૂપરેખાંકન ફાઇલનું નામ આપ્યું છે, તેથી આ ઉદાહરણ માટે તેને [mypool] માં ફેરવો. જો તમે તેને બદલશો નહીં, તો એવું લાગે છે કે પીએચપી-એફપીએમ ફક્ત તે નામ સાથેની પ્રથમ રૂપરેખાંકન ફાઇલ લોડ કરશે, જે વસ્તુઓને તોડવાની સંભાવના છે.
પછી તમારે તમે જે સોકેટ અથવા સરનામાંને સાંભળી રહ્યા છો તેને બદલવાની જરૂર છે, જે સાંભળવાના નિર્દેશન દ્વારા વ્યાખ્યાયિત કરવામાં આવે છે. મૂળભૂત રીતે, પીએચપી-એફપીએમ યુનિક્સ સોકેટને વાપરે છે તેથી તમારા સાંભળવાના નિર્દેશો કદાચ આના જેવા દેખાશે:
તમે તેને ગમે તે માન્ય નામમાં બદલી શકો છો, પરંતુ ફરીથી, હું સૂચવું છું કે રૂપરેખાંકન ફાઇલનામ જેવું જ કંઇક વળગી રહેવું, તેથી તમે ઉદાહરણ તરીકે તેને આમાં સુયોજિત કરી શકો:
ઠીક છે, ફાઈલ સંગ્રહો અને લખાણ સંપાદકમાંથી બહાર નીકળો.
ભાગ 2 - NGINX વર્ચ્યુઅલ યજમાન રૂપરેખાંકનને સુધારો
હવે તમારે FastCGI રૂપરેખાંકન સાથે NGINX વર્ચ્યુઅલ યજમાન ફાઇલને ખોલવાની જરૂર છે જેને તમે નવા pool માં બદલવા માંગો છો - અથવા તેના બદલે, નવા સોકેટ સાથે જોડાવો.
ઉબુન્ટુ 14.04 ના રોજ મૂળભૂત રીતે, આ /etc/nginx/sites-ઉપલબ્ધ હેઠળ સંગ્રહિત થાય છે, પરંતુ તેને અન્યત્ર પણ વ્યાખ્યાયિત કરી શકાય છે. તમે કદાચ શ્રેષ્ઠ રીતે જાણો છો કે તમારા વર્ચ્યુઅલ યજમાન રૂપરેખાંકનો ક્યાં સ્થિત છે ;-)
તમારા મનપસંદ લખાણ સંપાદકમાં સંબંધિત રૂપરેખાંકન ફાઇલને ખોલો અને પીએચપી-એફપીએમ સોકેટને વ્યાખ્યાયિત કરતા fastcgi_pass નિર્દેશ (જે સ્થાનના સંદર્ભમાં હોવું આવશ્યક છે) માટે જુઓ. તમારે આ મૂલ્યને બદલવું જ જોઇએ જેથી તે નવા PHP-FPM પુલ રૂપરેખાંકનને બંધબેસે જે તમે સ્ટેપ એક હેઠળ બનાવેલ છે, તેથી અમારા ઉદાહરણને ચાલુ રાખતાં તમે આને આમાં બદલી શકશો:
fastcgi_pass unix:/var/run/php5-fpm-mypool.sock;
પછી તે ફાઇલને પણ સેવ કરીને બંધ કરી દો. તમે હવે લગભગ પૂર્ણ થઈ ગયા છો.
ભાગ 3 - પીએચપી-એફપીએમ અને એનજીઆઇએનએક્સને પુનઃશરૂ કરો
તમે કરેલ રૂપરેખાંકન ફેરફારો લાગુ કરવા માટે, PHP-FPM અને NGINX બંનેને પુન:શરૂ કરો. તે ફરીથી શરૂ કરવાને બદલે ફરીથી લોડ કરવા માટે પૂરતું હોઈ શકે છે, પરંતુ મને લાગે છે કે તે થોડું હિટ અને મિસ છે, જેના આધારે કયા સેટિંગ્સ બદલાયા છે તેના પર આધાર રાખે છે. ખાસ કિસ્સામાં, હું ઇચ્છતો હતો કે જૂની પીએચપી-એફપીએમ બાળ પ્રક્રિયાઓ તરત જ મૃત્યુ પામે, તેથી પીએચપી-એફપીએમને ફરીથી શરૂ કરવાની જરૂર હતી, પરંતુ એનજીઆઇએનએક્સ માટે રિલોડ પૂરતો હોઈ શકે છે. તેને તમારા માટે અજમાવી જુઓ.
sudo service nginx restart
અને વોઈલા, તારું કામ પૂરું થઈ ગયું. જો તમે બધું યોગ્ય રીતે કર્યું હોય, તો તમે જે વર્ચ્યુઅલ યજમાનને બદલેલ છે તે હવે નવું PHP-FPM પુલ વાપરવું જોઈએ અને કોઇપણ બીજા વર્ચ્યુઅલ યજમાનો સાથે બાળ પ્રક્રિયાઓને વહેંચતા નથી.