Namestitev in konfiguriranje Nginx + PHP-fpm v Debianu

Namestitev in konfiguriranje Nginx + PHP-fpm v Debianu

Nataliya Oteir Read 8 minute

Nginx je spletni strežnik, ki je bil izdan leta 2004. Ta strežnik je enostaven za uporabo, kljub temu pa odlično obdeluje veliko povezav. Ta lastnost je posledica njegove notranje arhitekture. Sprva je bil ustvarjen kot strežnik, v katerem se izvaja statična vsebina (tako imenovani strežnik predpomnilnika). Za razliko od Apacheja Nginx nima vgrajenega tolmača za obdelavo zahtevkov za dinamično vsebino.

To zahteva dodatno interakcijo med spletnim strežnikom in aplikacijo. Upravitelj procesov PHP-FPM (FastCGI) uspešno rešuje to težavo. Pomembno je, da se pri delu s PHP veznik Nginx + PHP-FPM izkaže za manj produktivnega kot Apache + php_mod.

Če ima torej vaš strežnik visoke zahteve glede zmogljivosti za PHP, je bolje, da si ogledate veznik apache + php_mod. Druga pomembna točka je, da Nginx zahteva več truda za konfiguracijo kot Apache.

Ta članek obravnava namestitev in preprosto konfiguracijo strežnika Nginx v povezavi z upraviteljem procesov PHP-FPM v sistemu Debian 8. Vse operacije se izvajajo pod pravicami uporabnika root.

Najprej morate posodobiti:

apt-get update

Nato namestimo Nginx:

apt-get -y install nginx

Po namestitvi bomo preizkusili strežnik. To storite tako, da v spletnem brskalniku odprete naslov našega strežnika. Odpre se naslednja vsebina:

To je standardna stran vtičnika za Nginx. Naslednji korak je namestitev php5-fpm. To je zelo preprosto:

apt-get -y install php5-fpm

Nato morate opraviti namestitev. Najprej konfigurirajte strežnik Nginx. Konfiguracijska datoteka je v /etc/nginx/nginx.conf.

Odprite to datoteko. Uporabljamo urejevalnik besedila vi, lahko pa uporabite katerega koli drugega, ki vam ustreza.

vi  /etc/nginx/nginx.conf

Razumemo nekaj o strukturi same datoteke. Celotna datoteka je nekoliko podobna programski kodi. Ima direktive. Razdeljene so na dve vrsti:

  • Enostavne - niz z operatorji, ki se končajo s simbolom ";". Na primer: pid /run/nginx.pid;
  • Blok - direktiva, ki vsebuje dodatne parametre, postavljene v oglate oklepaje {}.

Druge direktive so lahko postavljene znotraj oglatih oklepajev. V tem primeru se bo imenoval kontekst, vse direktive, ki so v konfiguracijski datoteki, vendar niso v nobenem oglatem oklepaju, pa so v globalnem kontekstu ali tako imenovanem glavnem kontekstu.

Nizi, označeni s simbolom #, so komentarji in se ne upoštevajo v konfiguraciji.

Kot lahko vidite, je v datoteki direktiva:

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

Ta direktiva pravi, da ta konfiguracijska datoteka vključuje vse konfiguracijske datoteke iz imenika /etc/nginx/sites-enabled/directory. Ta imenik v bistvu vsebuje simbolične povezave do konfiguracije navideznih gostiteljev (v bistvu spletnih mest, ki se strežejo v strežniku).

Zdaj moramo konfigurirati navidezni gostitelj, ki bo odgovoren za naš najpreprostejši vir (naj bo to test.net). Najprej bomo zanj ustvarili imenik. Ustvarimo ga kot ukaz:

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

Zdaj v tem imeniku ustvarimo datoteko index.html z naslednjo vsebino:

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

Zdaj imamo vsebino spletnega mesta, naj in eno stran vsega. Za to spletno mesto morate ustvariti navidezni gostitelj. Kopirajte privzeto datoteko za navidezni gostitelj:

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

