Miklix

NGINX ਵਿੱਚ ਵੱਖਰੇ PHP-FPM ਪੂਲ ਕਿਵੇਂ ਸੈੱਟਅੱਪ ਕਰੀਏ

ਪ੍ਰਕਾਸ਼ਿਤ: 19 ਮਾਰਚ 2025 9:27:05 ਬਾ.ਦੁ. 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 ਸਿਰਫ਼ ਪਹਿਲੀ ਕਾਨਫਿਗਰੇਸ਼ਨ ਫਾਈਲ ਨੂੰ ਲੋਡ ਕਰੇਗਾ ਜਿਸਦਾ ਨਾਮ ਉਹ ਹੈ, ਜੋ ਸ਼ਾਇਦ ਚੀਜ਼ਾਂ ਨੂੰ ਟੁੱਟਦਾ ਹੈ।

ਫਿਰ ਤੁਹਾਨੂੰ ਉਸ ਸਾਕਟ ਜਾਂ ਐਡਰੈੱਸ ਨੂੰ ਬਦਲਣਾ ਪਏਗਾ ਜਿਸਨੂੰ ਤੁਸੀਂ ਸੁਣ ਰਹੇ ਹੋ, ਜੋ listen ਡਾਇਰੈਕਟਿਵ ਦੁਆਰਾ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਡਿਫ਼ਾਲਟ ਰੂਪ ਵਿੱਚ, PHP-FPM ਯੂਨਿਕਸ ਸਾਕਟਸ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ ਇਸ ਲਈ ਤੁਹਾਡਾ listen ਡਾਇਰੈਕਟਿਵ ਸ਼ਾਇਦ ਇਸ ਤਰ੍ਹਾਂ ਦਿਸੇਗਾ:

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

ਤੁਸੀਂ ਇਸਨੂੰ ਕਿਸੇ ਵੀ ਵੈਧ ਨਾਮ ਨਾਲ ਬਦਲ ਸਕਦੇ ਹੋ, ਪਰ ਫਿਰ ਵੀ, ਮੈਂ ਇਹ ਸਲਾਹ ਦਿੰਦਾ ਹਾਂ ਕਿ ਫਾਈਲ ਦੇ ਨਾਮ ਨਾਲ ਕੁਝ ਮਿਲਦਾ ਜੁਲਦਾ ਰੱਖੋ, ਤਾਂ ਕਿ ਤੁਸੀਂ ਇਸਨੂੰ ਉਦਾਹਰਨ ਵਜੋਂ ਇਸ ਤਰ੍ਹਾਂ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹੋ:

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

ਠੀਕ ਹੈ, ਫਾਈਲ ਨੂੰ ਸੇਵ ਕਰੋ ਅਤੇ ਟੈਕਸਟ ਐਡੀਟਰ ਤੋਂ ਬਾਹਰ ਨਿਕਲ ਜਾਓ।


ਭਾਗ 2 – NGINX ਵਰਚੁਅਲ ਹੋਸਟ ਕਾਨਫਿਗਰੇਸ਼ਨ ਨੂੰ ਅਪਡੇਟ ਕਰੋ

ਹੁਣ ਤੁਹਾਨੂੰ NGINX ਵਰਚੁਅਲ ਹੋਸਟ ਫਾਈਲ ਨੂੰ ਖੋਲ੍ਹਣਾ ਪਏਗਾ ਜਿਸ ਵਿੱਚ ਫਾਸਟਸੀਜੀ ਆਰਥਿਕ ਬਦਲਾਅ ਹੈ ਜੋ ਤੁਸੀਂ ਨਵੇਂ ਪੂਲ ਨਾਲ ਜੋੜਨਾ ਚਾਹੁੰਦੇ ਹੋ – ਜਾਂ ਬਿਲਕੁਲ, ਨਵੇਂ ਸਾਕਟ ਨਾਲ ਜੁੜਨਾ।

Ubuntu 14.04 'ਤੇ ਡਿਫ਼ਾਲਟ ਰੂਪ ਵਿੱਚ ਇਹ ਫਾਈਲਾਂ /etc/nginx/sites-available ਵਿੱਚ ਸਟੋਰ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ, ਪਰ ਇਹ ਕਿਸੇ ਹੋਰ ਥਾਂ ਵੀ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤੀ ਜਾ ਸਕਦੀਆਂ ਹਨ। ਤੁਸੀਂ ਸ਼ਾਇਦ ਸਭ ਤੋਂ ਵਧੀਆ ਜਾਣਦੇ ਹੋ ਕਿ ਤੁਹਾਡੀਆਂ ਵਰਚੁਅਲ ਹੋਸਟ ਕਾਨਫਿਗਰੇਸ਼ਨ ਕਿੱਥੇ ਹਨ ;-)

