Cómo instalar Nginx 1.15, MariaDB 10 y PHP 7 en CentOS 7

En este artículo explicaremos cómo instalar una pila LEMP ( Linux, Nginx, MariaDB, PHP ) junto con PHP-FPM en servidores RHEL/CentOS 7/6 y Fedora 26-29 utilizando el gestor de paquetes yum y dnf.

Durante el proceso, instalaremos y habilitaremos los repositorios Epel, Remi, Nginx y MariaDB para poder instalar las últimas versiones de estos paquetes.

Leer también: Instalar Apache, MySQL 8 o MariaDB 10 y PHP 7 en CentOS 7

Paso 1: Instalación del repositorio EPEL y Remi

EPEL ( Extra Packages for Enterprise Linux ) es un repositorio basado en la comunidad que ofrece paquetes de software adicionales para distribuciones Linux basadas en RHEL.

Remi es un repositorio donde puedes encontrar las últimas versiones del conjunto PHP (con todas las funciones) para instalar en las distribuciones Fedora y Enterprise Linux.

En 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

En 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

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

Paso 2: Instalación de los Repositorios de Nginx y MariaDB

El repositorio de Nginx solo es necesario en las distribuciones RHEL y CentOS. Crea un archivo llamado /etc/yum.repos.d/nginx.repo y añade las siguientes líneas:

Para RHEL 7/6:

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

Para CentOS 7/6:

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

Para habilitar el repositorio de MariaDB, crea un archivo llamado /etc/yum.repos.d/mariadb.repo con el siguiente contenido:

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

Paso 4: Instalación de Ngnix y MariaDB

Nginx (Engine X) es un servidor web de código abierto, robusto, ligero y de alto rendimiento, servidor proxy inverso y también servidor proxy de correo para los protocolos HTTP, SMTP, POP3 e IMAP. Para más detalles, visita http://wiki.nginx.org/Overview.

MariaDB es un fork del conocido MySQL, uno de los sistemas de gestión de bases de datos relacionales (RDBMS) más populares del mundo. Está completamente desarrollado por la comunidad y, como tal, está destinado a seguir siendo software libre y compatible con la GPL.

Para instalar Ngnix y MariaDB, ejecuta los siguientes comandos.

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

Paso 3: Instalación de PHP Utilizando el Repositorio Remi

PHP (Preprocesador de Hipertexto) es un lenguaje de secuencias de comandos del lado del servidor de Código Abierto y Gratuito que es más adecuado para el desarrollo web. Se puede utilizar para producir páginas web dinámicas para un sitio web y se encuentra con mayor frecuencia en servidores *nix. Una de las ventajas de PHP es que es fácilmente extensible a través del uso de una amplia variedad de módulos.

Para instalar PHP, primero necesitas habilitar el repositorio Remi instalando yum-utils, una colección de programas útiles para gestionar repositorios y paquetes yum.

# yum install yum-utils

Una vez instalado, puedes utilizar yum-config-manager proporcionado por yum-utils para habilitar el repositorio Remi como repositorio predeterminado para instalar diferentes versiones de PHP como se muestra a continuación.

Por ejemplo, para instalar la versión PHP 7.x, utiliza el siguiente comando.

------------- 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ón, vamos a instalar todos estos siguientes módulos de PHP.

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

Paso 6: Detener y Deshabilitar el Servicio de Apache

De forma predeterminada, Apache y Nginx escuchan en el mismo puerto (TCP 80). Por esa razón, si Apache está instalado en tu servidor, necesitas detenerlo y deshabilitarlo / enmascararlo (una versión más fuerte de deshabilitar que vincula el servicio a /dev/null) para poder usar Nginx, o puedes eliminarlo si no planeas usarlo más.

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

Paso 7: Iniciar/Detener Nginx, MariaDB y 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 

Paso 8: Configurar Nginx y PHP-FPM

Creemos ahora una estructura de directorios para tu sitio web (un host virtual, o bloque de servidor como se le llama en Nginx) bajo /srv/www/. En este ejemplo usaremos www.tecmint.com, pero si quieres, siéntete libre de elegir otro dominio y directorio principal.

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

Paso 9: Configurar Directorios de Host Virtual de Nginx

Como sabes, la capacidad de ejecutar varios sitios desde la misma máquina es una de las características distintivas de los principales servidores web. Procedamos ahora a crear los directorios para almacenar nuestros bloques de servidor (conocidos como hosts virtuales en Apache) bajo /etc/nginx.

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

La siguiente línea de código, que debe ser insertada antes de cerrar el bloque http en /etc/nginx/nginx.conf, asegurará que los archivos de configuración dentro del directorio /etc/nginx/sites-enabled serán tomados en cuenta cuando Nginx esté en ejecución:

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

Para crear el bloque de servidor para tecmint.com, agrega las siguientes líneas de código a /etc/nginx/sites-available/tecmint (este archivo se creará cuando ingreses la ruta completa para iniciar tu editor de texto preferido). Este es un archivo de configuración básico de host 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 proceso de “activar” un host virtual consiste en crear un enlace simbólico desde la definición del host virtual tecmint a /etc/nginx/sites-enabled.

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

Para aplicar realmente los cambios que hemos estado haciendo, ahora necesitamos reiniciar Nginx. A veces es útil verificar los archivos de configuración en busca de errores de sintaxis antes de hacerlo:

# nginx -t 
# systemctl restart nginx 
# systemctl status nginx 
Restart Nginx and Verify Status

Para acceder a su nuevo host virtual creado, necesita agregar la siguiente línea a /etc/hosts como un método básico de resolución de nombres de dominio.

192.168.0.18	www.tecmint.com tecmint.com 

Paso 10: Probando Nginx, MySQL, PHP y PHP-FPM

Vamos a seguir con la forma clásica de probar PHP. Cree un archivo llamado test.php en /srv/www/tecmint/public_html/ y agregue las siguientes líneas de código:

La función phpinfo() muestra mucha información sobre la instalación actual de PHP:

<?php 
	phpinfo(); 
?> 

Ahora apunte su navegador web a http://tecmint/test.php y verifique la presencia de los módulos instalados y software adicional:

¡Felicidades! Ahora tiene una instalación funcional de un stack LEMP. Si algo no salió como se esperaba, no dude en contactarnos utilizando el formulario a continuación. Preguntas y sugerencias también son bienvenidas.

Source:
https://www.tecmint.com/install-nginx-mariadb-php-rhel-centos-fedora/