Cum se instalează Nginx 1.15, MariaDB 10 și PHP 7 pe CentOS 7


În acest articol vom explica cum să instalați o stivă LEMP (Linux, Nginx, MariaDB, PHP) împreună cu PHP-FPM pe serverele RHEL/CentOS 7/6 și Fedora 26-29 folosind pachetele yum și dnf administrator.

În timpul procesului, vom instala și vom activa depozitele Epel, Remi, Nginx și MariaDB pentru a putea instalați cele mai recente versiuni ale acestor pachete.

Citiți și: Instalați Apache, MySQL 8 sau MariaDB 10 și PHP 7 pe CentOS 7

Pasul 1: Instalarea EPEL și Remi Repository

EPEL (Extra Packages for Enterprise Linux) este un depozit bazat pe comunitate care oferă pachete software suplimentare pentru distribuțiile Linux bazate pe RHEL.

Remi este un depozit în care puteți găsi cele mai recente versiuni ale stivei PHP (funcționale complete) pentru instalare în distribuțiile Fedora și Enterprise Linux.

Pe RHEL/CentOS 7

yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

------ For RHEL 7 Only ------
subscription-manager repos --enable=rhel-7-server-optional-rpms

Pe RHEL/CentOS 6

yum update && yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

------ For RHEL 6 Only ------
subscription-manager repos --enable=rhel-6-server-optional-rpms

Pe Fedora 24-29

rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-29.rpm  [On Fedora 29]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-28.rpm  [On Fedora 28]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-27.rpm  [On Fedora 27]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-26.rpm  [On Fedora 26]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-25.rpm  [On Fedora 25]
rpm -Uvh http://rpms.remirepo.net/fedora/remi-release-24.rpm  [On Fedora 24]

Pasul 2: Instalarea depozitelor Nginx și MariaDB

Depozitul Nginx este necesar doar în distribuțiile RHEL și CentOS. Creați un fișier numit /etc/yum.repos.d/nginx.repo și adăugați-i următoarele linii.

Pentru RHEL 7/6:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

Pentru CentOS 7/6:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0 
enabled=1 

Pentru a activa depozitul MariaDB, creați un fișier numit /etc/yum.repos.d/mariadb.repo cu următorul conținut:

[mariadb] 
name = MariaDB 
baseurl = http://yum.mariadb.org/10.1/centos7-amd64 
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB 
gpgcheck=1 

Pasul 4: Instalarea Ngnix și MariaDB

Nginx (Engine X) este un server web open source, robust, ușor și de înaltă performanță, un server proxy invers și, de asemenea, un server proxy de e-mail pentru protocoalele HTTP, SMTP, POP3 și IMAP. Pentru mai multe detalii, vizitați http://wiki.nginx.org/Overview.

MariaDB este o bifurcătură a binecunoscutului MySQL, unul dintre cele mai populare sisteme de management al bazelor de date relaționale (RDBMS) din lume. Este dezvoltat în întregime de comunitate și, ca atare, este destinat să rămână FOSS și compatibil cu GPL.

Pentru a instala Ngnix și MariaDB, executați următoarele comenzi.


----------- Installing on RHEL/CentOS 7/6 ----------- 
yum --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

----------- Installing on Fedora ----------- 
dnf --enablerepo=remi install nginx MariaDB-client MariaDB-server php php-common php-fpm 

Pasul 3: Instalarea PHP folosind Remi Repository

PHP (Hypertext Preprocessor) este un limbaj de scriptare gratuit și cu sursă deschisă pe partea de server, care este cel mai potrivit pentru dezvoltarea web. Poate fi folosit pentru a produce pagini web dinamice pentru un site web și se găsește cel mai frecvent pe serverele *nix. Unul dintre avantajele PHP este că este ușor extensibil prin utilizarea unei game largi de module.

Pentru a instala PHP, mai întâi trebuie să activați depozitul Remi instalând yum-utils, o colecție de programe utile pentru gestionarea depozitelor și pachetelor yum.

yum install yum-utils

Odată instalat, puteți utiliza yum-config-manager furnizat de yum-utils pentru a activa depozitul Remi ca depozit implicit pentru instalarea diferitelor versiuni PHP, așa cum se arată.

De exemplu, pentru a instala versiunea PHP 7.x, utilizați următoarea comandă.

------------- On CentOS & RHEL ------------- 
yum-config-manager --enable remi-php70 && yum install php       [Install PHP 7.0]
yum-config-manager --enable remi-php71 && yum install php       [Install PHP 7.1]
yum-config-manager --enable remi-php72 && yum install php       [Install PHP 7.2]
yum-config-manager --enable remi-php73 && yum install php       [Install PHP 7.3]

------------- On Fedora ------------- 
dnf --enablerepo=remi install php70      [Install PHP 7.0]
dnf --enablerepo=remi install php71      [Install PHP 7.1]
dnf --enablerepo=remi install php72      [Install PHP 7.2]
dnf --enablerepo=remi install php73      [Install PHP 7.3]

În continuare, vom instala toate aceste module PHP următoare.

