Php-fpm nginx pe debian 7 instalați și configurați

În Debian Wheezy php-fpm există în principiu un depozit. Aceasta înseamnă că nu mai trebuie să utilizați repository de terțe părți, cum ar fi DotDeb, pentru a configura și utiliza acest modul minunat.







Ca în orice alt caz, primul lucru de făcut este să instalați pachetele necesare. În ceea ce privește modulele suplimentare, o alegere depinde în mare măsură de cerințele tehnice ale site-ului. În acest exemplu, vom se va stabili modul sau module php-fpm pentru utilizarea cu MySQL, imagini (biblioteca gd), curbeze, ceea ce este necesar pentru mai multe CMS.

Fișierele de configurare sunt localizate în directorul / etc / php5 / fpm /.

Php-fpm vine inițial cu un bazin www ca exemplu de lucru. Puteți edita singur fișierul de configurare pentru acest pool sau creați o nouă grupare bazată pe configurația acestuia.

Să deschidem fișierul de configurare /etc/php5/fpm/pool.d/www.conf. luați în considerare unele variabile și selectați valori pentru ele.

Prima variabilă este numele bazinului. Numele este în paranteze pătrate.

Dacă aveți nevoie pentru a crea o nouă piscină, puteți crea un folder în fișierul /etc/php5/fpm/pool.d/, poolname.conf, și introduceți-l în numele piscina între paranteze drepte: [poolname]. Numele fișierului poate să nu fie același cu numele grupului. Se face numai pentru confort. 🙂

Trebuie avut în vedere că numele pool-ului nu poate fi același cu numele de utilizator - proprietarul site-ului sau orice alt utilizator care există în sistem.

Apoi urmăriți variabilele:

user = www-data
grup = www-date

Valoarea acestor variabile indică utilizatorul și grupul în numele căruia grupul va funcționa. Aici, setați numele de utilizator și grupul care deține fișierele site-ului dvs. Adică utilizatorul în directorul de domiciliu al cărui site este stocat.

Acest lucru rezolvă problema cu drepturile de acces la fișierele site-ului. Nu trebuie să vă faceți griji, postați de fiecare dată dreptul de a scrie într-un anumit dosar al site-ului pentru serverul web și așa mai departe.

Lăsăm unix-soclu. Variabila $ pool va fi înlocuită cu numele bazinului.

ascultați.owner = www-date
listen.group = www-date

De asemenea, nu necesită modificări. Specifică utilizatorul și grupul care devin proprietari ai soclului unix fpm la pornire. Este necesar ca serverul web să aibă permisiuni de citire pe soclu. Dacă modificați valorile acestor variabile la altceva, atunci www-data de utilizator va trebui să fie adăugată la grupul de proprietari socket și să stabilească drepturile pentru citirea socketului de către grup.

La rândul său, drepturile la socket sunt setate la variabila listen.mode. Nu este recomandat să setați permisiunile 0666 din motive de securitate.

pm = static. Când se pornește fpm, se creează un anumit număr de procese bazin, care servesc tuturor cererilor primite. Există, de asemenea, și alte opțiuni pentru controlul proceselor copilului: dinamice și necuvenite.

pm.max_children - numărul de procese generate. Este necesar să se calculeze cât de mult de memorie a procesului, și apoi împărțiți cantitatea de memorie pe care doriți să le aloce pentru PHP5-fpm, la suma de CPU, pentru a primi numărul de pm.max_children (narimer 1000MB / 50MB = 20)







De ce această alegere? 🙂 Aceasta este cea mai economică opțiune. Fiecare proces al bazinului va ocupa cantitatea de memorie RAM alocată variabilei memory_limit plus câteva megabytes per module conectate etc. Cu versiunea statică, toate cererile vor fi procesate doar de procesele create, iar cele noi nu vor fi generate (și vor ocupa o memorie prețioasă). Ca rezultat, avem un consum fix de memorie.

Opțiune în curs. din motive subiective, nu este adecvată, deoarece de fiecare dată când procesul de creare a copilului la primirea cererilor va dura o anumită perioadă de timp. Ce va afecta activitatea site-urilor.

