Configurarea nginx pentru a suporta php cu fastcgi

Nginx include suport pentru tehnologia FastCGI pentru lucrul cu servere și utilitare externe. PHP suportă, de asemenea, FastCGI și poate fi folosit pentru procesarea cererilor FastCGI de la nginx.

Deci, în primul rând avem nevoie pentru a instala PHP cu tehnologia fastcgi pentru a sprijini și de a rula pe orice TCP-port, care apoi vor fi transmise cereri de la Nginx. Procesul de instalare poate diferi în funcție de diferite sisteme, prin urmare, voi descrie procesul de construire a PHP din codul sursă ca fiind una dintre cele mai comune metode. Pentru a obține o versiune a interpretului PHP cu suport FastCGI, puteți utiliza următorul set de comenzi:

# ./configure --prefix = / opt / php --enable-fastcgi

Când această secvență de comenzi este finalizată cu succes, puteți porni serverul fastcgi. Dar există două opțiuni posibile pentru a face acest lucru:

  • Rularea serverului FastCGI încorporat în PHP este o metodă care nu necesită alte utilități suplimentare.
  • Rularea PHP în orice procesor de interogare terță parte - această opțiune poate fi mai convenabilă din cauza flexibilității mai mari în configurație.

Dacă decideți să nu utilizați niciun software terță parte, puteți rula PHP utilizând managerul său de cerere FastCGI încorporat utilizând următorul script:

Calea ABSOLUTĂ la binarul PHP

## tcp-port pentru a le lega

numărul de copii PHP care să se reproducă

## numărul de solicitare înainte ca procesul php să fie repornit

# permite variabilele de mediu sperate de spații

ALLOWED_ENV = "ORACLE_HOME PATH USER"

## dacă acest script este rulat ca root pentru următorul utilizator

################## nu există config sub această linie

dacă testul x $ PHP_FCGI_CHILDREN = x; atunci

dacă testul x $ UID = x0; atunci

EX = "/ bin / su -c -m" $ PHPFCGI -q -b $ FCGIADDR: $ FCGIPORT "$ USERID"

EX = "$ PHPFCGI -b $ FCGIADDR: $ FCGIPORT"

pentru că eu în $ ALLOWED_ENV; face

# mediu curat și configurați unul nou

nohup env - $ E sh -c "$ EX" > / dev / null

Dacă decideți să încercați să utilizați orice software terță parte pentru a rula PHP ca FastCGI-Serer, vă pot sfătui să se uite la utilitatea pachetului lighttpd spawn-fcgi.

Deci, serverul dvs. rulează PHP în mod FastCGI, iar ultimul lucru pe care trebuie să faceți este de a schimba configurația Nginx server, astfel încât direcționează toate cererile într-un fișier php pentru un anumit port TCP-care ascultă PHP. Pentru aceasta, se poate utiliza următorul exemplu al secțiunii de locație din fișierul de configurare nginx (aici este versiunea completă a exemplului):

# treceți scripturile PHP pe serverul FastCGI ascultând pe 127.0.0.1:8888

fastcgi_param SCRIPT_FILENAME / usr / local / Nginx / html $ fastcgi_script_name;

rapidcgi_param QUERY_STRING $ query_string;

fastcgi_param REQUEST_METHOD $ request_method;

fastcgi_param CONTENT_TYPE $ conținut_tip;

fastcgi_param CONTENT_LENGTH $ content_length;

Asta e tot! Acum puteți utiliza serverul dvs. Nginx pentru serviciul de orice site-uri scrise în PHP cu o strânsă performanță cu cel la care model funcționează mod_php în Apache, dar va avea mai multă memorie liberă, permițându-vă să se ocupe de mai multe cereri de la posetitesey site-urile dvs. .

Notă: scriptul de lansare Fast CGI (care este prezentat în acest articol) nu este plin, nu are o parte inferioară! Deși nu, se pare că funcționează.

Articole similare