Cómo instalar LEMP en CentOS 7

En esta entrada explicamos cómo instalar una pila LEMP en CentOS 7 paso a paso, de modo que al final del tutorial tendrás montado en tu servidor o VPS CentOS el entorno formado por Nginx, PHP y MariaDB/MySQL totalmente operativo.

Antes de instalar LEMP en CentOS 7

Si tienes intención de seguir esta guía de instalación y configuración LEMP en CentOS 7 deberías satisfacer estos requisitos básicos:

  • Una instalación actualizada de CentOS 7.
  • Los repositorios EPEL y Remi.
  • Un usuario con permisos de sudo o el propio root.
  • Acceso a Internet.

Si no tienes los repositorios necesarios instalados, puedes seguir con esta guía, ya que los instalaremos de forma exprés, sin abundar en explicaciones.

Cómo instalar LEMP en CentOS 7

Para instalar la pila LEMP en CentOS 7 es necesario utilizar los repositorios EPEL y Remi, ya que uno incluye los paquetes de Nginx y el otro los de las versiones actualizadas de PHP.

Si no tienes estos repositorios en tu sistema, en unos instantes los instalaremos, empezando por la actualización de las listas de paquetes:

~$ sudo yum update

Instalamos los repositorios y las herramientas de yum:

~$ sudo yum install -y yum-utils https://rpms.remirepo.net/enterprise/remi-release-7.rpm

Habilitamos el repositorio de PHP 7.3:

~$ sudo yum-config-manager --enable remi-php73

Si estás interesado en otras versiones de PHP, puedes cambiar remi-php73 por remi-php72 ó remi-php74 en el anterior comando.

Finalmente actualizamos listas y paquetes instalados.

~$ sudo yum update -y

Ahora tenemos la base necesaria para empezar a trabajar.

LEMP con MariaDB

Para instalar la pila LEMP en CentOS 7 con MariaDB como servicio de bases de datos, ya podemos hacerlo con yum:

~$ sudo yum install -y nginx php-fpm php-mysqlnd mariadb-server

Tras la descarga e instalación de todos estos paquetes y sus dependencias, se crearán los tres nuevos servicios que componen la pila LEMP en nuestro sistema CentOS 7, nginx.service, php-fpm.service y mariadb.service, aunque usaremos las versiones más cortas de sus nombres, nginx, php-fpm y mariadb.

Ninguno de estos servicios está iniciado ni habilitado para el arranque automático con el sistema, así que los activaremos e iniciaremos mediante el comando systemctl:

~$ sudo systemctl enable --now php-fpm mariadb nginx

Ahora los tres servicios están iniciados y listos para recibir conexiones, como podemos comprobar en cualquier momento con el comando systemctl status php-fpm mariadb nginx:

como instalar lemp en centos 7

LEMP con MySQL Server

Si prefieres instalar una pila LEMP en CentOS 7 con MySQL puedes instalar los paquetes que forman la base:

~$ sudo yum install -y nginx php-fpm php-mysql

Y posteriormente seguir la guía de instalación y configuración de MySQL Server en CentOS 7.

El resto de esta guía sigue siendo aplicable (excepto lo relativo a MariaDB).

Configurar el firewall de CentOS 7 para la pila LEMP

Lo habitual es que el firewall de CentOS 7 esté activado y bloqueando el acceso al servidor web de la pila LEMP, por lo que debemos abrir los puertos necesarios:

~$ sudo firewall-cmd --permanent --zone=public --add-service={http,https}

Si no vas a ofrecer contenido mediante conexiones seguras, puedes abrir solamente el servicio HTTP estándar:

~$ sudo firewall-cmd --permanent --zone=public --add-service=http

En cualquier caso, tras añadir la regla del firewall es necesario cargar la nueva configuración:

~$ sudo firewall-cmd --reload

Podemos comprobar que el servidor web es accesible mediante un navegador, introduciendo como URL la dirección IP o dominio de la máquina CentOS 7:

como instalar lemp en centos 7

Cómo configurar LEMP en CentOS 7

Debemos configurar los elementos de la pila LEMP en CentOS 7, ya que a pesar de que los servicios están en funcionamiento necesitamos conectar el servidor web con el servicio PHP-FPM.

Configuración de PHP

Editamos el archivo php.ini para realizar algunos ajustes:

~$ sudo nano /etc/php.ini

Un ajuste que vas a querer hacer es configurar la zona horaria del servidor para que las aplicaciones web la reflejen correctamente. Para ello buscamos la directiva date.timezone:

...
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =
...

Descomentamos esta directiva y le asignamos su valor según nos interese:

...
date.timezone = Europe/Madrid
...

Puedes consultar el valor para tu zona horaria en la documentación de PHP.

En cuanto al tratamiento de errores, si tu servidor CentOS 7 es para producción no tienes que modificar nada más, pero si es para desarrollo debes localizar las siguientes directivas y cambiar sus valores por los mostrados aquí:

...
error_reporting = E_ALL
...
display_errors = On
...
display_startup_errors = On
...

De esta forma se mostrará información útil en el navegador en caso de error en las aplicaciones web.

Guardados los cambios, es necesario recargar la configuración del servicio:

~$ sudo systemctl reload php-fpm

Configuración del servicio de bases de datos

La instalación por defecto de MariaDB crea el usuario root sin contraseña, por lo que conviene pasar el script interactivo mysql_secure_installation:

~$ sudo mysql_secure_installation

Nos pedirá la contraseña actual de root:

...
Enter current password for root (enter for none):
...

Como no tiene, presionamos intro directamente.

Nos preguntará si queremos crear la contraseña para root:

...
Set root password? [Y/n] Y
...

Contestamos que sí y tendremos que introducir la contraseña y confirmarla:

...
New password:
Re-enter new password:
...

A continuación se nos preguntará sobre diversos aspectos a lo que debemos contestar afirmativamente (Y).

Ya tenemos el servicio de bases de datos asegurado y el usuario root con contraseña.

Configuración del servidor web

Creamos una configuración especial para conectar al servicio PHP-FPM:

~$ sudo nano /etc/nginx/default.d/php-fpm.conf

El contenido será este:

index index.php index.html index.htm;

location ~ \.php$ {
        include fastcgi.conf;
        fastcgi_pass 127.0.0.1:9000;
}

Será necesario recargar la configuración del servidor web para aplicar los cambios:

~$ sudo systemctl reload nginx

Cómo probar la pila LEMP en CentOS 7

Para comprobar la conexión entre el servidor web y el servicio PHP-FPM crearemos un pequeño script en PHP fácilmente accesible vía web:

~$ sudo nano /usr/share/nginx/html/info.php

Con la función phpinfo() como contenido:

<?php phpinfo();

Ahora accederemos mediante un navegador añadiendo la ruta /info.php a la dirección IP o dominio del servidor CentOS 7:

como configurar lemp stack en centos 7

Justo lo que esperábamos. Buceando en la información que nos ofrece esta página también encontraremos que las extensiones de PHP para acceder a MariaDB/MySQL están cargadas.

Conclusión

Ahora que sabes cómo instalar una pila LEMP en CentOS 7 puedes sacarle todo el potencial a tu servidor o VPS montando aplicaciones web sobre esta versátil y potente plataforma.

En caso de sugerencias, errores, dudas o preguntas, un comentario es una buena idea.

¡Apoya esta entrada!

Y si gracias a esta guía de instalación y configuración de la pila LEMP en CentOS 7 ya la tienes funcionando en tu sistema, y te apetece agradecérnoslo, una mínima aportación ayudará al mantenimiento de este sitio y a la creación y elaboración de nuevas guías de CentOS 7 y sus aplicaciones. ¡Gracias!

Valora esta entrada

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando…

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies