Cum se instalează Linux, Nginx, MySQL, PHP (LEMP) pe CentOS 7 Tipărire

  • 50

O stivă de software LEMP este un grup de software open source care este de obicei instalat împreună pentru a permite unui server să găzduiască site-uri web dinamice și aplicații web. Acest termen este de fapt un acronim care reprezintă sistemul de operare L inux, cu serverul web E Nginx (care înlocuiește componenta Apache a unui stack LAMP). Datele site-ului sunt stocate într-o bază de date bazată pe M ySQL, iar conținutul dinamic este procesat de P HP.

În acest ghid, vom obține o stivă LEMP cu PHP 7.4 instalat pe un server CentOS 7, folosind MariaDB ca sistem de gestionare a bazei de date. MariaDB funcționează ca un înlocuitor pentru serverul MySQL original, ceea ce înseamnă că, în practică, puteți trece la MariaDB fără a fi nevoie să faceți modificări de configurație sau cod în aplicația dvs.

Instalarea MariaDB

MariaDB este un software de baze de date libere și open source. Este un înlocuitor imbunatatit pentru MySQL, unul dintre cele mai populare servere de baze de date din lume.

Pentru a instala MariaDB pe serverul CentOS 7, trebuie să aveți acces complet la serverul rădăcină. Accesul complet la SSH-ul rădăcină este inclus in toate pachetele VPS hosting.

Conectați-vă prin SSH și actualizați sistemul

 

# yum update

 

Pentru a actualiza un anumit pachet, specificați-l după nume:

 

# yum update httpd

 

Instalarea Nginx

Pentru a afișa pagini web vizitatorilor site-ului nostru, vom folosi Nginx, un server web performant. Pentru a obține cea mai recentă versiune Nginx, vom instala mai întâi depozitul EPEL, care conține software suplimentar pentru sistemul de operare CentOS 7.

Pentru a adăuga depozitul CentOS 7 EPEL, rulați următoarea comandă:

 

# yum install epel-release

 

Instalați Nginx folosind următoarea comandă:

 

# yum install nginx

 

După finalizarea instalării, porniți serviciul Nginx cu:

 

# systemctl start nginx

 

Puteți face imediat o verificare la fața locului pentru a verifica dacă totul a decurs așa cum a fost planificat, vizitând adresa IP publică a serverului dvs. în browserul dvs. web (consultați nota de sub titlul următor pentru a afla care este adresa dvs. IP publică dacă nu aveți aceste informații deja):

Veți vedea pagina web implicită CentOS 7 Nginx, care se află acolo în scopuri de informare și testare.

 

# Open in a web browser:
# http://server_domain_name_or_IP/

 

Pentru a permite Nginx să înceapă la pornire, rulați următoarea comandă:

 

# systemctl enable nginx


Dacă nu știți care este adresa IP publică a serverului dvs., există o serie de moduri în care o puteți găsi. De obicei, aceasta este adresa pe care o utilizați pentru a vă conecta la serverul dvs. prin SSH.

Din linia de comandă, puteți găsi acest lucru în câteva moduri.

 

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

 

Instalarea MariaDB

Acum că avem serverul nostru web funcțional, este timpul să instalăm MariaDB, un înlocuitor MySQL drop-in. MariaDB este o forță dezvoltată de comunitate a sistemului de gestionare a bazelor de date relaționale MySQL.

De data aceasta, vom instala și alte pachete de asistență care ne vor ajuta să comunicăm cu componentele noastre:

 

# yum install mariadb-server mariadb

 

Când instalarea este finalizată, trebuie să pornim MariaDB cu următoarea comandă:

 

# systemctl start mariadb

 

Acum că baza noastră de date MariaDB rulează, vrem să rulăm un script de securitate care va elimina unele valori implicite periculoase și va bloca accesul la baza noastră de date. Porniți scriptul interactiv executând:

 

# mysql_secure_installation

 

Solicitarea vă va cere parola de root actoala a MariaDB. Deoarece tocmai ați instalat MariaDB, cel mai probabil nu veți avea o parola setata, așa că lăsați-l necompletat apăsând Enter. Apoi, promptul vă va întreba dacă doriți să setați o parola de root. Continuați și confirmati cu  " Y " si urmați instrucțiunile:

 

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.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!

 

