Sobes.tech
Middle

PHP-FPM чист?

sobes.tech AI

Ҷавоб аз AI

PHP-FPM (FastCGI Process Manager) — инҷо менеджери процесҳои FastCGI барои PHP, алтернатив ба стандартии PHP FastCGI. Он беҳтар иҷроишро дар муҳитҳои борик дархостҳо таъмин мекунад. FPM пулро аз процесҳои PHP идора мекунад, ки интизори дархостҳои воридотӣ аз сервери веб (масалан, Nginx ё Apache тавасиси модули mod_proxy_fcgi) мебошанд.

Хусусиятҳо ва манфиатҳои асосии FPM:

  • Пул процесҳо: FPM маҷмӯъро аз процесҳои PHP месозад ва идора мекунад. Ин процесҳо метавонанд статикӣ (сонияти муайян), динамикӣ (дар ҳудудҳои муайян дар асоси эҳтиёҷ созиш мешаванд) ё on-demand (дар вақти дархост сохта мешаванд ва пас аз коркард нест карда мешаванд). Ин ба истифодаи самараноки захираҳои системӣ кӯмак мекунад.
  • Масштабшавии беҳтар: Бо идоракунии пул, FPM метавонад миқдори зиёди дархостҳоро ҳамзамон коркард кунад, ки барои барномаҳои борик муҳим аст.
  • Ҷудо кардани процесҳо: Ҳар як дархост бо процеси махсуси FPM коркард мешавад, ки устувориро баланд мебардорад. Ҳатто нокомии як дархост ба дигарон таъсир намерасонад.
  • Конфигуратсия: Иҷозат медиҳад, ки рафтори процесҳоро ба таври чандир танзим кард, масалан, ҳадди аксар дархостҳо барои ҳар як процес, вақти зиндагии процес, идоракунии хотира.
  • Интегратсия бо серверҳои веб: Ба осонӣ бо серверҳои маъруфи веб тавассути протоколи FastCGI ҳамкорӣ мекунад.

Масалан, конфигуратсияи пулро дар php-fpm.d/www.conf:

; Номи пул
[www]

; Истифодабаранда ва гурӯҳ, ки аз номи онҳо процесҳо оғоз мешаванд
user = www-data
group = www-data

; Гӯш кардан ба TCP сокет:
; listen = 127.0.0.1:9000
; ...ё дар Unix сокет:
listen = /run/php/php7.4-fpm.sock

; Метод идоракунии процесҳо:
; static - шумораи муайяни процесҳо (`pm.max_children`)
; dynamic - шумораи динамикии процесҳо (`pm.start_servers`, `pm.min_servers`, `pm.max_servers`)
; ondemand - дар вақти дархост сохта мешавад (`pm.process_idle_timeout`, `pm.max_children`)
pm = dynamic

; Шумораи аввалини фарзандон дар вақти оғоз дар режими dynamic
pm.start_servers = 5

; Шумораи ҳадди ақал фарзандон, ки ҳамеша фаъол хоҳанд буд дар режими dynamic
pm.min_servers = 2

; Шумораи максималии фарзандон дар режими dynamic ва static/ondemand
pm.max_children = 15

Бе FPM, сервери веб барои ҳар дархости PHP бояд интерпретатори PHP-ро оғоз мекард, ки хеле номуваффақ аст бо сабаби хароҷот. FPM ин мушкилро бо нигоҳ доштани процесҳои омода барои кор ҳал мекунад.