Instalați LEMP - Nginx, PHP, MariaDB și PhpMyAdmin în OpenSUSE


Stiva LEMP sau Linux, Engine-x, MySQL și PHP este un software pachet compus din software open source instalat pe sistemul de operare Linux pentru rularea aplicațiilor web bazate pe PHP, alimentate de serverul Nginx HTTP și sistemul de gestionare a bazelor de date MySQL/MariaDB.

Acest tutorial vă va ghida cum să instalați o stivă LEMP cu Nginx, MariaDB, PHP, PHP-FPM și PhpMyAdmin pe edițiile pentru server/desktop OpenSuse.

Instalarea serverului HTTP Nginx

Nginx este un server HTTP și proxy rapid și fiabil, care poate gestiona un volum mai mare de solicitări HTTP. Utilizează o abordare asincronă bazată pe evenimente pentru gestionarea cererilor, iar arhitectura sa modulară bazată pe evenimente poate oferi performanțe mai previzibile în condiții de încărcare mare.

Pentru a instala Nginx pe OpenSuse, executați următoarea comandă.

$ sudo zypper install nginx

Odată instalat Nginx, puteți porni serviciul deocamdată, apoi îl puteți activa să pornească automat la momentul pornirii și să verificați starea Nginx executând următoarele comenzi.

$ sudo systemctl start nginx
$ sudo systemctl enable nginx
$ sudo systemctl status nginx

În acest moment, serverul web Nginx ar trebui să funcționeze, puteți verifica și starea folosind comanda netstat, așa cum se arată.

$ sudo netstat -tlpn | grep nginx

Acum, trebuie să testăm dacă instalarea Nginx funcționează bine. Spre deosebire de alte distribuții Linux, sub openSUSE, Nginx nu are un document standard index.html în folderul rădăcină web. Trebuie să creăm un nou fișier index.html în directorul web rădăcină \/srv/www/htdocs\, așa cum se arată.

$ echo "<h1>Nginx is running fine on openSUSE Leap</h1>" | sudo tee /srv/www/htdocs/index.html

Dacă aveți instalat firewalld, trebuie să deschideți porturile 80 și 443 pentru a permite traficul web pe firewall.

$ sudo firewall-cmd --permanent --add-port=80/tcp
$ sudo firewall-cmd --permanent --add-port=443/tcp
$ sudo firewall-cmd --reload

Apoi, deschideți un browser web și navigați la adresa http://localhost și verificați pagina Nginx.

Instalarea serverului de baze de date MariaDB

MariaDB este un furk gratuit și open source al sistemului de gestionare a bazelor de date relaționale MySQL. Este dezvoltat de dezvoltatorii originali MySQL și intenționează să rămână open source. MariaDB este rapid, scalabil și robust, cu un ecosistem bogat de motoare de stocare, pluginuri și multe alte instrumente îl fac foarte versatil pentru o mare varietate de cazuri de utilizare.

Pentru a instala MariaDB pe OpenSuse, executați următoarea comandă.

$ sudo zypper install mariadb mariadb-client 

Apoi, porniți serviciul MariaDB pentru moment, apoi activați-l să pornească automat la momentul pornirii și verificați starea acestuia.

$ sudo systemctl start mariadb 
$ sudo systemctl enable mariadb 
$ sudo systemctl status mariadb 

Următorul pas critic din această secțiune este securizarea instalării serverului MariaDB. Prin urmare, rulați scriptul de securitate care este livrat cu pachetul MariaDB, așa cum se arată.

Notă: rularea scriptului de securitate MariaDB și a tuturor părților sale este foarte recomandată pentru toate serverele MariaDB aflate în producție.

$ sudo mysql_secure_installation 

După rularea scriptului, citiți cu atenție descrierea de la fiecare pas. Ar trebui să setați o parolă de utilizator root, să eliminați utilizatorii anonimi, să dezactivați accesul la distanță root, să eliminați baza de date de testare și să accesați ea și, în final, să reîncărcați tabelul de privilegii.

Instalarea și configurarea PHP și PHP-FPM

PHP-FPM (prescurtare de la PHP FastCGI Process Manager) este un demon alternativ FastCGI pentru PHP cu câteva caracteristici suplimentare și concepute pentru a face față sarcinilor mari. Menține grupuri (lucrători care pot răspunde la solicitările PHP) pentru a realiza acest lucru. Important este că este mai rapid decât metodele tradiționale bazate pe CGI, cum ar fi SUPHP, pentru mediile PHP cu mai mulți utilizatori.

Pentru a instala PHP și PHP-FPM împreună cu modulele necesare, executați următoarea comandă.

$ sudo zypper install php php-mysql php-fpm php-gd php-mbstring

Înainte de a începe să pornim serviciul PHP-FPM, trebuie să creăm fișierele de configurare necesare din fișierele implicite furnizate în timpul instalării și să configuram serviciul gata pentru operațiuni.

$ sudo cp /etc/php7/fpm/php-fpm.conf.default  /etc/php7/fpm/php-fpm.conf 
$ sudo cp /etc/php7/fpm/php-fpm.d/www.conf.default /etc/php7/fpm/php-fpm.d/www.conf

