Kumaha Nyetél Kolam PHP-FPM Pisah di NGINX
Diterbitkeun: 15 Pébruari 2025 jam 11.56.11 UTC
Dina tulisan ieu, kuring ngalangkungan léngkah-léngkah konfigurasi anu diperyogikeun pikeun ngajalankeun sababaraha kolam renang PHP-FPM sareng nyambungkeun NGINX ka aranjeunna via FastCGI, ngamungkinkeun prosés pamisahan sareng isolasi antara host virtual.
How to Set Up Separate PHP-FPM Pools in NGINX
Inpormasi dina tulisan ieu dumasar kana NGINX 1.4.6 sareng PHP-FPM 5.5.9 dijalankeun dina Ubuntu Server 14.04 x64. Ieu bisa atawa bisa jadi teu valid pikeun vérsi séjén. (Update: Abdi tiasa mastikeun yén dina Ubuntu Server 24.04, PHP-FPM 8.3 sareng NGINX 1.24.0, sadaya petunjuk dina tulisan ieu masih jalan)
Aya sababaraha kaunggulan pikeun nyetél sababaraha pools prosés anak PHP-FPM tinimbang ngajalankeun sagalana dina kolam renang sarua. Kaamanan, pamisahan / isolasi sareng manajemén sumber daya aya dina pikiran salaku sababaraha anu utama.
Henteu paduli naon motivasi anjeun, tulisan ieu bakal ngabantosan anjeun ngalakukeunana :-)
Bagian 1 - Nyetél kolam renang PHP-FPM énggal
Mimiti, anjeun kedah milarian diréktori dimana PHP-FPM nyimpen konfigurasi kolam renang na. Dina Ubuntu 14.04, ieu /etc/php5/fpm/pool.d sacara standar. Aya meureun geus aya file disebut www.conf , nu nyepeng konfigurasi pikeun pool standar. Upami anjeun henteu acan ningali file éta sateuacan aya kamungkinan anjeun kedah ngaliwat éta sareng nyéépkeun setélan di dinya pikeun pangaturan anjeun sabab standarna kanggo server anu teu kuat, tapi pikeun ayeuna ngan ukur ngadamel salinanna supados urang henteu kedah ngamimitian ti mimiti:
Tangtu, ngaganti "mypool" kalawan naon rék kolam renang anjeun disebut.
Ayeuna buka file anyar nganggo nano atanapi pangropéa téks anu mana waé anu anjeun pikahoyong sareng saluyukeun kana tujuan anjeun. Anjeun meureun bakal hoyong tweak angka prosés anak jeung kamungkinan nu pamaké sarta grup kolam renang dijalankeun dina, tapi dua setélan nu mutlak kudu robah nyaéta ngaran kolam renang urang jeung stop kontak eta dengekeun, disebutkeun eta bakal konflik jeung kolam renang aya jeung hal bakal eureun gawé.
Ngaran kolam renang deukeut luhureun file, enclosed dina kurung pasagi. Sacara standar éta [www] . Ngarobah ieu naon rék; Kuring nyarankeun sarua anjeun ngaranna file konfigurasi, jadi demi conto ieu robah jadi [mypool] . Upami anjeun henteu ngarobih éta, sigana PHP-FPM ngan ukur bakal ngamuat file konfigurasi anu munggaran kalayan nami éta, anu kamungkinan ngarusak hal-hal.
Anjeun teras kedah ngarobih stop kontak atanapi alamat anu anjeun dengekeun, anu didefinisikeun ku diréktif ngadangukeun . Sacara standar, PHP-FPM nganggo sockets Unix sahingga diréktif ngadangukeun anjeun sigana sapertos kieu:
Anjeun tiasa ngarobih kana naon waé nami anu sah anu anjeun pikahoyong, tapi deui, kuring nyarankeun nempel sareng anu sami sareng nami file konfigurasi, ku kituna anjeun tiasa contona nyetél ka:
Janten, simpen file sareng kaluar tina pangropéa téksu.
Bagian 2 - Apdet konfigurasi host virtual NGINX
Ayeuna anjeun kedah muka file host virtual NGINX sareng konfigurasi FastCGI anu anjeun hoyong robih kana kolam renang énggal - atanapi langkungna, sambungkeun kana stop kontak énggal.
Sacara standar dina Ubuntu 14.04, ieu disimpen dina /etc/nginx/sites-available, tapi ogé tiasa dihartikeun di tempat sanés. Anjeun panginten paling terang dimana konfigurasi host virtual anjeun ayana ;-)
Buka file konfigurasi anu relevan dina pangropéa téksu karesep anjeun sareng milarian diréktif fastcgi_pass (anu kedah aya dina kontéks lokasi) netepkeun stop kontak PHP-FPM. Anjeun kedah ngarobih nilai ieu supados cocog sareng konfigurasi kolam renang PHP-FPM énggal anu anjeun lakukeun dina léngkah hiji, janten neraskeun conto kami anjeun bakal ngarobih ieu:
fastcgi_pass unix:/var/run/php5-fpm-mypool.sock;
Teras simpen sareng tutup file éta ogé. Anjeun ampir réngsé ayeuna.
Bagian 3 - Balikan deui PHP-FPM sareng NGINX
Pikeun nerapkeun parobahan konfigurasi anu anjeun lakukeun, balikan deui PHP-FPM sareng NGINX. Bisa jadi cukup pikeun ngamuat deui tinimbang balikan deui , tapi kuring manggihan eta rada hit sarta sono, gumantung kana setélan nu dirobah. Dina kasus nu tangtu, kuring hayang prosés anak PHP-FPM heubeul maot langsung, jadi restarting PHP-FPM ieu diperlukeun, tapi pikeun NGINX reload bisa jadi cukup. Coba eta kaluar pikeun diri.
sudo service nginx restart
Sareng voila, anjeun parantos réngsé. Upami anjeun leres-leres ngalakukeun sadayana, host virtual anu anjeun modifikasi ayeuna kedah nganggo kolam renang PHP-FPM énggal sareng henteu ngabagi prosés anak sareng host virtual anu sanés.