Introducere
Grupul LEMP este un grup de software open source care este instalat impreuna pentru a activa un server care sa gazduiasca site-uri dinamice si aplicatii web. Acest termen este un acronim care reprezinta sistemul de operare Linux, cu server-ul web Enginx ( care inlocuieste componenta Apache din grupul LAMP). Datele site-ului sunt stocate in MySQL, iar continutul dinamic este procesat de PHP.
In acest ghid, vom instala grupul LEMP pe un VPS (Virtual Private Server) CentOS 7. CentOS va respecta prima cerinta: un sistem de operare Linux.
Conditie Prealabila
Inainte de a incepe acest ghid, ar trebui sa aveti separat, un cont de utilizator non-root pe server-ul dvs.
Observatie despre SELinux: Daca aveti o problema cu ne functionarea Nginx, verificati daca configurarea fisierelor este corecta sau schimbati modul SELinux in permissive sau disabled.
Pasul Unu – Instalarea Nginx
In scopul de a afisa pagini web vizitatorilor site-ului dvs., vom instala Nginx, un server web modern si eficient.
Pentru a adauga arhiva CentOS EPEL, deschideti terminalul si folositi urmatoarea comanda:
sudo yum install epel-release
Din moment ce folosim comanda sudo, aceste operatii se executa cu privilegii root. Vi se va cere parola dvs. de utilizator obisnuit pentru a verifica daca aveti permisiunea sa rulati comenzi cu drepturi root.
Acum ca arhiva Nginx este instalata pe server-ul dvs., instalati Nginx folosind comanda yum:
sudo yum install nginx
Dupa aceea, server-ul dvs. este instalat.
Dupa instalare, puteti incepe Nginx pe VPS:
sudo systemctl start nginx
Puteti face o verificare la fata locului imediat pentru a vedea daca totul a decurs conform planului, accesand adresa IP publica in browser-ul dvs. web (a se vedea nota de la punctul urmator pentru a afla care este adresa IP publica in cazul in care nu detineti acesta informatie):
Accesati intr-un browser:
http://server_domain_name_or_IP/
Veti vedea pagina web implicita CentOS Apache, care este doar in scop informativ si de testare. Ar trebui sa arate ca mai jos:
Daca vizualizati acesta pagina atunci server-ul dvs. web este corect instalat.
Ultimul lucru pe care trebuie sa il faceti este sa activati Apache pentru a porni la boot. Pentru a face acest lucru folositi urmatoarea comanda:
sudo systemctl enable nginx
Cum sa gasim adresa publica a server-ului
Daca nu cunoasteti adresa IP publica a server-ului dvs. sunt o multime de modalitati sa o aflati. in mod normal, aceasta este adresa pe care o folositi sa va conectati la server cu ajutorul SSH.
Din linia de comanda o puteti afla in cateva moduri. Primul, puteti folosi instrumentul iproute2 pentru a obtine adresa tastand:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Aceasta va va intoarce una sau doua linii. Ambele sunt adrese corecte, dar calculatorul dvs. poate folosi doar una dintre ele, asa ca o puteti folosi pe care doriti.
O metoda alternativa este sa folositi o parte din afara pentru a va spune cum se vede server-ul. Puteti face acest lucru cerandu-i unui server adresa dvs. IP:
curl http://icanhazip.com
Indiferent de metoda folosita pentru a obtine adresa IP, o puteti introduce in bara de adrese a browser-ului dvs. pentru a accesa server-ul.
Pasul Doi – Instalarea MySQL (MariaDB)
Acum ca aveti server-ul functional, este timpul sa instalati MariaDB, un inlocuitor MySQL. MariaDB este o comunitate dezvoltata de sistemul de management al bazelor de date MySQL. Practic, acesta va organiza si va oferi acces sa baza de date in care site-ul dvs. stocheaza informatia.
Inca o data, putem folosi yum pentru a achizitiona si instala software-ul nostru. De acesta data, vom instala de asemenea si alte pachete ajutatoare care ne vor ajuta sa facem componentele noastre sa functioneze intre ele:
sudo yum install mariadb-server mariadb
Cand instalarea este completa, va trebui sa pornim MariaDB folosind urmatoarea comanda:
sudo systemctl start mariadb
Acum ca baza de date MySQL functioneaza, va trebui sa rulam un singur script de securitate care va inlatura unele setari implicite periculoase si sa limitam putin accesul la baza noastra de date. Lansati script-ul interactiv ruland:
sudo mysql_secure_installation
Veti fi intrebat care este parola root actuala. Din moment ce abia ati instalat MySQL, cel mai probabil nu veti o parola, asa ca o puteti lasa libera tastand enter. Apoi veti fi intrebat daca doriti sa setati o parola root. Mergeti mai departe si introduceti Y, si urmati instructiunile:
mysql_secure_installation prompts:
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
New password: password
Re-enter new password: password
Password updated successfully!
Reloading privilege tables..
... Success!
Pentru restul intrebarilor, va trebui sa apasati tasta „ENTER” pentru fiecare intrebare pentru a accepta valorile implicite. Aceasta va inlatura utilizatorii simplii si bazele de date, va dezactiva autentificarile de la distanta si va incarca acele reguli ca MySQL sa respecte imediat schimbarile pe care le-am facut.
Ultimul lucru pe care veti dori sa il faceti este sa activati MariaDB pentru a porni la boot. Folositi urmatoarea comanda pentru a face acest lucru:
sudo systemctl enable mariadb
In acest moment sistemul de baza de date este acum configurat si putem merge mai departe.
Pasul Trei – Instalarea PHP
PHP este componenta noastra de configurare care va procesa codurile pentru a afisa continutul dinamic. Poate rula script-uri, se poate conecta la baza de date MySQL pentru a obtine informatii si poate inmana continutul procesat mai departe server-ului dvs. pentru a-l afisa.
Inca odata putem folosi sistemul yum pentru a instala componentele noastre. Vom include de asemenea pachetele php-mysql si php-fpm:
sudo yum install php php-mysql php-fpm
Configurarea Procesorului PHP
Avem acum componentele PHP instalate, dar va trebui sa facem cateva usoare modificari de configurare pentru mai multa siguranta.
Deschideti fisierul php-fpm principal de configurare cu drepturi root:
sudo vi /etc/php.ini
Ceea ce cautam in acest fisier este parametrul care stabileste cgi.fix_pathinfo. Acesta va fi comentat cu punct si virgula (;) si setat implicit la „1”.
Aceasta este o setare extrem de nesigura pentru ca cere PHP sa incerce sa execute cele mai apropiate fisiere pe care le gaseste chiar daca un fisier PHP nu se potriveste exact. Acesta practic ar permite accesul utilizatorilor sa uneasca cererile PHP intr-un mod care le-ar permite sa execute script-uri pe care nu ar avea permisiunea sa le execute.
Vom schimba ambele conditii prin inlaturarea liniei si a setarii „0”ca mai jos:
sudo vi /etc/php.ini
Salvati si inchideti fisierul cand ati terminat.
Mai departe, deschideti fisierul php-fpm de configurare www.conf:
sudo vi /etc/php-fpm.d/www.conf
Gasiti linia care specifica parametrul listen si modificati-l sa arate ca mai jos:
/etc/php-php.d/www.conf — 1 of 3
listen = /var/run/php-fpm/php-fpm.sock
In continuare, gasiti liniile care seteaza listen.owner si listen.group si inlaturati comment-ul. Ar trebui sa arate ca mai jos:
/etc/php-php.d/www.conf — 2 of 3
listen.owner = nobody
listen.group = nobody
La final, gasiti liniile care seteaza user si group si modificati-le valorile din “apache” in “nginx”:
/etc/php-php.d/www.conf — 3 of 3
user = nginx
group = nginx
Salvati si iesiti.
Acum avem nevoie pentru a incepe, sa deschidem procesorul PHP tastand:
sudo systemctl start php-fpm
Acesta va implementa schimbarile pe care le-am facut.
Mai departe, activati php-fpm sa porneasca la boot:
sudo systemctl enable php-fpm
Pasul Patru – Configurarea Nginx pentru a Procesa Paginile PHP
Acum avem toate componentele cerute instalate. Singura schimbare de configurare pe care mai trebuie sa o faceti este sa cerem Nginx sa foloseasca procesorul PHP pentru continut dinamic.
Vom face acest lucru la nivelul unitatii server-ului (unitatile de server sunt similare cu Apache virtual host). Deschideti fisierul de configurare implicita a unitatii server Nginx tastand:
sudo vi /etc/nginx/conf.d/default.conf
In prezent, avand comentariile inlaturate, unitatea implicita de server Nginx va arata ca mai jos:
/etc/nginx/conf.d/default.conf — original
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Va trebui sa aducem unele modificari acestui fisier pentru site-ul nostru.
In primul rand, va trebui sa adaugam optiunea index.php ca prima valoare a directivei indexului nostru pentru a permite fisierelor index PHP sa fie salvate cand un director este cerut
De asemenea, va trebui sa modificam directiva server_name pentru a indica numele domeniului server-ului nostru sau adresa IP publica
Actualul fisier de configurare include cateva linii comment care definesc erorile de procesare obisnuite. Le vom inlatura pe acelea pentru a include acea functionalitate.
Pentru actuala procesare PHP, va trebui sa inlaturam o portiune dintr-o alta sectiune. De asemenea va trebui sa adaugam directiva try_files pentru a ne asigura ca Nginx nu permite trecerea cererilor negative catre procesorul PHP.
Schimbarile pe care trebuie sa le faceti sunt scrise ingrosat in textul de mai jos. Daca doriti, puteti doar copia si lipi totul, iar mai apoi puteti inlocui valoarea server_name cu un nume de domeniu apropiat sau cu o adresa IP:
/etc/nginx/conf.d/default.conf — updated
server {
listen 80;
server_name server_domain_name_or_IP;
# note that these lines are originally from the "location /" block
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Dupa ce ati facut modificarile de mai sus, puteti salva si inchide fisierul.
Reporniti Nginx, pentru a se face modificarile necesare:
sudo systemctl restart nginx
Pasul Cinci – Testarea Procesarii PHP pe Server-ul Web
In loc sa testam daca sistemul dvs. este configurat corespunzator pentru PHP, putem crea un script de baza pentru PHP.
Il putem numi info.php. Pentru ca Apache sa gaseasca fisierul si sa il foloseasca corect, trebuie sa fie salvat intr-un director specific, care este numit “web root”.
In CentOS 7, acest director este localizat in /usr/share/nginx/html/. Putem crea fisierul in acea locatie tastand:
sudo vi /usr/share/nginx/html/info.php
Acesta va deschide un fisier nou. Va trebui sa punem urmatorul text, care este un cod PHP valid, in interiorul fisierului:
Test PHP Script
<?php phpinfo(); ?>
Cand ati terminat salvati si inchideti fisierul.
Acum putem testa daca server-ul nostru web poate afisa continut generat de script-ul PHP. Pentru a incerca acest lucru nu trebuie decat sa vizitam pagina prin intermediul browser-ului web. Veti avea nevoie de adresa IP publica.
Adresa pe care dorim sa o vizitam va fi:
http://your_server_IP_address/info.php
Pagina afisata va arata ca cea de mai jos:
Aceasta pagina ofera informatii despre server din perspectiva PHP. Este util pentru depanare si pentru a va asigura ca setarile dvs. sunt aplicate corect.
In cazul in care acest lucru a fost un succes, atunci PHP functioneaza conform asteptarilor.
Probabil veti dori sa inlaturati acest fisier dupa test pentru ca poate sa ofere informatii despre server utilizatorilor neautorizati. Pentru a face acest lucru, puteti tasta urmatoarele:
sudo rm /usr/share/nginx/html/info.php
Puteti oricand reface aceasta pagina daca doriti sa accesati aceste informatii mai tarziu.
Concluzii
Acum ca aveti grupul LEMP instalat, aveti multe optiuni pentru ce sa faceti in continuare. Practic ati instalat o platforma care va va permite sa instalati o multime de website-uri si software web pe server-ul dvs.
Facebook Twitter