NGINX ରେ ପୃଥକ PHP-FPM ପୁଲ୍ କିପରି ସେଟ୍ ଅପ୍ କରିବେ
ପ୍ରକାଶିତ: 11:56:10 AM UTC ଠାରେ ଫେବୃଆରୀ 15, 2025
ଏହି ଆର୍ଟିକିଲରେ, ମୁଁ ଏକାଧିକ PHP-FPM ପୁଲ୍ ଚଲାଇବା ଏବଂ NGINX କୁ FastCGI ମାଧ୍ୟମରେ ସଂଯୋଗ କରିବା ପାଇଁ ଆବଶ୍ୟକୀୟ ବିନ୍ୟାସ ପଦକ୍ଷେପଗୁଡ଼ିକ ଉପରେ ଆଲୋଚନା କରିବି, ଯାହା ଭର୍ଚୁଆଲ୍ ହୋଷ୍ଟ ମଧ୍ୟରେ ପ୍ରକ୍ରିୟା ପୃଥକୀକରଣ ଏବଂ ପୃଥକୀକରଣକୁ ଅନୁମତି ଦେବ।
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 ଚାଇଲ୍ଡ ପ୍ରୋସେସ୍ ପୁଲ୍ ସ୍ଥାପନ କରିବାର ଅନେକ ସୁବିଧା ଅଛି। ସୁରକ୍ଷା, ପୃଥକୀକରଣ/ବିଚ୍ଛିନ୍ନତା ଏବଂ ସମ୍ବଳ ପରିଚାଳନା କିଛି ପ୍ରମୁଖ ବିଷୟ ଭାବରେ ମନେ ପକାଏ।
ଆପଣଙ୍କର ପ୍ରେରଣା ଯାହା ହେଉନା କାହିଁକି, ଏହି ପୋଷ୍ଟ ଆପଣଙ୍କୁ ଏହା କରିବାରେ ସାହାଯ୍ୟ କରିବ :-)
ଭାଗ ୧ – ଏକ ନୂତନ PHP-FPM ପୁଲ୍ ସେଟ୍ ଅପ୍ କରନ୍ତୁ
ପ୍ରଥମେ, ଆପଣଙ୍କୁ ସେହି ଡାଇରେକ୍ଟୋରୀକୁ ଖୋଜିବାକୁ ପଡିବ ଯେଉଁଠାରେ PHP-FPM ଏହାର ପୁଲ୍ ବିନ୍ୟାସଗୁଡ଼ିକୁ ସଂରକ୍ଷଣ କରେ। Ubuntu 14.04 ରେ, ଏହା ଡିଫଲ୍ଟ ଭାବରେ /etc/php5/fpm/pool.d ଅଟେ। ସେଠାରେ ବୋଧହୁଏ www.conf ନାମକ ଏକ ଫାଇଲ୍ ପୂର୍ବରୁ ଅଛି, ଯାହା ଡିଫଲ୍ଟ ପୁଲ୍ ପାଇଁ ବିନ୍ୟାସକୁ ଧାରଣ କରେ। ଯଦି ଆପଣ ପୂର୍ବରୁ ସେହି ଫାଇଲ୍ ଦେଖିନାହାଁନ୍ତି, ତେବେ ସମ୍ଭାବନା ଅଛି ଯେ ଆପଣ ଏହାକୁ ଦେଖି ଆପଣଙ୍କର ସେଟଅପ୍ ପାଇଁ ଏଥିରେ ସେଟିଂସ୍ ପରିବର୍ତ୍ତନ କରିବା ଉଚିତ କାରଣ ଡିଫଲ୍ଟଗୁଡ଼ିକ ଏକ ଅତ୍ୟଧିକ ଶକ୍ତିଶାଳୀ ସର୍ଭର ପାଇଁ ଅଟେ, କିନ୍ତୁ ବର୍ତ୍ତମାନ ପାଇଁ କେବଳ ଏହାର ଏକ କପି ତିଆରି କରନ୍ତୁ ଯାହା ଦ୍ଵାରା ଆମକୁ ସ୍କ୍ରାଚ୍ ରୁ ଆରମ୍ଭ କରିବାକୁ ପଡିବ ନାହିଁ:
ନିଶ୍ଚିତ ଭାବରେ, "mypool" କୁ ଆପଣ ଆପଣଙ୍କର ପୁଲକୁ ଯାହା ନାମ ଦେବାକୁ ଚାହୁଁଛନ୍ତି ତାହା ସହିତ ବଦଳାନ୍ତୁ।
ଏବେ nano କିମ୍ବା ଆପଣ ପସନ୍ଦ କରୁଥିବା ଯେକୌଣସି ଟେକ୍ସଟ୍ ଏଡିଟର୍ ବ୍ୟବହାର କରି ନୂତନ ଫାଇଲ୍ ଖୋଲନ୍ତୁ ଏବଂ ଏହାକୁ ଆପଣଙ୍କ ଉଦ୍ଦେଶ୍ୟ ସହିତ ଫିଟ୍ କରିବା ପାଇଁ ଆଡଜଷ୍ଟ କରନ୍ତୁ। ଆପଣ ହୁଏତ ଚାଇଲ୍ଡ ପ୍ରୋସେସ୍ ନମ୍ବରଗୁଡ଼ିକୁ ଏବଂ ସମ୍ଭବତଃ କେଉଁ ଉପଭୋକ୍ତା ଏବଂ ଗୋଷ୍ଠୀରେ ପୁଲ୍ ଚାଲିଥାଏ ତାହା ପରିବର୍ତ୍ତନ କରିବାକୁ ଚାହିଁବେ, କିନ୍ତୁ ଆପଣଙ୍କୁ ନିଶ୍ଚିତ ଭାବରେ ପରିବର୍ତ୍ତନ କରିବାକୁ ପଡିବ ଦୁଇଟି ସେଟିଂସ୍ ହେଉଛି ପୁଲ୍ ର ନାମ ଏବଂ ଏହା ଶୁଣୁଥିବା ସକେଟ୍, ନଚେତ୍ ଏହା ବିଦ୍ୟମାନ ପୁଲ୍ ସହିତ ସଂଘର୍ଷ କରିବ ଏବଂ ଜିନିଷଗୁଡ଼ିକ କାମ କରିବା ବନ୍ଦ କରିଦେବ।
ପୁଲର ନାମ ଫାଇଲର ଉପର ଭାଗରେ ଅଛି, ବର୍ଗାକାର ବନ୍ଧନୀରେ ଆବଦ୍ଧ। ଡିଫଲ୍ଟ ଭାବରେ ଏହା [www] । ଏହାକୁ ଆପଣ ଯାହା ଚାହୁଁଛନ୍ତି ତାହା ପରିବର୍ତ୍ତନ କରନ୍ତୁ; ମୁଁ ଆପଣ ଯେପରି ବିନ୍ୟାସ ଫାଇଲର ନାମ ଦେଇଥିଲେ ସେହିପରି ପରାମର୍ଶ ଦେଉଛି, ତେଣୁ ଏହି ଉଦାହରଣ ପାଇଁ ଏହାକୁ [mypool] ରେ ପରିବର୍ତ୍ତନ କରନ୍ତୁ। ଯଦି ଆପଣ ଏହାକୁ ପରିବର୍ତ୍ତନ ନକରନ୍ତି, ତେବେ ଏହା ଦେଖାଯାଉଛି ଯେ PHP-FPM କେବଳ ସେହି ନାମ ସହିତ ପ୍ରଥମ ବିନ୍ୟାସ ଫାଇଲକୁ ଲୋଡ୍ କରିବ, ଯାହା ଜିନିଷଗୁଡ଼ିକୁ ଭାଙ୍ଗିବାର ସମ୍ଭାବନା ଅଛି।
ତା'ପରେ ଆପଣଙ୍କୁ ଶୁଣୁଥିବା ସକେଟ କିମ୍ବା ଠିକଣା ପରିବର୍ତ୍ତନ କରିବାକୁ ପଡିବ, ଯାହା listen ନିର୍ଦ୍ଦେଶାବଳୀ ଦ୍ୱାରା ପରିଭାଷିତ। ଡିଫଲ୍ଟ ଭାବରେ, PHP-FPM Unix ସକେଟ ବ୍ୟବହାର କରେ ତେଣୁ ଆପଣଙ୍କର listen ନିର୍ଦ୍ଦେଶାବଳୀ ହୁଏତ ଏହିପରି ଦେଖାଯିବ:
ତୁମେ ଏହାକୁ ଯେକୌଣସି ବୈଧ ନାମ ସହିତ ପରିବର୍ତ୍ତନ କରିପାରିବ, କିନ୍ତୁ ପୁଣି ଥରେ, ମୁଁ ବିନ୍ୟାସ ଫାଇଲ ନାମ ସହିତ ସମାନ କିଛି ସହିତ ରହିବାକୁ ପରାମର୍ଶ ଦେଉଛି, ତେଣୁ ତୁମେ ଏହାକୁ ଉଦାହରଣ ସ୍ୱରୂପ ସେଟ୍ କରିପାରିବ:
ଠିକ୍ ଅଛି, ଫାଇଲ୍ ଟି ସେଭ୍ କରନ୍ତୁ ଏବଂ ଟେକ୍ସଟ୍ ଏଡିଟର୍ ରୁ ବାହାରି ଯାଆନ୍ତୁ।
ଭାଗ 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 ଉଭୟକୁ ପୁନଃଆରମ୍ଭ କରନ୍ତୁ। restart ପରିବର୍ତ୍ତେ reload କରିବା ଯଥେଷ୍ଟ ହୋଇପାରେ , କିନ୍ତୁ କେଉଁ ସେଟିଂସ୍ ପରିବର୍ତ୍ତନ ହୋଇଛି ତାହା ଉପରେ ନିର୍ଭର କରି ମୁଁ ଏହାକୁ ଟିକେ ହିଟ୍ ଆଣ୍ଡ୍ ମିସ୍ ବୋଲି ଜାଣିଛି। ନିର୍ଦ୍ଦିଷ୍ଟ କ୍ଷେତ୍ରରେ, ମୁଁ ଚାହୁଁଥିଲି ଯେ ପୁରୁଣା PHP-FPM ଚାଇଲ୍ଡ ପ୍ରକ୍ରିୟାଗୁଡ଼ିକ ତୁରନ୍ତ ମରିଯାଉ, ତେଣୁ PHP-FPM ପୁନଃଆରମ୍ଭ କରିବା ଆବଶ୍ୟକ ଥିଲା, କିନ୍ତୁ NGINX ପାଇଁ ଏକ reload ଯଥେଷ୍ଟ ହୋଇପାରେ। ଏହାକୁ ନିଜେ ଚେଷ୍ଟା କରନ୍ତୁ।
sudo service nginx restart
ଆଉ ହଁ, ତୁମେ କାମ କରିସାରିଲ। ଯଦି ତୁମେ ସବୁକିଛି ଠିକ୍ ଭାବରେ କରିଛ, ତେବେ ତୁମେ ଯେଉଁ ଭର୍ଚୁଆଲ୍ ହୋଷ୍ଟ ପରିବର୍ତ୍ତନ କରିଛ ତାହା ଏବେ ନୂତନ PHP-FPM ପୁଲ୍ ବ୍ୟବହାର କରିବା ଉଚିତ ଏବଂ ଅନ୍ୟ କୌଣସି ଭର୍ଚୁଆଲ୍ ହୋଷ୍ଟ ସହିତ ଚାଇଲ୍ଡ ପ୍ରକ୍ରିୟାଗୁଡ଼ିକୁ ସେୟାର କରିବା ଉଚିତ ନୁହେଁ।