Com instal·lar Nginx 1.15, MariaDB 10 i PHP 7 a CentOS 7


En aquest article explicarem com instal·lar una pila LEMP (Linux, Nginx, MariaDB, PHP) juntament amb PHP-FPM als servidors RHEL/CentOS 7/6 i Fedora 26-29 mitjançant el gestor de paquets dnf.

Durant el procés instal·larem i habilitarem els repositoris Epel, Remi, Nginx i MariaDB per tal de poder instal·lar les últimes versions d'aquests paquets.

Pas 1: instal·lar EPEL i Remi Repository

EPEL (Extra Packages for Enterprise Linux) és un dipòsit comunitari que ofereix paquets de programari addicionals per a distribucions Linux basades en RHEL.

Remi és un repositori on podeu trobar les últimes versions de la pila PHP (complerta) per instal·lar-les a les distribucions Fedora i Enterprise Linux.

# 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
# 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
# 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]

Pas 2: instal·lar els repositoris Nginx i MariaDB

El repositori Nginx només es necessita a les distribucions RHEL i CentOS. Creeu un fitxer anomenat /etc/yum.repos.d/nginx.repo i afegiu-hi les línies següents.

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

Per habilitar el repositori MariaDB, creeu un fitxer anomenat /etc/yum.repos.d/mariadb.repo amb el contingut següent:

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

Pas 4: instal·lació de Ngnix i MariaDB

Nginx (Engine X) és un servidor web de codi obert, robust, lleuger i d'alt rendiment, servidor intermediari invers i també servidor intermediari de correu per a protocols HTTP, SMTP, POP3 i IMAP. Per a més detalls, visiteu http://wiki.nginx.org/Overview.

MariaDB és una bifurcació del conegut MySQL, un dels sistemes de gestió de bases de dades relacionals (RDBMS) més populars del món. Està desenvolupat íntegrament per la comunitat i, com a tal, es pretén seguir sent FOSS i compatible amb la GPL.

Per instal·lar Ngnix i MariaDB, executeu les ordres següents.

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

Pas 3: instal·lació de PHP mitjançant el repositori Remi

PHP (preprocessador d'hipertext) és un llenguatge de scripting del costat del servidor gratuït i de codi obert que és el més adequat per al desenvolupament web. Es pot utilitzar per produir pàgines web dinàmiques per a un lloc web i es troba amb més freqüència als servidors *nix. Un dels avantatges de PHP és que és fàcilment extensible mitjançant l'ús d'una gran varietat de mòduls.

Per instal·lar PHP, primer heu d'habilitar el repositori Remi instal·lant yum-utils, una col·lecció de programes útils per gestionar els dipòsits i paquets yum.

# yum install yum-utils

Un cop instal·lat, podeu utilitzar yum-config-manager proporcionat per yum-utils per habilitar el repositori Remi com a repositori predeterminat per instal·lar diferents versions de PHP, tal com es mostra.

Per exemple, per instal·lar la versió PHP 7.x, utilitzeu l'ordre següent.

------------- 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]

A continuació, instal·larem tots aquests mòduls PHP següents.

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

Pas 6: aturar i desactivar el servei Apache

Per defecte, Apache i Nginx escolten al mateix port (TCP 80). Per aquest motiu, si Apache està instal·lat al vostre servidor, heu d'aturar-lo i desactivar-lo/emmascarar-lo (una versió més forta de disable que enllaça el servei a /dev/null) per utilitzar Nginx, o podeu eliminar-lo si ja no teniu previst utilitzar-lo.

# systemctl stop httpd 
# systemctl disable httpd 
or 
# systemctl mask httpd 

Pas 7: iniciar/aturar 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 

Pas 8: Configuració de Nginx i PHP-FPM

Ara creem una estructura de directoris per al vostre lloc web (un amfitrió virtual o un bloc de servidor, com s'anomena a Nginx) a /srv/www/. En aquest exemple farem servir linux-console.net, però no dubteu a triar un altre domini i directori principal si voleu.

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

Pas 9: Configuració dels directoris d'amfitrió virtual de Nginx

Com sabeu, la capacitat d'executar diversos llocs des de la mateixa màquina és una de les característiques distintives dels principals servidors web. Ara procedim a crear els directoris per emmagatzemar els nostres blocs de servidor (coneguts com a amfitrions virtuals a Apache) a /etc/nginx.

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

La següent línia de codi, que s'ha d'inserir abans de tancar el bloc http a /etc/nginx/nginx.conf, garantirà que els fitxers de configuració dins del directori /etc/nginx/sites-enabled es tindran en compte quan Nginx s'executa. :

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

Per crear el bloc de servidor per a linux-console.net, afegiu les següents línies de codi a /etc/nginx/sites-available/tecmint (aquest fitxer es crearà quan introduïu el camí complet per iniciar el vostre preferit). editor de text). Aquest és un fitxer de configuració bàsic de l'amfitrió virtual.

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

El procés d'activació d'un host virtual consisteix a crear un enllaç simbòlic des de la definició de l'amfitrió virtual tecmint a /etc/nginx/sites-enabled.

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

Per aplicar realment els canvis que hem estat fent, ara hem de reiniciar Nginx. De vegades és útil comprovar els fitxers de configuració per detectar errors de sintaxi abans de fer-ho:

# nginx -t 
# systemctl restart nginx 
# systemctl status nginx 

Per accedir al vostre amfitrió virtual acabat de crear, heu d'afegir la línia següent a /etc/hosts com a mètode bàsic de resolució de noms de domini.

192.168.0.18	linux-console.net linux-console.net 

Pas 10: prova de Nginx, MySQL, PHP i PHP-FPM

Seguim amb la forma clàssica de provar PHP. Creeu un fitxer anomenat test.php a /srv/www/tecmint/public_html/ i afegiu-hi les següents línies de codi.

La funció phpinfo() mostra una gran quantitat d'informació sobre la instal·lació actual de PHP:

<?php 
	phpinfo(); 
?> 

Ara apunta el teu navegador web a http://tecmint/test.php i comproveu la presència dels mòduls instal·lats i del programari addicional:

Felicitats! Ara teniu una instal·lació funcional d'una pila LEMP. Si alguna cosa no va sortir com s'esperava, no dubti en contactar amb nosaltres mitjançant el formulari següent. També són benvingudes preguntes i suggeriments.