pm.min_spare_servers = acest parametru începe cu numărul de nuclee de procesor înmulțit cu 2 (exemplu 1 nucleu * 2 = 2)
pm.max_spare_servers = acest număr de parametru al nucleului procesorului * 1 (exemplu 1 * 4 = 4)
pm.start_servers = Acest parametru este calculat prin formula (pm.min_spare_servers + pm.max_spare_servers) / 2 (Exemplu (2 + 4) / 2 = 4)
Puterea totală generează aproximativ configurația pentru 1 procesor nuclear de 1 GB de memorie (alocată numai pentru PHP5-FPM, este posibil să aveți un total de 2 GB)
pm.max_children = 20
pm.start_servers = 4
pm.min_spare_servers = 2
pm.max_spare_servers = 4

pm.max_requests este numărul de cereri procesate, după care procesele php-fpm vor fi reîncărcate. Ajută la evitarea scurgerilor de memorie atunci când se utilizează biblioteci terțe. 1000-3000 de cereri, în funcție de volumul de lucru și de cantitatea de memorie de pe server.

La dezvoltarea site-urilor, jurnalul de solicitări lente pentru optimizarea scripturilor poate fi foarte util. Editați variabila slowlog. indicând calea completă spre jurnal.

Pentru a determina care solicitări sunt considerate lent, variabila request_slowlog_timeout vă va ajuta. Aici trebuie să specificați timpul după care informațiile despre cererea lentă vor fi scrise în fișierul jurnal. De exemplu:

Ultimul pas în configurarea php-fpm este instalarea câtorva parametri suplimentari php.ini care vor fi înregistrați direct în fișierul de configurare al bazei.

Director pentru fișierele temporare:

Catalog pentru stocarea fișierelor de sesiune:

Din motive de securitate, accesul la aceste directoare ar trebui să fie numai pentru utilizatorul ale cărui drepturi este bazată pe fondul php-fpm. De asemenea, nu trebuie să utilizați un singur director atât pentru stocarea fișierelor de sesiune, cât și pentru fișierele temporare.

Limitarea memoriei pentru rularea scripturilor ar trebui selectată, pe baza cerințelor site-ului. Pentru a începe:

Parametrul necesar care elimină vulnerabilitatea:

Variabilele sendmail_path și open_basedir nu sunt specificate în mod explicit. Acestea vor fi transmise ca parametri rapizi-cgi în fișierul de configurare nginx. Astfel, pentru fiecare site specific puteți defini personalizarea. 🙂

După ce ați setat toți parametrii necesari, trebuie să reporniți configurația php-fpm cu comanda:

Procesarea scripturilor php cu nginx

Rămâne să configurați nginx pentru a lucra cu php-fpm. Config nu este un design deosebit de complex.

Să ne uităm la niște parametri în detaliu.

try_files $ uri = 404; va afișa o eroare 404 în browser-ul utilizatorului, în loc de mesajul fără fișier de intrare specificat. în cazul în care apare această eroare.

fastcgi_pass - calea către soclul php-fpm. Îți amintești ce nume i-am dat în config? /run/php-$pool.sock. Doar aici nginx nu înțelege variabilele fpm, așa că specificăm calea așa cum este: /run/php-www.sock. 🙂

Catalogul directoarelor pentru open_basedir: un director cu un site, un director pentru salvarea fișierelor temporare, un director pentru fișierele de sesiune.

Dacă doriți să treceți mai mulți parametri, ar trebui să faceți acest lucru înainte de a face acest lucru:

După cum puteți vedea, parametrii sunt separați printr-o pauză de linie: n.

Salvați toate modificările efectuate și reporniți nginx.

De asemenea, putem configura PHP-FPM, pentru repornirea automată, dacă există probleme. În acest exemplu, se va efectua o repornire dacă zece procese copil mor într-un minut și așteptăm 10 secunde înainte de a reporni.

Aceasta este o configurație globală și aparține /etc/php5/fpm/php-fpm.conf:

  • Configurarea xCache
  • [urlspan] configurații nginx pentru php-fpm [/ urlspan]






Articole similare

Trimiteți-le prietenilor: