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.4:

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

Si estás interesado en otras versiones de PHP, puedes usar remi-php70, remi-php71, remi-php72, remi-php73 o remi-php80 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 comoinstalar.me!

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.

Puedes hacerlo dejando 1 $ de propina con PayPal:

O, si te sientes especialmente agradecido, invitándonos a un café:

¡Gracias!

Valora esta entrada

5/5 - (1 voto)

Deja un comentario