NGINX ਵਿੱਚ ਵੱਖਰੇ PHP-FPM ਪੂਲ ਕਿਵੇਂ ਸੈੱਟਅੱਪ ਕਰੀਏ
ਪ੍ਰਕਾਸ਼ਿਤ: 19 ਮਾਰਚ 2025 9:27:05 ਬਾ.ਦੁ. UTC
ਆਖਰੀ ਵਾਰ ਅੱਪਡੇਟ ਕੀਤਾ ਗਿਆ: 12 ਜਨਵਰੀ 2026 8:30:30 ਪੂ.ਦੁ. 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 ਸਰਵਰ 14.04 x64 'ਤੇ ਚੱਲ ਰਹੇ ਹਨ। ਇਹ ਹੋਰ ਸੰਸਕਰਣਾਂ ਲਈ ਵੈਧ ਹੋ ਸਕਦਾ ਹੈ ਜਾਂ ਨਹੀਂ ਵੀ ਹੋ ਸਕਦਾ ਹੈ। (ਅੱਪਡੇਟ: ਮੈਂ ਪੁਸ਼ਟੀ ਕਰ ਸਕਦਾ ਹਾਂ ਕਿ Ubuntu ਸਰਵਰ 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 ਨਾਮਕ ਇੱਕ ਫਾਈਲ ਹੈ, ਜੋ ਡਿਫਾਲਟ ਪੂਲ ਲਈ ਸੰਰਚਨਾ ਰੱਖਦੀ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਪਹਿਲਾਂ ਉਸ ਫਾਈਲ ਨੂੰ ਨਹੀਂ ਦੇਖਿਆ ਹੈ ਤਾਂ ਸੰਭਾਵਨਾ ਹੈ ਕਿ ਤੁਹਾਨੂੰ ਇਸਨੂੰ ਦੇਖਣਾ ਚਾਹੀਦਾ ਹੈ ਅਤੇ ਆਪਣੇ ਸੈੱਟਅੱਪ ਲਈ ਇਸ ਵਿੱਚ ਸੈਟਿੰਗਾਂ ਨੂੰ ਬਦਲਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿਉਂਕਿ ਡਿਫਾਲਟ ਕਾਫ਼ੀ ਘੱਟ ਪਾਵਰ ਵਾਲੇ ਸਰਵਰ ਲਈ ਹਨ, ਪਰ ਹੁਣ ਲਈ ਇਸਦੀ ਇੱਕ ਕਾਪੀ ਬਣਾਓ ਤਾਂ ਜੋ ਸਾਨੂੰ ਸ਼ੁਰੂ ਤੋਂ ਸ਼ੁਰੂ ਨਾ ਕਰਨਾ ਪਵੇ:
ਬੇਸ਼ੱਕ, "ਮਾਈਪੂਲ" ਨੂੰ ਉਸ ਨਾਲ ਬਦਲੋ ਜੋ ਤੁਸੀਂ ਆਪਣੇ ਪੂਲ ਨੂੰ ਕਹਿਣਾ ਚਾਹੁੰਦੇ ਹੋ।
ਹੁਣ ਨੈਨੋ ਜਾਂ ਜੋ ਵੀ ਟੈਕਸਟ ਐਡੀਟਰ ਤੁਸੀਂ ਪਸੰਦ ਕਰਦੇ ਹੋ, ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਨਵੀਂ ਫਾਈਲ ਖੋਲ੍ਹੋ ਅਤੇ ਇਸਨੂੰ ਆਪਣੇ ਉਦੇਸ਼ ਦੇ ਅਨੁਸਾਰ ਐਡਜਸਟ ਕਰੋ। ਤੁਸੀਂ ਸ਼ਾਇਦ ਚਾਈਲਡ ਪ੍ਰੋਸੈਸ ਨੰਬਰਾਂ ਨੂੰ ਬਦਲਣਾ ਚਾਹੋਗੇ ਅਤੇ ਸੰਭਵ ਤੌਰ 'ਤੇ ਪੂਲ ਕਿਸ ਉਪਭੋਗਤਾ ਅਤੇ ਸਮੂਹ ਦੇ ਅਧੀਨ ਚੱਲਦਾ ਹੈ, ਪਰ ਦੋ ਸੈਟਿੰਗਾਂ ਜੋ ਤੁਹਾਨੂੰ ਬਿਲਕੁਲ ਬਦਲਣੀਆਂ ਪੈਣਗੀਆਂ ਉਹ ਹਨ ਪੂਲ ਦਾ ਨਾਮ ਅਤੇ ਸਾਕਟ ਜਿਸ ਨੂੰ ਇਹ ਸੁਣ ਰਿਹਾ ਹੈ, ਨਹੀਂ ਤਾਂ ਇਹ ਮੌਜੂਦਾ ਪੂਲ ਨਾਲ ਟਕਰਾ ਜਾਵੇਗਾ ਅਤੇ ਚੀਜ਼ਾਂ ਕੰਮ ਕਰਨਾ ਬੰਦ ਕਰ ਦੇਣਗੀਆਂ।
ਪੂਲ ਦਾ ਨਾਮ ਫਾਈਲ ਦੇ ਸਿਖਰ ਦੇ ਨੇੜੇ ਹੈ, ਜੋ ਕਿ ਵਰਗ ਬਰੈਕਟਾਂ ਵਿੱਚ ਬੰਦ ਹੈ। ਡਿਫਾਲਟ ਤੌਰ 'ਤੇ ਇਹ [www] ਹੈ। ਇਸਨੂੰ ਜੋ ਵੀ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ ਬਦਲੋ; ਮੈਂ ਸੁਝਾਅ ਦਿੰਦਾ ਹਾਂ ਕਿ ਤੁਸੀਂ ਜਿਵੇਂ ਹੀ ਸੰਰਚਨਾ ਫਾਈਲ ਦਾ ਨਾਮ ਦਿੱਤਾ ਹੈ, ਇਸ ਲਈ ਇਸ ਉਦਾਹਰਣ ਦੀ ਖ਼ਾਤਰ ਇਸਨੂੰ [mypool] ਵਿੱਚ ਬਦਲੋ। ਜੇਕਰ ਤੁਸੀਂ ਇਸਨੂੰ ਨਹੀਂ ਬਦਲਦੇ, ਤਾਂ ਅਜਿਹਾ ਲਗਦਾ ਹੈ ਕਿ PHP-FPM ਸਿਰਫ ਉਸ ਨਾਮ ਵਾਲੀ ਪਹਿਲੀ ਸੰਰਚਨਾ ਫਾਈਲ ਲੋਡ ਕਰੇਗਾ, ਜਿਸ ਨਾਲ ਚੀਜ਼ਾਂ ਟੁੱਟਣ ਦੀ ਸੰਭਾਵਨਾ ਹੈ।
ਫਿਰ ਤੁਹਾਨੂੰ ਉਸ ਸਾਕਟ ਜਾਂ ਪਤੇ ਨੂੰ ਬਦਲਣ ਦੀ ਲੋੜ ਹੈ ਜਿਸਨੂੰ ਤੁਸੀਂ ਸੁਣ ਰਹੇ ਹੋ, ਜੋ ਕਿ ਸੁਣਨ ਨਿਰਦੇਸ਼ ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਡਿਫਾਲਟ ਰੂਪ ਵਿੱਚ, PHP-FPM ਯੂਨਿਕਸ ਸਾਕਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਇਸ ਲਈ ਤੁਹਾਡਾ ਸੁਣਨ ਨਿਰਦੇਸ਼ ਸ਼ਾਇਦ ਇਸ ਤਰ੍ਹਾਂ ਦਿਖਾਈ ਦੇਵੇਗਾ:
ਤੁਸੀਂ ਇਸਨੂੰ ਕਿਸੇ ਵੀ ਵੈਧ ਨਾਮ ਨਾਲ ਬਦਲ ਸਕਦੇ ਹੋ ਜੋ ਤੁਸੀਂ ਚਾਹੁੰਦੇ ਹੋ, ਪਰ ਦੁਬਾਰਾ, ਮੈਂ ਸੁਝਾਅ ਦਿੰਦਾ ਹਾਂ ਕਿ ਤੁਸੀਂ ਸੰਰਚਨਾ ਫਾਈਲ ਨਾਮ ਦੇ ਸਮਾਨ ਕੁਝ ਰੱਖੋ, ਤਾਂ ਜੋ ਤੁਸੀਂ ਇਸਨੂੰ ਉਦਾਹਰਣ ਵਜੋਂ ਸੈੱਟ ਕਰ ਸਕੋ:
ਠੀਕ ਹੈ ਫਿਰ, ਫਾਈਲ ਨੂੰ ਸੇਵ ਕਰੋ ਅਤੇ ਟੈਕਸਟ ਐਡੀਟਰ ਤੋਂ ਬਾਹਰ ਆਓ।
ਭਾਗ 2 - NGINX ਵਰਚੁਅਲ ਹੋਸਟ ਕੌਂਫਿਗਰੇਸ਼ਨ ਨੂੰ ਅੱਪਡੇਟ ਕਰੋ
ਹੁਣ ਤੁਹਾਨੂੰ NGINX ਵਰਚੁਅਲ ਹੋਸਟ ਫਾਈਲ ਨੂੰ FastCGI ਕੌਂਫਿਗਰੇਸ਼ਨ ਨਾਲ ਖੋਲ੍ਹਣ ਦੀ ਜ਼ਰੂਰਤ ਹੈ ਜਿਸਨੂੰ ਤੁਸੀਂ ਇੱਕ ਨਵੇਂ ਪੂਲ ਵਿੱਚ ਬਦਲਣਾ ਚਾਹੁੰਦੇ ਹੋ - ਜਾਂ ਇਸ ਦੀ ਬਜਾਏ, ਨਵੇਂ ਸਾਕਟ ਨਾਲ ਜੁੜੋ।
ਉਬੰਟੂ 14.04 'ਤੇ ਡਿਫਾਲਟ ਰੂਪ ਵਿੱਚ, ਇਹ /etc/nginx/sites-available ਦੇ ਅਧੀਨ ਸਟੋਰ ਕੀਤੇ ਜਾਂਦੇ ਹਨ, ਪਰ ਇਹਨਾਂ ਨੂੰ ਕਿਤੇ ਹੋਰ ਵੀ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਤੁਸੀਂ ਸ਼ਾਇਦ ਸਭ ਤੋਂ ਵਧੀਆ ਜਾਣਦੇ ਹੋਵੋਗੇ ਕਿ ਤੁਹਾਡੀਆਂ ਵਰਚੁਅਲ ਹੋਸਟ ਸੰਰਚਨਾਵਾਂ ਕਿੱਥੇ ਸਥਿਤ ਹਨ ;-)
ਆਪਣੇ ਮਨਪਸੰਦ ਟੈਕਸਟ ਐਡੀਟਰ ਵਿੱਚ ਸੰਬੰਧਿਤ ਸੰਰਚਨਾ ਫਾਈਲ ਖੋਲ੍ਹੋ ਅਤੇ PHP-FPM ਸਾਕਟ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਵਾਲੇ fastcgi_pass ਨਿਰਦੇਸ਼ (ਜੋ ਕਿ ਇੱਕ ਸਥਾਨ ਸੰਦਰਭ ਵਿੱਚ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ) ਦੀ ਭਾਲ ਕਰੋ। ਤੁਹਾਨੂੰ ਇਸ ਮੁੱਲ ਨੂੰ ਬਦਲਣਾ ਚਾਹੀਦਾ ਹੈ ਤਾਂ ਜੋ ਇਹ ਪਹਿਲੇ ਕਦਮ ਦੇ ਤਹਿਤ ਤੁਹਾਡੇ ਦੁਆਰਾ ਬਣਾਈ ਗਈ ਨਵੀਂ PHP-FPM ਪੂਲ ਸੰਰਚਨਾ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੋਵੇ, ਇਸ ਲਈ ਸਾਡੀ ਉਦਾਹਰਣ ਨੂੰ ਜਾਰੀ ਰੱਖਦੇ ਹੋਏ ਤੁਸੀਂ ਇਸਨੂੰ ਇਸ ਵਿੱਚ ਬਦਲੋਗੇ:
ਫਾਸਟਸੀਜੀ_ਪਾਸ ਯੂਨਿਕਸ:/var/run/php5-fpm-mypool.sock;
ਫਿਰ ਉਸ ਫਾਈਲ ਨੂੰ ਵੀ ਸੇਵ ਕਰੋ ਅਤੇ ਬੰਦ ਕਰੋ। ਤੁਸੀਂ ਹੁਣ ਲਗਭਗ ਪੂਰਾ ਕਰ ਲਿਆ ਹੈ।
ਭਾਗ 3 – PHP-FPM ਅਤੇ NGINX ਨੂੰ ਮੁੜ ਚਾਲੂ ਕਰੋ
ਤੁਹਾਡੇ ਦੁਆਰਾ ਕੀਤੇ ਗਏ ਸੰਰਚਨਾ ਬਦਲਾਵਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ, PHP-FPM ਅਤੇ NGINX ਦੋਵਾਂ ਨੂੰ ਮੁੜ ਚਾਲੂ ਕਰੋ। ਰੀਸਟਾਰਟ ਦੀ ਬਜਾਏ ਰੀਲੋਡ ਕਰਨਾ ਕਾਫ਼ੀ ਹੋ ਸਕਦਾ ਹੈ, ਪਰ ਮੈਨੂੰ ਇਹ ਥੋੜਾ ਹਿੱਟ ਐਂਡ ਮਿਸ ਲੱਗਦਾ ਹੈ, ਇਸ ਗੱਲ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਕਿਹੜੀਆਂ ਸੈਟਿੰਗਾਂ ਬਦਲੀਆਂ ਗਈਆਂ ਹਨ। ਖਾਸ ਮਾਮਲੇ ਵਿੱਚ, ਮੈਂ ਚਾਹੁੰਦਾ ਸੀ ਕਿ ਪੁਰਾਣੀਆਂ PHP-FPM ਚਾਈਲਡ ਪ੍ਰਕਿਰਿਆਵਾਂ ਤੁਰੰਤ ਖਤਮ ਹੋ ਜਾਣ, ਇਸ ਲਈ PHP-FPM ਨੂੰ ਮੁੜ ਚਾਲੂ ਕਰਨ ਦੀ ਲੋੜ ਸੀ, ਪਰ NGINX ਲਈ ਇੱਕ ਰੀਲੋਡ ਕਾਫ਼ੀ ਹੋ ਸਕਦਾ ਹੈ। ਇਸਨੂੰ ਆਪਣੇ ਲਈ ਅਜ਼ਮਾਓ।
sudo service nginx restart
ਅਤੇ ਵੋਇਲਾ, ਤੁਸੀਂ ਪੂਰਾ ਕਰ ਲਿਆ। ਜੇਕਰ ਤੁਸੀਂ ਸਭ ਕੁਝ ਸਹੀ ਢੰਗ ਨਾਲ ਕੀਤਾ ਹੈ, ਤਾਂ ਤੁਹਾਡੇ ਦੁਆਰਾ ਸੋਧਿਆ ਗਿਆ ਵਰਚੁਅਲ ਹੋਸਟ ਹੁਣ ਨਵੇਂ PHP-FPM ਪੂਲ ਦੀ ਵਰਤੋਂ ਕਰ ਰਿਹਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਅਤੇ ਕਿਸੇ ਹੋਰ ਵਰਚੁਅਲ ਹੋਸਟ ਨਾਲ ਚਾਈਲਡ ਪ੍ਰਕਿਰਿਆਵਾਂ ਨੂੰ ਸਾਂਝਾ ਨਹੀਂ ਕਰਨਾ ਚਾਹੀਦਾ।