Pentru restul întrebărilor, ar trebui să apăsați tasta „ENTER” prin fiecare prompt pentru a accepta valorile implicite. Acest lucru va elimina câțiva utilizatori și baze de date, va dezactiva datele de conectare root de la distanță și va încărca aceste noi reguli, astfel încât MySQL să respecte imediat modificările pe care le-am făcut.

Ultimul lucru pe care vrei să-l faci este să activezi MariaDB să înceapă la pornire. Folosiți următoarea comandă pentru a face acest lucru:

 

# systemctl enable mariadb

 

În acest moment, sistemul dvs. de baze de date este acum configurat și putem continua.

Instalarea PHP

PHP este componenta configurării noastre care va procesa codul pentru a afișa conținut dinamic. Poate rula scripturi, se poate conecta la bazele noastre de date MySQL pentru a obține informații și poate transmite conținutul procesat serverului nostru web pentru a fi afișat.

Versiunea PHP disponibilă implicit în serverele CentOS 7 este depășită și, din acest motiv, va trebui să instalăm un depozit de pachete terță parte pentru a obține PHP 7+ și a-l instala pe serverul CentOS 7. Remi este un popular depozit de pachete care oferă cele mai recente versiuni PHP pentru serverele CentOS.

Pentru a instala depozitul Remi pentru CentOS 7, rulați:

 

# yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm

 

După terminarea instalării, va trebui să executați o comandă pentru a activa depozitul care conține versiunea dvs. preferată de PHP. Pentru a verifica ce versiuni PHP 7+ sunt disponibile în depozitul Remi, rulați:

 

# yum --disablerepo="*" --enablerepo="remi-safe" list php[7-9][0-9].x86_64

 

Veți vedea rezultate astfel:

 

Output
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * remi-safe: mirrors.ukfast.co.uk
Available Packages
php70.x86_64                                              2.0-1.el7.remi                                       remi-safe
php71.x86_64                                              2.0-1.el7.remi                                       remi-safe
php72.x86_64                                              2.0-1.el7.remi                                       remi-safe
php73.x86_64                                              2.0-1.el7.remi                                       remi-safe
php74.x86_64                                              1.0-3.el7.remi                                       remi-safe
php80.x86_64                                              1.0-3.el7.remi                                       remi-safe

 

În acest ghid, vom instala PHP 7.4, care este în prezent cea mai actualizată versiune stabilă a PHP. Pentru a activa pachetul Remi corect pentru a instala PHP 7.4, rulați:

 

# yum-config-manager --enable remi-php74

 

Acum putem continua să folosim " yum " pentru instalarea PHP ca de obicei. Următoarea comandă va instala toate pachetele necesare pentru a instala PHP 7.4 în Nginx și îi va permite să se conecteze la baze de date bazate pe MySQL:

 

# yum install php php-mysqlnd php-fpm

 

Pentru a confirma că PHP este disponibil ca versiune aleasă, rulați:

 

# php --version

 

Veți vedea rezultate astfel:

 

Output
PHP 7.4.5 (cli) (built: Apr 14 2020 12:54:33) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies

 

PHP este acum instalat cu succes pe sistemul dvs. În continuare, trebuie să facem câteva ajustări la configurația implicită. Pentru a facilita editarea fișierelor pe CentOS, vom instala mai întâi nano, un editor de text mai ușor de utilizat decât vi:

 

# yum install nano

 

Deschideți /etc/php-fpm.d/www.conf fișierul de configurare folosind nano sau editorul dvs. dorit:

 

# nano /etc/php-fpm.d/www.conf

 

Acum căutați directivele user și group. Dacă utilizați nano, puteți apăsa CTRL+ W pentru a căuta acești termeni în fișierul deschis.

 

                             /etc/php-fpm.d/www.conf
…
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = apache
; RPM: Keep a group allowed to write in log dir.
group = apache
…

 

Veți observa că variabilele user și group  sunt setate la apache. Trebuie să le schimbăm în nginx:

 

                            /etc/php-fpm.d/www.conf
…
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
…

 

Apoi, localizați directiva listen. În mod implicit, php-fpm va asculta pe o anumită gazdă și port pe TCP. Vrem să schimbăm această setare, astfel încât să asculte într-un fișier local de socket, deoarece acest lucru îmbunătățește performanța generală a serverului.
Schimbați linia care conține directiva listen: 

 

                             /etc/php-fpm.d/www.conf

listen = /var/run/php-fpm/php-fpm.sock;

 

