Konfiguriranje PHP-FPM-a na Linuxu | INTROSERV

Konfiguriranje PHP-FPM-a na Linuxu

by Nataliya Oteir
Konfiguriranje PHP-FPM-a na Linuxu
star 5
0
čitati 5 min.

Nećemo se dotaknuti osnovnih postavki Nginx servera samog i njegove funkcionalnosti, to smo već napravili u našem prethodnom članku. Ali neke parametre treba razmotriti.

Definirajte i navedite broj rukovatelja i broj veza po procesoru. U tu svrhu, u datoteci /etc/nginx/nginx.conf navedemo vrijednosti:

worker_processes 1;
worker_connections 1024;

Osnovna ideja u odabiru ovih vrijednosti je da je broj opsluženih klijenata jednak broju rukovatelja pomnoženom s brojem veza za svaki procesor. Dakle, u našem slučaju, to je 1.024 klijenta. Kako biste izbjegli probleme s ulazom-izlazom, slijedite pravilo 1 procesor po jezgri procesora. Možete odrediti broj jezgri naredbom:

cat /proc/cpuinfo | grep processor
processor : 0

Moj procesor ima jednu jezgru. Stoga je broj procesora jedan. Broj veza može se dodati ovisno o potrebi. Ovaj parametar se već bira u praksi.

Iz sigurnosnih razloga, direktiva se može aktivirati

server_tokens off

Iz priručnika: «Dopušta ili zabranjuje izdavanje Nginx verzije u porukama o greškama i u polju "Server" naslova odgovora.»

Ova direktiva se dodaje u http/server/local odjeljak konfiguracijske datoteke.

Navedimo veličinu podataka koje prenosi server:

client_max_body_size 20m;
client_body_buffer_size 128k;

Ova direktiva se dodaje u http/server/local odjeljak konfiguracijske datoteke.

Konfigurirajte predmemoriju za statičke datoteke. Ovo je radi uštede resursa servera i propusnosti. Onemogućite bilježenje i postavite datum isteka zaglavlja na 100 dana za statičke datoteke.

location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
    access_log off;
    log_not_found off;
    expires 360d;
    }

Za interakciju s PHP-FPM, možete navesti Unix socket. Za to trebamo napisati u našoj konfiguraciji:

# Pass PHP scripts to PHP-FPM
    location ~* \.php$ {
    fastcgi_index index.php;
    fastcgi_pass 127.0.0.1:9000;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    }

Gledajući unaprijed, u PHP-FPM postavkama, trebate navesti da sluša IP i port navedene u našoj konfiguraciji. To se radi direktivom slušanja konfiguracijske datoteke bazena.

Iz sigurnosnih razloga, možete spriječiti pristup skrivenim datotekama.

location ~ /\. {
    access_log off;
    log_not_found off;
    deny all;
    }

PHP-FPM konfiguracija sama se može podijeliti na 2 koraka: postavljanje globalnih parametara koje se provodi u datoteci

/etc/php5/fpm/php-fpm.conf

i konfiguracija bazena. Konfiguracija bazena je navedena u datotekama direktorija

/etc/php5/fpm/pool.d/

Globalni parametri nisu tako zanimljivi i može se o njima čitati u dokumentaciji, ali glavne parametre konfiguracije bazena ćemo razmotriti.

Svaki bazen se konfigurira zasebnom datotekom. Ako izvršite naredbu

ls -l /etc/php5/fpm/pool. d/

vidjet ćemo da sustav već ima konfiguracijsku datoteku za www bazen. Pogledajmo konfiguraciju na njegovom primjeru.

Važna točka u konfiguraciji je odabir broja rukovatelja koji se koriste za izvršavanje PHP skripti. Njihov broj mora biti mudro odabran. Premalo rukovatelja neće omogućiti učinkovitu i promptnu obradu zahtjeva, ali previše ih će iscrpiti resurse koje server zahtijeva za druge zadatke. Broj procesora treba odabrati iz razmatranja da čak i u vršnim zahtjevima serveru, iskorištavanje njegovih resursa treba ostati unutar razumnih granica i ne voditi do njegovog preopterećenja.

Sada pogledajmo malo konfiguracijsku datoteku i navedimo sljedeće opcije. O da, u konfiguracijskoj datoteci, retci koji počinju simbolom «;» su komentari i ne smatraju se direktivama.

Navedite dinamički način stvaranja procesa, tako da će broj pokrenutih PHP-FPM procesa ovisiti izravno o opterećenju servera.

pm = dynamic

Postavite maksimalni broj podređenih procesa.

pm.max_children = 6

Zatim, morate navesti broj podređenih procesa koji će se pokrenuti čim se server učita. Prema zadanim postavkama, ova vrijednost je 2. Možete je povećati ako resursi dozvoljavaju; postavimo je na 3.

pm.start_servers = 3

Također trebate navesti minimalni i maksimalni broj neaktivnih procesa. Napravimo minimalni broj jednak broju procesa koji rade pri pokretanju servera. I postavit ćemo maksimalni broj na temelju toga da ne bi trebao prelaziti maksimalni dopušteni broj podređenih procesa.

pm.min_spare_servers = 3
    pm.max_spare_servers = 5

Ove vrijednosti su dane za primjer i objašnjenje. Ali u svakoj specifičnoj situaciji, mogu varirati. Optimalne vrijednosti ovise o mogućnostima servera i dostupnim resursima, broju i složenosti PHP koda, broju upita i opterećenju servera. Ovi parametri mogu se dobiti samo praktičnom primjenom i testiranjem stvorene stranice.

Sada razmotrimo specifične postavke.

Prvo, konfigurirat ćemo bilježenje informacija o skriptama koje se sporo izvršavaju. Ove informacije bit će korisne u razjašnjavanju razloga za kašnjenja na stranici. Prvo, postavit ćemo vremenski prag, nakon kojeg će se izvršavanje skripte smatrati sporim.

request_slowlog_timeout = 10s

Vremenske jedinice mogu biti navedene u sekundama (s), minutama (m), satima (h) ili danima (d). Naveli smo vrijeme od 10 sekundi.

Sada ćemo također navesti ime datoteke kamo će se informacije slati.

slowlog = /var/log/slowphp.log

Sada se ova datoteka može proučavati za proučavanje «sporih» skripti.

Ako želite pokrenuti skripte u izoliranom okruženju ili chroot okruženju. Ova opcija se obično koristi u sigurnosne svrhe. Morate postaviti opciju chroot da biste omogućili ovu značajku.

Prilikom postavljanja ove opcije, trebate zapamtiti da će to povlačiti promjene u obradi PHP skripti.

Sve putanje datoteka sada će se gledati relativno u odnosu na navedeni direktorij, i PHP skripte neće moći pristupiti socketima smještenima izvan navedenog direktorija.

Za održavanje više stranica, možda će vam trebati dodati dodatne bazene. To vam omogućuje konfiguriranje različitih postavki za svaku stranicu pojedinačno. Za stvaranje dodatnog bazena, kopirajte našu datoteku

/etc/php5/fpm/pool.d/www.conf

pod novim imenom, na primjer

/etc/php5/fpm/pool.d/www2.conf

Otvorite novu datoteku i promijenite ime bazena. Da biste to učinili, na vrhu datoteke, promijenite redak [www] u [www2].

I promijenite redak:

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

na

listen = /var/run/www2.sock

U slučaju da želimo da rukovatelj sluša na paru ip:port, direktiva listen će izgledati kao

listen = 127.0.0.1:9000

Zatim ponovno pokrenemo uslugu

/etc/init. d/php5-fpm restart

Novi postovi

VAT

  • Other

    Other

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    %
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • Other
  • canada
  • poland
  • european-union
  • france
  • germany
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria
  • austria