Nato jo odprite za urejanje. Direktiva listen ima možnosti za privzeti_server. S to vrednostjo lahko nastavite samo en blok, kar pomeni, da bo ta blok servisiral poizvedbe, za katere ni bilo najdeno nič primernejšega. Zato vrstice

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

morate odstraniti iz te datoteke. Nato morate konfigurirati korenski imenik, ki vsebuje vsebino našega spletnega mesta. To storimo tako, da zapišemo direktivo root, kot sledi:

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

Naslednja direktiva index določa datoteke, ki se bodo uporabljale kot indeksne datoteke. Vrstni red preverjanja datotek ustreza vrstnemu redu v konfiguracijski datoteki. Ta direktiva je zapisana na naslednji način:

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

Naslednja direktiva server_name določa ime strežnika. Kot vrednosti določimo ime domene in vzdevek, kadar je ime domene določeno s predpono www.

server_name test.net www.test.net;

Nato je treba navesti le še direktivo location, ki nastavi konfiguracijo spletnega mesta na podlagi imena URI, navedenega v zahtevi. V našem primeru bo videti preprosto:

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

To pomeni, da bodo najprej preverjene datoteke, nato imeniki, in če ne bo najdeno nič primernega, bo vrnjen podatek Not Found (404).

To je vse s konfiguracijsko datoteko. Njena končna vsebina je naslednja:

#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;
     }
}

Vse druge direktive in njihove vrednosti si lahko preberete v uradni dokumentaciji Nginxa, ki je tukaj http://nginx.org/en/docs/.

Zdaj imamo vsebino spletnega mesta in njegove konfiguracijske datoteke. Ostane nam še, da jo vključimo. To storite tako, da ustvarite simbolno povezavo:

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

Ponovno zaženite strežnik, da bodo spremembe začele veljati:

/etc/init.d/nginx restart

Preverimo delovanje ustvarjenega vira.

Če želite odpreti stran, boste morda morali v datoteko hosts v računalniku, iz katerega preverjate, dodati vrstico:

xxx.xxx.xxx.xxx test.net

Kje xxx.xxx.xxx.xxx - это IP-адрес сервера с установленным Nginx. Файл hosts, находится:

  • (v Win7): C:\Windows\System32\drivers\etc (v Win7);
  • /etc/hosts (v Debian).

Namestili smo Nginx in php5-fpm ter izdelali najpreprostejše spletno mesto. Naslednji korak je konfiguracija PHP in uporaba z Nginxom.

Najprej bomo na našem navideznem gostitelju ustvarili stran s kodo PHP. Datoteko /var/www/test.net/html/info.php naredimo, kot sledi:

<?php
phpinfo();
?>

Zdaj odprite to stran v brskalniku http://test.net/info.php

Kaj pa izvajanje kode PHP? Kode PHP nismo izvršili, ker tolmač PHP v Nginxu ni konfiguriran. Naredimo to.

Odprite našo konfiguracijsko datoteko /etc/nginx/sites-available/test.net. Dodajte naslednjo direktivo blok:

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;
}

Ta direktiva opisuje parametre za obdelavo poizvedb, ki gredo v datoteke PHP. Vsakega parametra in njegove vrednosti ne bom opisoval. Te informacije lahko najdete v uradni dokumentaciji tukaj: http: //nginx.org/en/docs/dirindex.html

Naša konfiguracijska datoteka je zdaj naslednja:

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;
}
}

Shranite spremembe v datoteki in ponovno zaženite naš strežnik Nginx.

/etc/init.d/nginx restart

Zdaj poskusite znova odpreti http://test.net/info.php. Rezultat mora biti naslednji:

Na zaslonski sliki sem označil informacije, ki označujejo uporabo upravitelja FPM.

Dejansko je najpreprostejša konfiguracija strežnika Nginx + PHP-FPM končana. Najenostavnejše spletno mesto je ustvarjeno in konfigurirano za delo s PHP.

Oglejte si naslednji članek o konfiguraciji PHP-FPM.

How useful was this post?

Click on a star to rate it!
Рейтинг: 0/5 - 0 голосов