Cum să instalez stiva LEMP Linux, Nginx, MySQL și PHP pe Ubuntu 18.04

Pasul 3 – Instalarea PHP și configurarea Nginx pentru a utiliza limbajul PHP

Acum aveți Nginx instalat pentru a afișa pagini web și MySQL pentru a stoca și gestiona datele dvs. Însă, nu aveți nimic care sa genereze conținut dinamic. Și aici intră în scenă limbajul de programare PHP.

Din moment ce Nginx nu dispune de procesare nativă PHP ca alte servere web, veți fi nevoiți să instalați php-fpm, care de fapt înseamnă “fastCGI process manager”. Vom configura Nginx să dea mai departe aceste cereri PHP către programul de procesare.

Atenție: În funcție de imaginea de instalare pe care ați folosit-o, s-ar putea să aveți nevoie să adăugați colecția de aplicații Ubuntu universe, care include software gratuit și cu sursă deschisă menținut de comunitatea Ubuntu, înainte de instalarea propriu-zisă a pachetului php-fpm. Pentru asta, tastați comanda:

$ sudo add-apt-repository universe

Instalați modulul php-fpm împreună cu pachetul adițional pentru ajutor, php-mysql, care va permite PHP să comunice cu baza de date din fundal. Instalarea va extrage fișierele de bază necesare. Pentru asta, tastați următoarea comandă:

$ sudo apt install php-fpm php-mysql

Acum aveți toate componentele necesare stivei LEMP instalate, dar mai aveți de făcut câteva modificări de configurarea pentru a seta Nginx să folosească limbajul PHP pentru conținut dinamic.

Aceasta se poate realiza la nivel de bloc de configurare de server (blocurile de configurare de server sunt similare gazdelor virtuale Apache). Pentru aceasta, deschideți un nou fișier tip bloc de configurare din directorul /etc/nginx/sites-available/. În acest exemplu, fișierul bloc este denumit exemplu.ro, deși îl puteți redenumi după bunul plac:

$ sudo nano /etc/nginx/sites-available/exemplu.ro

Prin editarea unui nou fișier bloc de configurare, aveți avantajul că, în loc să îl editați pe cel implicit, veți putea cu ușurință să reveniți la configurația inițială dacă aveți nevoie vreodată.

Adăugați următorul conținut, care a fost preluat și ușor modificat din fișierul bloc de configurare implicit, la noul dvs. fișier bloc de configurare:

          /etc/nginx/sites-available/exemplu.ro

Copy și paste începând de mai jos:

server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name exemplu.ro;

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

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}

Hai să explicăm ce fac fiecare dintre aceste directive și locații de blocuri:

  • listen — Definește pe ce port Nginx va asculta pentru a servi paginile web. În cazul de față va asculta pe portul 80, portul implicit pentru protocolul HTTP.
  • root — Definește directorul rădăcină (de bază) de unde fișierele site-ului sunt servite, sau mai exact locația de stocare a acestora pe server.
  • index — Configurează Nginx pentru a prioritiza afișarea fișierelor servite denumite index.php, atunci când un fișier index este cerut, sau dacă este disponibil.
  • server_name — Definește ce bloc de configurare ar trebui folosit pentru a răspunde unei anumite cereri adresate serverului dvs. Direcționați această directivă către numele de domeniu al serverului dvs. sau către adresa IP publică.
  • location / — Prima locație a blocului include o directiva tip try_files, care verifică existența fișierelor care se potrivesc cererii tip URI. Dacă Nginx nu poate găsi fișierul cu pricina, va returna o eroare tip 404.
  • location ~ \.php$ — Această locație a blocului gestionează procesarea efectivă PHP prin direcționarea Nginx către fișierul de configurarefastcgi-php.conf și către fișierul php7.2-fpm.sock, care declară ce socket este asociat cu php-fpm.
  • location ~ /\.ht — Ultima locație a blocului se ocupă de fișierele .htaccess, pe care Nginx nu le procesează. Prin adăugarea unei directive tip deny all, chiar dacă un fișier din .htaccess va încerca să acceseze calea către directorul rădăcină, acesta nu va fi afișat (servit) vizitatorilor. Practic, cu deny all nimic din fișierele prezente într-un director nu va fi afișat, ignorând astfel fișierele tip .htaccess specifice serverului Apache.

