Instalacija i konfiguracija Nginxa + PHP-fpm u Debianu | INTROSERV

Instalacija i konfiguracija Nginxa + PHP-fpm u Debianu

by Nataliya Oteir
Instalacija i konfiguracija Nginxa + PHP-fpm u Debianu
star 5
0
čitati 5 min.

Nginx je web server koji je objavljen 2004. godine. Ovaj server je jednostavan za korištenje, ali unatoč tome, savršeno upravlja mnogo veza. Ova značajka je zbog njegove unutarnje arhitekture. Početno je stvoren kao server koji pokreće statični sadržaj (tzv. caching server). Za razliku od Apache-a, Nginx nema ugrađeni interpreter za rukovanje zahtjevima za dinamičkim sadržajem.

To zahtijeva daljnju interakciju između web servera i aplikacije. PHP-FPM upravitelj procesa (FastCGI) uspješno rješava ovaj problem. Važna točka je da u radu s PHP-om, veznik Nginx + PHP-FPM pokazuje se kao manje produktivan od Apache + php_mod.

Dakle, ako vaš server ima visoke zahtjeve performansi za PHP, bolje je pogledati paket apache + php_mod. Još jedna važna točka je da Nginx zahtijeva više truda za konfiguraciju nego Apache.

Ovaj članak se bavi instalacijom i jednostavnom konfiguracijom Nginx servera u kombinaciji s PHP-FPM upraviteljem procesa u Debianu 8. Sve operacije se izvode pod privilegijama root korisnika.

Prvo, trebate ažurirati:

apt-get update

Zatim, instaliramo Nginx:

apt-get -y install nginx

Nakon instalacije, testirat ćemo server. Za to, jednostavno otvorite adresu web preglednika našeg servera. Sljedeći sadržaj će se otvoriti:

Ovo je standardna početna stranica za Nginx. Sljedeći korak je instaliranje php5-fpm. To je vrlo jednostavno:

apt-get -y install php5-fpm

Zatim, trebate napraviti postavljanje. Prvo, konfigurirajte Nginx server. Konfiguracijska datoteka je u /etc/nginx/nginx.conf.

Otvorite ovu datoteku. Koristimo vi tekstualni editor, ali možete koristiti bilo koji drugi koji vam odgovara.

vi  /etc/nginx/nginx.conf

Razumimo malo strukturu same datoteke. Cijela datoteka je pomalo slična programskom kodu. Ima direktive. Podijeljene su u dvije vrste:

  • Jednostavne - string s operatorima koji završava simbolom «;». Na primjer: pid /run/nginx.pid;
  • Blok - direktiva koja sadrži dodatne parametre smještene u vitičaste zagrade {}.

Druge direktive mogu biti postavljene unutar vitičastih zagrada. U tom slučaju, to će se zvati kontekst, i sve direktive koje su u konfiguracijskoj datoteci ali nisu u nikakvim vitičastim zagradama su u globalnom kontekstu ili tzv. glavnom kontekstu.

Stringovi označeni simbolom # su komentari i ne razmatraju se u konfiguraciji.

Kao što možete vidjeti u datoteci postoji direktiva:

include /etc/nginx/sites-enabled/*;

Ova direktiva kaže da ova konfiguracijska datoteka uključuje sve konfiguracijske datoteke iz /etc/nginx/sites-enabled/ direktorija. Ovaj direktorij u biti sadrži simboličke veze na konfiguraciju virtualnih hostova (u biti stranice koje se opslužuju na serveru).

Sada trebamo konfigurirati virtualni host koji će biti odgovoran za naš najjednostavniji resurs (neka to bude test.net). Prvo, stvorit ćemo direktorij za njega. Napravimo to naredbom:

mkdir -p /var/www/test.net/html

Sada kreirajmo index.html datoteku u ovom direktoriju sa sljedećim sadržajem:

<html>
   <head>
      <title>Hello World</title>
   </head>
   <body>
      <h>This is a test page.</h>
   </body>
</html>

Sada imamo sadržaj stranice, neka sve i jednu stranicu. Za ovu stranicu, trebate stvoriti virtualni host. Kopirajte zadanu datoteku za virtualni host:

cp /etc/nginx/sites-available/default /etc/nginx/sites-available/test.net

Zatim, otvorite je za uređivanje. Direktiva listen ima opcije za default_server. Samo jedan blok može biti postavljen s ovom vrijednošću, što znači da će ovaj blok opslužiti upite za koje ništa prikladnije nije pronađeno. Stoga retke

listen 80 default_server;
listen [::]:80 default_server;

morate ukloniti iz ove datoteke. Zatim, morate konfigurirati korijenski direktorij koji sadrži sadržaj naše stranice. Za to pišemo root direktivu ovako:

root /var/www/test.net/html;

Sljedeća index direktiva definira datoteke koje će se koristiti kao datoteke indeksa. Redoslijed kojim se datoteke provjeravaju odgovara redoslijedu u konfiguracijskoj datoteci. Ova direktiva je napisana ovako:

index index.html index.htm index.nginx-debian.html;

Sljedeća server_name direktiva specificira ime servera. Kao vrijednosti navodimo ime domene i alias kada je ime domene navedeno s www prefiksom.

server_name test.net www.test.net;

Zatim, trebate samo navesti location direktivu koja postavlja konfiguraciju stranice na temelju imena URI-ja navedenog u zahtjevu. U našem slučaju, to će izgledati jednostavno:

location / {
   try_files $uri $uri/ =404;
}

To znači da će se prvo provjeriti datoteke, zatim će se provjeriti direktoriji, a ako se ništa prikladno ne pronađe, vratit će se Not Found (404).

To je sve s konfiguracijskom datotekom. Njen konačni sadržaj je sljedeći:

#cat /etc/nginx/sites-available/test.net
server {
     root /var/www/test.net/html;
     index index.html index.htm index.nginx-debian.html;
     server_name test.net www.test.net;
     location / {
           try_files $uri $uri/ =404;
     }
}

Sve druge direktive i njihove vrijednosti mogu se pročitati u službenoj Nginx dokumentaciji, koja je ovdje http://nginx.org/en/docs/.

Sada imamo sadržaj stranice i njezinu konfiguracijsku datoteku. Preostaje je uključiti. Za to stvorite simboličku vezu:

ln -s /etc/nginx/sites-available/test.net /etc/nginx/sites-enabled/

Ponovno pokrenite server kako bi promjene stupile na snagu:

/etc/init.d/nginx restart

Provjerimo rad stvorenog resursa.

Da biste otvorili stranicu, možda ćete trebati dodati redak u hosts datoteku na računalu s kojeg provjeravate:

xxx.xxx.xxx.xxx test.net

Gdje xxx.xxx.xxx.xxx – to je IP adresa servera s instaliranim Nginx-om. Datoteka hosts se nalazi:

  • C:\Windows\System32\drivers\etc (u Win7);
  • /etc/hosts (u Debianu).

Instalirali smo Nginx i php5-fpm kao i napravili najjednostavniju stranicu. Sljedeći korak je konfiguriranje PHP-a i njegova primjena s Nginx-om.

Prvo, stvorit ćemo stranicu s PHP kodom na našem virtualnom hostu. Napravimo /var/www/test.net/html/info.php datoteku ovako:

<?php
phpinfo();
?>

Sada otvorite ovu stranicu u pregledniku http://test.net/info.php

Ali što je s izvršavanjem PHP koda? PHP kod nismo izvršili jer interpreter PHP nije konfiguriran u Nginx-u. Učinimo to.

Otvorite našu konfiguracijsku datoteku /etc/nginx/sites-available/test.net. Dodajte sljedeću blok direktivu:

location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

Ova direktiva opisuje parametre za obradu upita koji idu na PHP datoteke. Neću opisati svaki parametar i njegovu vrijednost. Ove informacije mogu se pronaći u službenoj dokumentaciji ovdje http://nginx.org/en/docs/dirindex.html

Sada je naša konfiguracijska datoteka sljedeća:

server {
root /var/www/test.net/html;
index index.html index.htm index.nginx-debian.html;
server_name test.net www.test.net;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

Spremite promjene u datoteku i ponovno pokrenite naš Nginx server.

/etc/init.d/nginx restart

Sada pokušajmo ponovno otvoriti http://test.net/info.php. Rezultat bi trebao biti sljedeći:

Označio sam informacije na snimci zaslona koje ukazuju na korištenje FPM upravitelja.

U stvari, najjednostavnija konfiguracija Nginx + PHP-FPM servera je završena. Najjednostavnija stranica je stvorena i konfigurirana za rad s PHP-om.

Pogledajte sljedeći članak o konfiguriranju PHP-FPM-a.

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