Apoi deschideți fișierul principal de configurare php-fpm.conf pentru editare.

$ sudo vim /etc/php7/fpm/php-fpm.conf 

Anulați comentariile următoarei rânduri la rândul numărul 24, așa cum se arată.

error_log = log/php-fpm.log

Salvați și închideți fișierul.

În continuare, trebuie să definim setările corecte pentru pool-urile configurate în fișierul de configurare www.conf.

$ sudo vim /etc/php7/fpm/php-fpm.d/www.conf

Mai întâi, configurați proprietarul Unix și proprietarul grupului de procese pentru utilizatorul și grupul Nginx. Faceți acest lucru schimbând valorile parametrilor utilizator și grup din nobody în nginx.

user = nginx
group = nginx

Acum salvați modificările la fișier și părăsiți-l.

În plus, mai există o configurație importantă de efectuat, care securizează PHP-FPM în fișierul /etc/php/cli/php.ini.

$ sudo vim /etc/php7/cli/php.ini

Căutați linia ;cgi.fix_pathinfo=1 și schimbați-o în.

cgi.fix_pathinfo=0

Salvați modificările în fișier și ieșiți.

Apoi, porniți serviciul PHP-FPM pentru moment, apoi activați-l să pornească automat la pornire și verificați starea acestuia.

$ sudo systemctl start php-fpm
$ sudo systemctl enable php-fpm
$ sudo systemctl status php-fpm

Configurarea Nginx pentru a funcționa cu PHP-FPM

În acest moment, trebuie să configuram Nginx pentru a funcționa cu PHP-FPM în fișierul de configurare Nginx implicit.

$ sudo vim /etc/nginx/nginx.conf

Apoi căutați următoarea secțiune și adăugați index.php în lista de fișiere index așteptate.

location / { 
           root   /srv/www/htdocs/; 
           index  index.php index.html index.htm ; 
       }

Găsiți, de asemenea, următoarea secțiune (care ar trebui comentată) și decomentați-o. Această secțiune este folosită pentru a transmite scripturile PHP către serverul FastCGI care ascultă pe 127.0.0.1:9000.

location ~ \.php$ { 
       root           /srv/www/htdocs/; 
       fastcgi_pass   127.0.0.1:9000; 
       fastcgi_index  index.php; 
       fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
       include        fastcgi_params; 
       }

Salvați modificările în fișier și ieșiți.

Testarea Nginx și PHP-FPM

Următorul pas este să testați dacă Nginx funcționează bine împreună cu PHP-FPM prin crearea unui nou fișier de testare PHP în directorul DocumentRoot ca afișate.

$ echo "<?php phpinfo(); ?>" | sudo tee /srv/www/htdocs/info.php

Acum trebuie să verificăm dacă configurația Nginx este corectă, după cum urmează, înainte de a reporni serviciul.

$ sudo nginx -t

Dacă sintaxa configurației Nginx este ok, continuați și reporniți serviciile Nginx și PHP-FPM pentru ca modificările recente să aibă efect.

$ sudo systemctl restart nginx php-fpm

Acum deschideți un browser web și navigați la adresa http://localhost/info.php pentru a verifica configurația PHP așa cum se arată în următoarea captură de ecran.

Instalarea și configurarea PhpMyAdmin

phpMyAdmin este un instrument gratuit, simplu, ușor de utilizat și popular, scris în PHP, creat pentru administrarea serverului MySQL pe Web. Acesta oferă o gamă largă de operațiuni pe MySQL și MariaDB.

Pentru a instala phpMyAdmin pe OpenSuse, executați următoarea comandă.

$ sudo zypper install phpMyAdmin

După finalizarea instalării, creați un nou fișier de configurare vhost pentru a accesa phpMyAdmin, după cum se arată.

$ sudo vim /etc/nginx/vhosts.d/phpmyadmin.conf

Adăugați următoarele configurații la fișier.

server { 
   listen 80; 

   server_name localhost/phpMyAdmin; 

  root /srv/www/htdocs/phpMyAdmin; 

   location / { 
       try_files $uri /index.php?$args; 
   } 

   location ~ \.php$ { 
       try_files $uri =404; 
       fastcgi_pass 127.0.0.1:9000; 
       fastcgi_index index.php; 
       include fastcgi_params; 
   } 
} 

Salvați modificările și închideți fișierul. Apoi reporniți serviciul Nginx cu următoarea comandă.

$ sudo systemctl restart nginx

Acum accesați browserul dvs. web și introduceți adresa http://localhost/phpMyAdmin. O pagină de conectare phpMyAdmin ar trebui să fie afișată așa cum se arată în următoarea captură de ecran. Introduceți datele de conectare ale utilizatorului root al bazei de date și faceți clic pe Go.

Asta e tot! În acest tutorial, v-am explicat cum instalați o stivă LEMP cu Nginx, MariaDB, PHP, PHP-FPM și PhpMyAdmin pe edițiile pentru server/desktop OpenSuse. Dacă întâmpinați probleme în timpul configurării, adresați-vă întrebările printr-un formular de comentarii de mai jos.