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

Pasul 1 – Instalarea serverului web Nginx

Pentru că Nginx este disponibil în arhivele software implicite din Ubuntu, este posibil să îl instalăm din aceste arhive doar folosind managerul de pachete de sistem apt.

Din moment ce este prima interacțiune cu managerul de pachete apt din această sesiune, vom actualiza indexul local al pachetelor software pentru a avea acces la cele mai recente versiuni ale acestora. Abia după aceea, putem instala nginx:

$ sudo apt update
$ sudo apt install nginx

După acceptarea procesului de instalare, apt va instala Nginx împreună cu toate dependințele software necesare serverului dvs.

Adjustarea Firewall-ului

Înainte de a testa Nginx, firewall-ul software trebui să fie ajustat/configurat pentru a permite accesul la acest serviciu. Nginx se înregistrează ca și serviciu în ufwdupă instalare, făcând configurarea Nginx pentru acces destul de facilă.

Listați configurațiile aplicației cu care ufw știe să lucreze tastând comanda:

$ sudo ufw app list

Ar trebui să vedeți afișat o listă de profiluri pentru aplicații:

Mesaj afișat:

Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

După cum puteți vedea, sunt trei profiluri disponibile pentru Nginx:

  • Nginx Full: Acest profil deschide ambele porturi 80 (trafic web normal, necriptat) și portul 443 (trafic criptat TLS/SSL)
  • Nginx HTTP: Acest profil deschide numai portul 80 (trafic web normal, necriptat)
  • Nginx HTTPS: Acest profil deschide numai portul 443 (trafic criptat TLS/SSL)

Este recomandat să activați cel mai restrictiv profil care va permite totuși traficul pe care l-ați configurat. Din moment ce nu am configurat încă SSL pentru server, în acest tutorial, vom avea nevoie să permitem traficul numai pe portul 80.

Puteți activa acest profil cu ajutorul comenzii:

$ sudo ufw allow 'Nginx HTTP'

Puteți verifica schimbarea tastând:

$ sudo ufw status

Ar trebui să vedeți traficul HTTP permis în mesajul afișat, astfel:

Mesaj afișat

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
Nginx HTTP                 ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Puteți accesa pagina implicită Nginx pentru a confirma că aplicația rulează corect prin accesarea adresei IP a serverului dvs. dintr-un browser. Dacă nu cunoașteți adresa IP a serverului propriu, o puteți obține în câteva moduri diferite.

Încercați să rulați acestă comandă pe serverul dvs.:

$ ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Veți vedea afișate înapoi câteva linii. Le puteți încerca pe fiecare în bara de adrese a browserului pentru a vedea dacă funcțioează.

O alternativă ar fi comanda de mai jos, care ar trebui să vă afișeze adresa IP publică cum este ea văzută din afara rețelei interne, în special din alte locații din internet:

$ curl -4 icanhazip.com

Când aveți adresa IP a serverului dumneavoastră, introduceți-l în bara de adrese a browserului dvs.:

http://adresa_IP

Ar trebui să vedeți afișată pagina de start implicită a Nginx:

Ngnix pagina de start implicită
Pagina de start implicită Ngnix

Această pagină este inclusă în Nginx pentru a vă arăta că serverul funcționează corect.

Pasul 2 – Instalarea MySQL pentru gestionarea datelor din site

Acum că ați instalat un server web, trebuie să instalați MySQL (un sistem de gestionare a bazelor de date) pentru a stoca și gestiona datele din site-ul dvs.

Instalați MySQL cu ajutorul comenzii:

$ sudo apt install mysql-server

Aplicația MySQL pentru baze de date este instalată, dar configurarea acesteia nu este încă terminată.

Pentru a securiza instalarea, MySQL vine cu un script care vă va întreba dacă vreți să modificați câteva setări implicite nesigure. Inițiați scriptul tastând:

$ sudo mysql_secure_installation

Acest program vă va întreba deasemenea, dacă doriți să configurați VALIDATE PASSWORD PLUGIN.

Atenție: Activarea acestei funcții este la latitudinea dvs. Dacă este activată, parolele care nu se potrivesc criteriilor specificate vor fi respinse de MySQL printr-o eroare. Asta vă cauză probleme dacă folosiți parole slabe în cadrul aplicației care configurează automat parolele de utilizator MySQL, cum ar fi pachetele Ubuntu ale phpMyAdmin. Este mult mai sigur să lăsați validarea dezactivată, dar ar trebui să folosiți întotdeauna parole unice și puternice pentru datele de autentificare la bazele de date.

Răspundeți cu Y de la yes (da) , sau cu orice altceva pentru a continua fără activarea opțiunii.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No:

Dacă ați activat validarea, acest script vă va întreba deasemenea dacă doriți să selectați un nivel de validare al parolei. Aveți în vedere că dacă alegeți opțiunea 2 – nivelul cel mai puternic – veți primi erori în momentul în care încercați să setați orice parolă care nu conține numere, majuscule, minuscule și caractere speciale, sau dacă sunt alcătuite din cuvinte comune din dicționar (asta pentru limba engleză).

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

Apoi, veți fi rugat să trimiteți și să confirmați parola root (de administrator):

Please set the password for root here.

New password: 

Re-enter new password: 

Pentru restul întrebărilor ar trebui să apăsați Y și apoi tasta ENTER, de fiecare dată. Acest proces va elimina câțiva utilizatori anonimi precum și baza de date de test, va dezactiva accesul root de la distanță și va încărca aceste noi reguli în așa fel încât MySQL să ia în considerare modificările făcute.

De reținut că pe sistemele Ubuntu care rulează MySQL 5.7 (și versiuni mai noi), utilizatorul root al MySQL este setat să se autentifica folosind pluginul implicit auth_socket și nu cu o parolă. Aceasta permite o mai bună securitate în utilizare în cele mai multe cazuri, dar poate să și complice lucrurile atunci când aveți nevoie de un program extern (de ex. phpMyAdmin) pentru a accesa utilizatorul.

Dacă utilizarea plugin-ului auth_socket pentru accesul la MySQL se potrivește stilului dvs. de lucru, puteți continua cu pasul 3. Dar, dacă, preferați sa folosiți parolă în momentul în care vă conectați la MySQL ca și utilizator root, va trebui să schimbați metoda de autentificare în auth_socketto mysql_native_password. Pentru asta, deschideți consola MySQL din terminalul dvs.:

$ sudo mysql

Apoi, verificați care metoda de autentificare e folosită la fiecare cont de utilizator MySQL cu ajutorul următoarei comenzi:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Mesaj afișat:

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

În acest exemplu puteți vedea cum utilizatorul root chiar se autentifică folosind plugin-ul auth_socket. Pentru a configura contul root să se autentifice cu parolă, rulați următoarea comandă tip ALTER USER. Fiți siguri ca scimbati șirul parola_ta cu o parolă puternică la alegerea dvs.:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'parola_ta';

Apoi rulați comanda FLUSH PRIVILEGES care comunică serverului să reîncarce privilegiile pentru bazele de date, aplicându-le astfel, pe cele noi:

mysql> FLUSH PRIVILEGES;

Verificați metodele de autentificare, folosite de fiecare dintre utilizatori, din nou, pentru a confirma faptul că utilizatorul root nu se mai autentifică folosind auth_socket:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Mesaj afișat

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

Puteți vedea, în mesajul exemplu de mai sus, că utilizatorul MySQL root, în acest moment, se autentifică folosind o parolă. Imediat ce confirmați asta și pe serverul dvs., ieșiți din consola MySQL:

mysql> exit

Atenție: După ce ați configurat contul MySQL root să facă autentificarea cu parolă, nu veți mai putea accesa consola MySQL cu ajutorul comenzii sudo mysql pe care ați folosit-o anterior. În loc de asta, trebuie să rulați următoarea comandă:

$ mysql -u root -p

După introducerea parolei veți putea vedea că v-ați conectat la consola MySQL.

În acest moment sistemul de baze de date este configurat și puteți continua cu instalarea limbajului PHP.

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ă. Câmpurile obligatorii sunt marcate cu *

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

Share via
Copy link
Powered by Social Snap