NGINX இல் தனி PHP-FPM குளங்களை எவ்வாறு அமைப்பது
வெளியிடப்பட்டது: 15 பிப்ரவரி, 2025 அன்று AM 11:54:45 UTC
கடைசியாகப் புதுப்பிக்கப்பட்டது: 12 ஜனவரி, 2026 அன்று AM 8:30:17 UTC
இந்தக் கட்டுரையில், பல PHP-FPM குளங்களை இயக்குவதற்கும், FastCGI வழியாக NGINX ஐ அவற்றுடன் இணைப்பதற்கும் தேவையான உள்ளமைவு படிகளைப் பற்றி நான் விவாதிக்கிறேன், இது மெய்நிகர் ஹோஸ்ட்களுக்கு இடையில் செயல்முறை பிரிப்பு மற்றும் தனிமைப்படுத்தலை அனுமதிக்கிறது.
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 இன் படி, இந்தப் பதிவில் உள்ள அனைத்து வழிமுறைகளும் இன்னும் செயல்படுகின்றன என்பதை என்னால் உறுதிப்படுத்த முடியும்)
எல்லாவற்றையும் ஒரே தொகுப்பில் இயக்குவதை விட, பல PHP-FPM குழந்தை செயல்முறை தொகுப்பை அமைப்பதில் பல நன்மைகள் உள்ளன. பாதுகாப்பு, பிரித்தல்/தனிமைப்படுத்துதல் மற்றும் வள மேலாண்மை ஆகியவை சில முக்கிய அம்சங்களாக நினைவுக்கு வருகின்றன.
உங்கள் உந்துதல் எதுவாக இருந்தாலும், இந்தப் பதிவு அதைச் செய்ய உங்களுக்கு உதவும் :-)
பகுதி 1 – ஒரு புதிய PHP-FPM பூலை அமைத்தல்
முதலில், PHP-FPM அதன் பூல் உள்ளமைவுகளைச் சேமிக்கும் கோப்பகத்தைக் கண்டுபிடிக்க வேண்டும். உபுண்டு 14.04 இல், இது முன்னிருப்பாக /etc/php5/fpm/pool.d ஆகும். அங்கு ஏற்கனவே www.conf எனப்படும் ஒரு கோப்பு இருக்கலாம், இது இயல்புநிலை பூலத்திற்கான உள்ளமைவை வைத்திருக்கிறது. நீங்கள் அந்தக் கோப்பை இதற்கு முன்பு பார்க்கவில்லை என்றால், நீங்கள் அதைப் பார்த்து, உங்கள் அமைப்பிற்கான அமைப்புகளை மாற்ற வேண்டும், ஏனெனில் இயல்புநிலைகள் மிகவும் குறைவான சேவையகத்திற்கானவை, ஆனால் இப்போது அதன் நகலை உருவாக்கவும், அதனால் நாம் புதிதாகத் தொடங்க வேண்டியதில்லை:
நிச்சயமாக, "mypool" என்பதற்குப் பதிலாக உங்கள் பூல் எப்படி அழைக்கப்பட வேண்டுமோ அதைக் கொண்டு மாற்றவும்.
இப்போது நானோ அல்லது நீங்கள் விரும்பும் எந்த உரை திருத்தியைப் பயன்படுத்தி புதிய கோப்பைத் திறந்து, உங்கள் நோக்கத்திற்கு ஏற்றவாறு அதை சரிசெய்யவும். நீங்கள் குழந்தை செயல்முறை எண்களையும், பூல் எந்த பயனர் மற்றும் குழுவின் கீழ் இயங்குகிறது என்பதையும் மாற்றியமைக்க விரும்பலாம், ஆனால் நீங்கள் கண்டிப்பாக மாற்ற வேண்டிய இரண்டு அமைப்புகள் பூலின் பெயர் மற்றும் அது கேட்கும் சாக்கெட் ஆகும், இல்லையெனில் அது ஏற்கனவே உள்ள பூலுடன் முரண்படும் மற்றும் விஷயங்கள் வேலை செய்வதை நிறுத்திவிடும்.
கோப்பின் மேற்பகுதியில், சதுர அடைப்புக்குறிக்குள் பூலின் பெயர் உள்ளது. இயல்பாகவே இது [www]. இதை நீங்கள் விரும்பும் வகையில் மாற்றவும்; நீங்கள் உள்ளமைவு கோப்பை பெயரிட்டதைப் போலவே நான் பரிந்துரைக்கிறேன், எனவே இந்த எடுத்துக்காட்டின் பொருட்டு அதை [mypool] என மாற்றவும். நீங்கள் அதை மாற்றவில்லை என்றால், PHP-FPM அந்த பெயருடன் முதல் உள்ளமைவு கோப்பை மட்டுமே ஏற்றும் என்று தெரிகிறது, இது விஷயங்களை உடைக்க வாய்ப்புள்ளது.
பின்னர் நீங்கள் கேட்கும் சாக்கெட் அல்லது முகவரியை மாற்ற வேண்டும், இது listen directive ஆல் வரையறுக்கப்படுகிறது. முன்னிருப்பாக, PHP-FPM Unix sockets ஐப் பயன்படுத்துகிறது, எனவே உங்கள் listen directive இப்படி இருக்கும்:
நீங்கள் விரும்பும் எந்த செல்லுபடியாகும் பெயருக்கும் அதை மாற்றலாம், ஆனால் மீண்டும், உள்ளமைவு கோப்புப் பெயரைப் போன்ற ஒன்றைத் தேர்ந்தெடுக்க நான் பரிந்துரைக்கிறேன், எடுத்துக்காட்டாக, நீங்கள் அதை இவ்வாறு அமைக்கலாம்:
சரி, கோப்பைச் சேமித்து உரை திருத்தியிலிருந்து வெளியேறவும்.
பகுதி 2 – NGINX மெய்நிகர் ஹோஸ்ட் உள்ளமைவைப் புதுப்பிக்கவும்
இப்போது நீங்கள் புதிய பூலுக்கு மாற்ற விரும்பும் FastCGI உள்ளமைவுடன் NGINX மெய்நிகர் ஹோஸ்ட் கோப்பைத் திறக்க வேண்டும் - அல்லது புதிய சாக்கெட்டுடன் இணைக்க வேண்டும்.
உபுண்டு 14.04 இல் இயல்பாக, இவை /etc/nginx/sites-available இன் கீழ் சேமிக்கப்படும், ஆனால் வேறு எங்காவது வரையறுக்கலாம். உங்கள் மெய்நிகர் ஹோஸ்ட் உள்ளமைவுகள் எங்கு அமைந்துள்ளன என்பது உங்களுக்கு நன்றாகத் தெரியும் ;-)
உங்களுக்குப் பிடித்த உரை திருத்தியில் தொடர்புடைய உள்ளமைவு கோப்பைத் திறந்து, PHP-FPM சாக்கெட்டை வரையறுக்கும் fastcgi_pass கட்டளையைத் (இது ஒரு இருப்பிட சூழலில் இருக்க வேண்டும்) தேடுங்கள். படி ஒன்றின் கீழ் நீங்கள் செய்த புதிய PHP-FPM பூல் உள்ளமைவுடன் பொருந்துமாறு இந்த மதிப்பை நீங்கள் மாற்ற வேண்டும், எனவே எங்கள் எடுத்துக்காட்டைத் தொடர்ந்தால் இதை இவ்வாறு மாற்றுவீர்கள்:
fastcgi_pass யூனிக்ஸ்:/var/run/php5-fpm-mypool.sock;
பின்னர் அந்தக் கோப்பையும் சேமித்து மூடவும். நீங்கள் இப்போது கிட்டத்தட்ட முடித்துவிட்டீர்கள்.
பகுதி 3 – PHP-FPM மற்றும் NGINX ஐ மறுதொடக்கம் செய்யுங்கள்
நீங்கள் செய்த உள்ளமைவு மாற்றங்களைப் பயன்படுத்த, PHP-FPM மற்றும் NGINX இரண்டையும் மறுதொடக்கம் செய்யுங்கள். மறுதொடக்கம் செய்வதற்குப் பதிலாக மீண்டும் ஏற்றுவது போதுமானதாக இருக்கலாம், ஆனால் எந்த அமைப்புகள் மாற்றப்படுகின்றன என்பதைப் பொறுத்து அது கொஞ்சம் ஹிட் அண்ட் மிஸ் ஆக இருப்பதாக நான் காண்கிறேன். குறிப்பிட்ட சூழ்நிலையில், பழைய PHP-FPM சைல்ட் செயல்முறைகள் உடனடியாக நிறுத்தப்பட வேண்டும் என்று நான் விரும்பினேன், எனவே PHP-FPM ஐ மறுதொடக்கம் செய்வது தேவைப்பட்டது, ஆனால் NGINX க்கு மீண்டும் ஏற்றுவது போதுமானதாக இருக்கலாம். அதை நீங்களே முயற்சித்துப் பாருங்கள்.
sudo service nginx restart
சரி, நீங்கள் முடித்துவிட்டீர்கள். நீங்கள் எல்லாவற்றையும் சரியாகச் செய்திருந்தால், நீங்கள் மாற்றியமைத்த மெய்நிகர் ஹோஸ்ட் இப்போது புதிய PHP-FPM பூலைப் பயன்படுத்த வேண்டும், மேலும் வேறு எந்த மெய்நிகர் ஹோஸ்ட்களுடனும் குழந்தை செயல்முறைகளைப் பகிர்ந்து கொள்ளக்கூடாது.