După adăugarea acestor instrucțiuni, salvați și închideți fișierul. Activați noul bloc de configurare pentru server prin creerea unui link simbolic de la noul fișier de configurare bloc (din directorul /etc/nginx/sites-available/) în directorul /etc/nginx/sites-enabled/:

$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

Apoi dezactivați linkul către fișierul implicit de configurare din directortul /sites-enabled/:

$ sudo unlink /etc/nginx/sites-enabled/default

Atenție: Dacă vreodată veți avea nevoie să restaurați configurația implicită, o puteți face prin recreerea linkului simbolic, cu ajutorul comenzii:

$ sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/

Testați noul fișier de configurare să nu aibă erori de sintaxă, rulând comanda:

$ sudo nginx -t

Dacă sunt raportate erori, mergeți înapoi la fișiere și reverificați-le înainte de a continua.

În momentul în care sunteți gata, reîncărcați Nginx pentru ca schimbările făcute să fie aplicate:

$ sudo systemctl reload nginx

Cu această ultimă comandă am terminat de instalat și configurat stiva LEMP. Totuși, ar fi prudent să confirmăm că toate componentele pot comunica între ele.

Pasul 4 – Crearea unui fișier PHP pentru a testa configurația

Stiva dvs. LEMP ar trebui să fie completă în acest moment. O puteți testa pentru a verifica dacă Nginx poate manipula corect fișierele cu extensia.php cu ajutorul interpretorului PHP.

Pentru aceasta, folosiți editorul dvs. de text pentru a crea un fișier test PHP denumitinfo.php în directorul rădăcină al site-ului:

$ sudo nano /var/www/html/info.php

Introduceți următoarele linii în fișierul cel nou. Acesta este cod PHP valid care va afișa informații despre serverul dvs.

<?php
phpinfo();
?>

Când ați terminat, salvați și închideți fișierul.

Acum, puteți vizita această pagină cu ajutorul unui browser web introducând în bara de adrese numele de domeniul al serverului sau adresa IP publică urmată de /info.php:

http://numele_de_domeniu_sau_IP/info.php

Ar trebui să vedeți o pagină web care a fost generată cu ajutorul PHP cu informații despre serverul dvs.:

PHPinfo informații server stiva LEMP
Informații server cu ajutorul PHPinfo

Dacă vedeți o pagină care arată asemănător imaginii de mai sus, înseamnă că ați configurat PHP să lucreze cu Nginx în mod corect.

După verificarea afișări corecte de către Nginx, ar fi foarte bine să ștergeți fișierul creat, deoarece poate da mai multe indicii utilizatorilor neautorizați despre configurația serverului astfel ducând la incidente de securitate nedorite. Puteți oricând recrea acest fișier dacă aveți nevoie.

Pentru moment, ștergeți fișierul cu comanda:

$ sudo rm /var/www/html/info.php

Cu această ultimă comandă, acum aveți stiva LEMP configurată complet și funcțională pe un server Ubuntu versiunea 18.04.

Concluzie

Stiva LEMP este o platformă puternică care vă va permite să setați și să afișați aproape orice site sau aplicație pe serverul dvs.

Există mai multți pași pe care îi puteți face în continuare după această configurare. De exemplu, ați putea să securizați conexiunile către server. Pentru asta, ați putea să urmați tutorialul cum să securizez serverul Ngnix cu ajutorul Let`s Encrypt. Cu ajutorul acestuia, puteți obține un certificat gratuit TLS/SSL pentru serverul dvs., care vă va permite șă afișati conținut web cu ajutorul protocolului HTTPS.

root

Un entuziast pasionat de tot ceea ce înseamnă Linux și Open Source și un energic promotor. Deschis la orice proiecte bazate pe aceste tehnologii.

Lasă un răspuns

Adresa ta de email nu va fi publicată.

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.