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 RHEL/CentOS 7/6 y Fedora 26-29 utilizando los paquetes yum y dnf gerente.

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

Paso 1: Instalando EPEL y Remi Repository

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

Remi es un repositorio donde puede encontrar las últimas versiones de la pila de PHP (todas las funciones) para la instalación en las distribuciones de Fedora y 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]

Paso 2: Instalación de Repositorios Nginx y MariaDB

El repositorio Nginx solo es necesario en las distribuciones RHEL y CentOS . Cree un archivo llamado /etc/yum.repos.d/nginx.repo y agregue las siguientes líneas.

[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 

Para habilitar el repositorio MariaDB , cree 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: Instalando Ngnix y MariaDB

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

MariaDB es una bifurcación 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, pretende ser FOSS y compatible con la GPL.

Para instalar Ngnix y MariaDB , ejecute 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: Instalando PHP usando Remi Repository

PHP ( preprocesador de hipertexto ) es un lenguaje de secuencias de comandos gratuito y de código abierto que se adapta mejor al desarrollo web. Puede usarse para producir páginas web dinámicas para un sitio web y se encuentra con más frecuencia en los servidores * nix. Una de las ventajas de PHP es que es fácilmente extensible mediante el uso de una amplia variedad de módulos.

Para instalar PHP , primero debe habilitar el Remi al instalar yum-utils , una colección de programas útiles para administrar paquetes y repositorios de yum.

# yum install yum-utils

Una vez instalado, puede usar yum-config-manager proporcionado por yum-utils para habilitar el repositorio Remi como el repositorio predeterminado para instalar diferentes versiones de PHP como se muestra.

Por ejemplo, para instalar la versión PHP 7.x , use 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 módulos de PHP siguientes.

------ 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 desactivar el servicio Apache

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

# 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: Configurando Nginx y PHP-FPM

Ahora creamos una estructura de directorios para su sitio web (un servidor virtual o bloque de servidor como se llama en Nginx) bajo /srv/www/. En este ejemplo usaremos www.tecmint.com , pero puede elegir otro dominio y directorio principal si lo desea.

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

Paso 9: Configuración de los directorios del host virtual Nginx

Como sabe, 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) en /etc/nginx

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

La siguiente línea de código, que debe insertarse antes de cerrar el bloque http en /etc/nginx/nginx.conf , garantizará que los archivos de configuración estén dentro de /etc/nginx/sites-enabled el directorio se tendrá en cuenta cuando se ejecute Nginx:

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

Para crear el bloque de servidor para tecmint.com , agregue las siguientes líneas de código a /etc/nginx/sites-available/tecmint (este archivo se creará cuando ingrese la ruta completa para iniciar su editor de texto preferido). Este es un archivo de configuración de host virtual básico.

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 " activación " de 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 revisar los archivos de configuración en busca de errores de sintaxis antes de hacerlo:

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

Para acceder a su host virtual recién creado, debe 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: Prueba de Nginx, MySQL, PHP y PHP-FPM

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

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

<?php 
	phpinfo(); 
?> 

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

¡Felicidades! Ahora tienes una instalación en funcionamiento de una pila LEMP . Si algo no salió como lo esperaba, no dude en contactarnos utilizando el formulario a continuación. Preguntas y sugerencias también son bienvenidas.