------ On RHEL/CentOS 7/6 ------
yum --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

------ On Fedora ------
dnf --enablerepo=remi install php-mysqlnd php-pgsql php-fpm php-pecl-mongo php-pdo php-pecl-memcache php-pecl-memcached php-gd php-xml php-mbstring php-mcrypt php-pecl-apcu php-cli php-pear

Pasul 6: Oprirea și dezactivarea serviciului Apache

În mod implicit, Apache și Nginx ascultă în același port (TCP 80). Din acest motiv, dacă Apache este instalat pe serverul dvs., trebuie să îl opriți și să îl dezactivați/mascați (o versiune mai puternică a dezactivarii care leagă serviciul la /dev/null) pentru a utiliza Nginx , sau îl puteți elimina dacă nu intenționați să îl mai utilizați.

systemctl stop httpd 
systemctl disable httpd 
or 
systemctl mask httpd 

Pasul 7: Pornirea/Oprirea Nginx, MariaDB și PHP-FPM

----------- Enable Nginx, MariaDB and PHP-FPM on Boot ----------- 
systemctl enable nginx 
systemctl enable mariadb 
systemctl enable php-fpm 
 
----------- Start Nginx, MariaDB and PHP-FPM ----------- 
systemctl start nginx 
systemctl start mariadb 
systemctl start php-fpm 

Pasul 8: Configurarea Nginx și PHP-FPM

Să creăm acum o structură de directoare pentru site-ul dvs. (o gazdă virtuală sau un bloc de server așa cum este numit în Nginx) sub /srv/www/. În acest exemplu vom folosi linux-console.net, dar nu ezitați să alegeți alt domeniu și directorul principal dacă doriți.

mkdir -p /srv/www/tecmint/public_html 
mkdir /srv/www/tecmint/logs 
chown -R nginx:nginx /srv/www/tecmint  

Pasul 9: Configurarea directoarelor gazde virtuale Nginx

După cum știți, capacitatea de a rula mai multe site-uri de pe aceeași mașină este una dintre caracteristicile distinctive ale serverelor web majore. Să continuăm acum să creăm directoarele pentru a stoca blocurile noastre de server (cunoscute ca gazde virtuale în Apache) sub /etc/nginx.

mkdir /etc/nginx/sites-available 
mkdir /etc/nginx/sites-enabled 

Următoarea linie de cod, care trebuie inserată înainte de a închide blocul http în /etc/nginx/nginx.conf, se va asigura că fișierele de configurare din interiorul /etc/nginx/sites-enabled directorul va fi luat în considerare atunci când Nginx rulează:

## Load virtual host conf files. ## 
include /etc/nginx/sites-enabled/*; 

Pentru a crea blocul de server pentru linux-console.net, adăugați următoarele linii de cod la /etc/nginx/sites-available/tecmint (acest fișier va fi creat când introduceți calea completă pentru a porni editorul de text preferat). Acesta este un fișier de configurare a gazdei virtuale de bază.

server { 
	listen 80 default; 
	server_name tecmint; 
	access_log /srv/www/tecmint/logs/access.log; 
	error_log /srv/www/tecmint/logs/error.log; 
	root /srv/www/tecmint/public_html; 
	location ~* \.php$ { 
	fastcgi_index   index.php; 
	fastcgi_pass    127.0.0.1:9000; 
	include         fastcgi_params; 
	fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name; 
	fastcgi_param   SCRIPT_NAME        $fastcgi_script_name; 
	} 
} 

Procesul de „activare” a unei gazde virtuale constă în crearea unei legături simbolice de la definiția gazdei virtuale tecmint la /etc/nginx/sites-enabled<.

ln -s /etc/nginx/sites-available/tecmint /etc/nginx/sites-enabled/tecmint 

Pentru a aplica efectiv modificările pe care le-am făcut, acum trebuie să repornim Nginx. Uneori este util să verificați fișierele de configurare pentru erori de sintaxă înainte de a face acest lucru:

nginx -t 
systemctl restart nginx 
systemctl status nginx 

Pentru a accesa gazda virtuală nou creată, trebuie să adăugați următoarea linie la /etc/hosts ca metodă de bază de rezolvare a numelui de domeniu.

192.168.0.18	linux-console.net linux-console.net 

Pasul 10: Testarea Nginx, MySQL, PHP și PHP-FPM

Să rămânem cu modul clasic de a testa PHP. Creați un fișier numit test.php sub /srv/www/tecmint/public_html/ și adăugați-i următoarele linii de cod.

Funcția phpinfo() arată o mulțime de informații despre instalarea PHP curentă:

<?php 
	phpinfo(); 
?> 

Acum îndreptați browserul dvs. web către http://tecmint/test.php și verificați prezența modulelor instalate și a software-ului suplimentar:

Felicitări! Acum aveți o instalare funcțională a unei stive LEMP. Dacă ceva nu a decurs conform așteptărilor, nu ezitați să ne contactați folosind formularul de mai jos. Întrebările și sugestiile sunt, de asemenea, binevenite.