Middle
Kas ir PHP-FPM?
sobes.tech AI
Atbilde no AI
PHP-FPM (FastCGI Process Manager) — tas ir FastCGI procesu pārvaldnieks PHP, alternatīva standarta PHP FastCGI. Tas nodrošina labāku veiktspēju, apstrādājot tīmekļa pieprasījumus ar lielu slodzi. FPM pārvalda PHP procesu baseinu, kas gaida ienākošos pieprasījumus no tīmekļa servera (piemēram, Nginx vai Apache caur mod_proxy_fcgi moduli).
Galvenās īpašības un priekšrocības:
- Procesu baseins: FPM izveido un pārvalda PHP procesu kopumu. Šie procesi var būt statiski (fiksēts skaits), dinamiski (veidojas pēc nepieciešamības noteiktās robežās) vai on-demand (veidojas pie pieprasījuma saņemšanas un tiek iznīcināti pēc apstrādes). Tas ļauj efektīvi izmantot sistēmas resursus.
- Labāka mērogojamība: Pārvaldot procesu baseinu, FPM var apstrādāt daudzus vienlaicīgi ienākošos pieprasījumus, kas ir kritiski augstas slodzes lietojumprogrammām.
- Procesu atdalīšana: Katrs pieprasījums tiek apstrādāts ar atsevišķu FPM procesu, kas palielina stabilitāti. Viena pieprasījuma neveiksme neietekmēs citus.
- Konfigurācija: Nodrošina elastīgu procesu uzvedības iestatīšanu, piemēram, maksimālo pieprasījumu skaitu uz procesu, procesa dzīves laiku, atmiņas pārvaldību.
- Integrācija ar tīmekļa serveriem: Viegli integrējas ar populāriem tīmekļa serveriem caur FastCGI protokolu.
Piemērs konfigurācijai php-fpm.d/www.conf:
; Baseina nosaukums
[www]
; Lietotājs un grupa, ar kuru tiks palaisti procesi
user = www-data
group = www-data
; Klausīšanās TCP ligzdā:
; listen = 127.0.0.1:9000
; vai Unix ligzdā:
listen = /run/php/php7.4-fpm.sock
; Procesu pārvaldības metode:
; static - fiksēts procesu skaits (`pm.max_children`)
; dynamic - dinamisks procesu skaits (`pm.start_servers`, `pm.min_servers`, `pm.max_servers`)
; ondemand - tiek izveidots pie pieprasījuma (`pm.process_idle_timeout`, `pm.max_children`)
pm = dynamic
; Sākotnējais bērnu skaits, palaist režīmā dynamic
pm.start_servers = 5
; Minimālais bērnu skaits, kas vienmēr būs palaisti režīmā dynamic
pm.min_servers = 2
; Maksimālais bērnu skaits režīmā dynamic un static/ondemand
pm.max_children = 15
Bez FPM tīmekļa serverim katrs PHP pieprasījums būtu jāpalaiž PHP interpretētājs, kas ir ļoti neefektīvi. FPM novērš šo problēmu, uzturot gatavus darbam procesus.