În cele din urmă, va trebui să schimbăm proprietarul și setările grupului pentru fișierul socket pe care tocmai l-am definit în directiva listen. Localizați directivele listen.owner, listen.group și listen.mode . Aceste rânduri sunt comentate în mod implicit. Descomentați-le eliminând ; semnul precedent de la începutul liniei. Apoi, schimbați proprietarul și grupul în nginx:

 

                             /etc/php-fpm.d/www.conf

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

 

Salvați și închideți fișierul când ați terminat de editat. Dacă utilizați nano, faceți acest lucru apăsând CTRL + X, apoi Y și ENTER.

Pentru a activa și porni serviciul php-fpm, executați:

 

# systemctl start php-fpm

 

Mediul dvs. PHP este acum gata. Apoi, vom configura Nginx astfel încât să trimită toate cererile de scripturi PHP care să fie procesate de către php-fpm.

 

Configurarea Nginx pentru procesarea paginilor PHP

Acum, avem toate componentele necesare instalate. Singura modificare a configurației pe care trebuie să o facem este să îi spunem lui Nginx să folosească procesorul nostru PHP pentru conținut dinamic.

Nginx are un director dedicat în care putem defini fiecare site web găzduit ca un fișier de configurare separat, utilizând un bloc server. Acest lucru este similar cu gazdele virtuale Apache.

Cu instalarea implicită, totuși, acest director este gol. Vom crea un fișier nou pentru a servi ca site-ul web implicit PHP pe acest server, care va înlocui blocul de server implicit definit în /etc/nginx/nginx.conffișier.

Mai întâi, deschideți un fișier nou în /etc/nginx/conf.d:

 

# nano /etc/nginx/conf.d/default.conf

 

Copiați următorul bloc de definiție a serverului PHP în fișierul de configurare și nu uitați să înlocuiți server_namedirectiva, astfel încât să indice numele de domeniu al serverului sau adresa IP:

 

                           /etc/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  server_domain_or_IP;

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

 

Salvați și închideți fișierul când ați terminat.

Apoi, reporniți Nginx pentru a aplica modificările:

 

# systemctl restart nginx

 

Serverul dvs. web este acum complet configurat. În pasul următor, vom testa integrarea PHP la Nginx.

Testarea procesării PHP pe serverul dvs. Web

Acum că serverul dvs. web este configurat, putem crea un script PHP de testare pentru a ne asigura că Nginx gestionează corect .phpscripturile cu ajutorul php-fpm.

Următoarea comandă va schimba calitatea de proprietar al rădăcinii documentului Nginx implicit la un utilizator și la un grup numit sammy, deci asigurați-vă că înlocuiți numele de utilizator și grupul evidențiat în această comandă pentru a reflecta numele de utilizator și grupul sistemului.

 

# chown -R sammy.sammy /usr/share/nginx/html/

 

Vom crea acum o pagină de testare PHP pentru a ne asigura că serverul web funcționează conform așteptărilor.

Creați un nou fișier PHP numit info.php în /usr/share/nginx/html : 

 

# nano /usr/share/nginx/html/info.php

 

Următorul cod PHP va afișa informații despre mediul curent PHP care rulează pe server:

 

                           /usr/share/nginx/html/info.php

<?php

phpinfo();

 

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

Acum putem testa dacă serverul nostru web poate afișa corect conținutul generat de un script PHP. Accesați browserul și accesați numele gazdei serverului sau adresa IP, urmată de /info.php:

 

http://server_host_or_IP/info.php

 

După ce verificați informațiile relevante despre serverul dvs. PHP prin intermediul acelei pagini, cel mai bine este să eliminați fișierul pe care l-ați creat, deoarece conține informații sensibile despre mediul dvs. PHP și serverul dvs. CentOS. Puteți utiliza " rm " pentru a elimina acel fișier:

 

# rm /usr/share/nginx/html/info.php

 

Puteți oricând să regenerați acest fișier dacă aveți nevoie de el mai târziu.

Concluzie

În acest ghid, ați construit o bază flexibilă pentru a servi site-urilor web și aplicațiilor PHP vizitatorilor dvs., utilizând Nginx ca server web și cea mai recentă versiune de versiune PHP. Ați configurat Nginx pentru a gestiona solicitările PHP php-fpmși ați configurat, de asemenea, o bază de date MariaDB pentru a stoca datele site-ului dvs. web.


Răspunsul a fost util?

« înapoi