ਆਪਣੇ ਮਨਪਸੰਦ ਟੈਕਸਟ ਐਡੀਟਰ ਵਿੱਚ ਸੰਬੰਧਤ ਕਾਨਫਿਗਰੇਸ਼ਨ ਫਾਈਲ ਨੂੰ ਖੋਲ੍ਹੋ ਅਤੇ fastcgi_pass ਡਾਇਰੈਕਟਿਵ ਨੂੰ ਲੱਭੋ (ਜੋ ਕਿ ਇੱਕ ਸਥਾਨ ਸੰਦੇਸ਼ ਵਿੱਚ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ) ਜੋ PHP-FPM ਸਾਕਟ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਤੁਸੀਂ ਇਸ ਮੁੱਲ ਨੂੰ ਬਦਲਣਾ ਚਾਹੀਦਾ ਹੈ ਤਾਂ ਜੋ ਇਹ ਨਵੇਂ PHP-FPM ਪੂਲ ਕਾਨਫਿਗਰੇਸ਼ਨ ਨਾਲ ਮੇਲ ਖਾਏ ਜੋ ਤੁਸੀਂ ਪਹਿਲੇ ਕਦਮ ਵਿੱਚ ਬਣਾਇਆ ਸੀ, ਤਾਂ ਜੋ ਸਾਡੇ ਉਦਾਹਰਨ ਨੂੰ ਜਾਰੀ ਰੱਖਦੇ ਹੋਏ ਤੁਸੀਂ ਇਸਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਬਦਲੋਗੇ:

fastcgi_pass unix:/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 ਪੂਲ ਦਾ ਇਸਤੇਮਾਲ ਕਰ ਰਿਹਾ ਹੋਵੇਗਾ ਅਤੇ ਕਿਸੇ ਹੋਰ ਵਰਚੁਅਲ ਹੋਸਟ ਨਾਲ ਬੱਚੇ ਪ੍ਰੋਸੈਸ ਸਾਂਝੇ ਨਹੀਂ ਕਰੇਗਾ।

ਬਲੂਸਕੀ 'ਤੇ ਸਾਂਝਾ ਕਰੋਫੇਸਬੁੱਕ 'ਤੇ ਸਾਂਝਾ ਕਰੋਲਿੰਕਡਇਨ 'ਤੇ ਸਾਂਝਾ ਕਰੋਟਮਬਲਰ 'ਤੇ ਸਾਂਝਾ ਕਰੋX 'ਤੇ ਸਾਂਝਾ ਕਰੋਲਿੰਕਡਇਨ 'ਤੇ ਸਾਂਝਾ ਕਰੋPinterest 'ਤੇ ਪਿੰਨ ਕਰੋ

ਮਿੱਕੇਲ ਕ੍ਰਿਸਟਨਸਨ

ਲੇਖਕ ਬਾਰੇ

ਮਿੱਕੇਲ ਕ੍ਰਿਸਟਨਸਨ
ਮਿਕੇਲ miklix.com ਦਾ ਸਿਰਜਣਹਾਰ ਅਤੇ ਮਾਲਕ ਹੈ। ਉਸਨੂੰ ਇੱਕ ਪੇਸ਼ੇਵਰ ਕੰਪਿਊਟਰ ਪ੍ਰੋਗਰਾਮਰ/ਸਾਫਟਵੇਅਰ ਡਿਵੈਲਪਰ ਵਜੋਂ 20 ਸਾਲਾਂ ਤੋਂ ਵੱਧ ਦਾ ਤਜਰਬਾ ਹੈ ਅਤੇ ਉਹ ਵਰਤਮਾਨ ਵਿੱਚ ਇੱਕ ਵੱਡੇ ਯੂਰਪੀਅਨ ਆਈਟੀ ਕਾਰਪੋਰੇਸ਼ਨ ਲਈ ਪੂਰਾ ਸਮਾਂ ਕੰਮ ਕਰਦਾ ਹੈ। ਜਦੋਂ ਉਹ ਬਲੌਗ ਨਹੀਂ ਲਿਖਦਾ, ਤਾਂ ਉਹ ਆਪਣਾ ਖਾਲੀ ਸਮਾਂ ਬਹੁਤ ਸਾਰੀਆਂ ਰੁਚੀਆਂ, ਸ਼ੌਕ ਅਤੇ ਗਤੀਵਿਧੀਆਂ 'ਤੇ ਬਿਤਾਉਂਦਾ ਹੈ, ਜੋ ਕਿ ਕੁਝ ਹੱਦ ਤੱਕ ਇਸ ਵੈੱਬਸਾਈਟ 'ਤੇ ਕਵਰ ਕੀਤੇ ਗਏ ਵਿਸ਼ਿਆਂ ਦੀ ਵਿਭਿੰਨਤਾ ਵਿੱਚ ਪ੍ਰਤੀਬਿੰਬਤ ਹੋ ਸਕਦਾ ਹੈ।