Cómo instalar LEMP en Ubuntu 18.04 LTS

Cómo instalar LEMP en Ubuntu 18.04 LTS

Vamos a ver en este artículo cómo instalar LEMP en Ubuntu 18.04 LTS paso a paso, de modo que al final de este tutorial tendrás integrados y funcionando todos sus componentes en tu servidor o VPS Ubuntu. Una pieza imprescindible para servir potentes aplicaciones web.

Antes de instalar LEMP en Ubuntu 18.04 LTS

Para poder seguir esta pequeña guía de instalación LEMP en Ubuntu 18.04 LTS necesitarás pasar estos sencillos requisitos:

  • Una máquina Ubuntu 18.04 actualizada.
  • Un usuario con permisos de sudo.
  • Conexión a Internet.

Puedes ir abriendo una terminal de comandos porque esto empieza ya.

Cómo instalar LEMP en Ubuntu 18.04

Vamos a instalar LEMP en Ubuntu 18.04 usando para sus componentes los paquetes disponibles en la propia distribución. Por ello, como primer paso actualizaremos las listas de paquetes:

~$ sudo apt update

Puedes aprovechar para actualizar los paquetes ya instalados:

~$ sudo apt upgrade -y

Instalaremos PHP como servicio FastCGI con la extensión para MySQL, Nginx y MariaDB como motor de bases de datos, todo ello con el comando apt:

~$ sudo apt install -y php-fpm php-mysql nginx mariadb-server

Cuando se hayan descargado e instalado todos los paquetes y sus dependencias, se habrán creado nuevos servicios en nuestro sistema Ubuntu 18.04, los servicios php7.2-fpm.service, nginx.service y mariadb.service. También puedes usar la versión más corta de los nombres de estos servicios: php7.2-fpm, nginx y mariadb.

Los tres servicios arrancan tras la instalación y están habilitados para iniciar de forma automática junto a Ubuntu 18.04. Puedes comprobar en cualquier momento el estado de estos servicios con el comando systemctl status nginx php7.2-fpm mariadb:

como instalar lemp en ubuntu 18.04 lts

Configurar el firewall UFW para LEMP en Ubuntu 18.04

Si tienes activado el firewall UFW en tu sistema Ubuntu 18.04, sería necesario añadir algunas reglas para los servicios de la pila LEMP, sólo si quieres que sean accesibles desde la red.

El primero y más obvio sería el protocolo HTTP estándar:

~$ sudo ufw allow http

Si vas a ofrecer contenido seguro cifrado con certificados SSL, también tendrás que permitir el protocolo HTTPS:

~$ sudo ufw allow https

Y si quieres administrar remotamente MariaDB Server, podrías habilitar también el puerto MySQL:

~$ sudo ufw allow mysql

Comprobación rápida del servidor web

Para comprobar el funcionamiento del servidor web y, en su caso, la configuración del firewall, podemos acceder desde un navegador indicando como URL la dirección IP o el dominio del servidor Ubuntu 18.04:

instalar lemp en ubuntu 18.04 lts

Cómo configurar LEMP en Ubuntu 18.04

Ya casi está todo hecho, sólo revisaremos unos mínimos ajustes para dejarlo todo en perfecto funcionamiento.

El servicio de bases de datos

Para crear bases de datos y usuarios en MariaDB podrás usar el cliente mysql, instalado como dependencia. El único usuario que existe es root y sólo se puede acceder como un usuario de Ubuntu 18.04 con permisos de sudo:

~$ sudo mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 41
Server version: 10.1.41-MariaDB-0ubuntu0.18.04.1 Ubuntu 18.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Ajustes de PHP

Hay que realizar algún ajuste en la configuración de PHP, a través de su archivo de configuración principal, el famoso php.ini:

~$ sudo nano /etc/php/7.2/fpm/php.ini

Por defecto no se configura la directiva date.timezone, responsable de determinar la zona horaria para las aplicaciones de PHP:

...
;date.timezone =
...

Debemos eliminar el carácter ; inicial y darle el valor de la zona horaria que nos interese:

date.timezone = Europe/Madrid

Consulta en http://php.net/date.timezone si no conoces el valor exacto de tu zona horaria.

Además, PHP por defecto no mostrará errores y avisos importantes en el navegador. Eso está bien si tu servidor LEMP está orientado al público, pero si es para desarrollo querrás ver esos mensajes para poder corregir la aplicación. En ese caso necesitas encontrar las siguientes directivas:

...
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
...
display_errors = Off
...
display_startup_errors = Off
...

Y cambiar sus valores por defecto por estos otros:

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

Cualquier cambio realizado en php.ini necesitará recargar el servicio PHP-FPM para que tenga efecto:

~$ sudo systemctl reload php7.2-fpm.service

Ajustes de Nginx

El servidor virtual por defecto de Nginx no conecta con el servicio PHP-FPM, así que debemos editar su archivo de configuración:

~$ sudo nano /etc/nginx/sites-enabled/default

Empezaremos editando la directiva index:

...
# Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;
...

Como indica el comentario, debemos añadir el valor index.php a la lista, ya que es el típico archivo índice de las aplicaciones PHP:

...
        index index.php index.html index.htm index.nginx-debian.html;
...

A continuación buscaremos el bloque location relacionado con PHP:

...
        # pass PHP scripts to FastCGI server
        #
        #location ~ \.php$ {
        #       include snippets/fastcgi-php.conf;
        #
        #       # With php-fpm (or other unix sockets):
        #       fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        #}
...

Podemos observar que está totalmente desactivado, por lo que lo activaremos, pero de las dos directivas fastcgi_pass activaremos la que conecta como socket de Unix:

...
        # pass PHP scripts to FastCGI server
        #
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;

                # With php-fpm (or other unix sockets):
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
                # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        }
...

Observa que el valor original de la directiva fastcgi_pass que nos interesa está configurado para PHP 7.0, pero la hemos corregido dándole el valor correspondiente para PHP 7.2 (la versión que hemos instalado).

Guardados los cambios y cerrado el archivo, debemos recargar el servicio Nginx:

~$ sudo systemctl reload nginx

Probar rápidamente LEMP en Ubuntu 18.04

Con los mínimos ajustes realizados, escribiremos el típico script PHP que nos dará toda la información sobre nuestro sistema LEMP recién instalado en Ubuntu 18.04:

~$ sudo nano /var/www/html/info.php

El script únicamente consistirá en una llamada a la función phpinfo():

<?php phpinfo();

Ahora podemos acceder desde un navegador, añadiendo la ruta /info.php a la dirección IP o dominio de la máquina Ubuntu 18.04:

como configurar lemp en ubuntu 18.04

Veremos mucha información, desde números de versión, extensiones de PHP cargadas (entre ellas la necesaria para conectar con MariaDB), la configuración de la zona horaria que establecimos, etc.

Ya sólo queda ponernos a desarrollar o a instalar apliaciones web.

Conclusión

Ahora que sabes cómo instalar y configurar un entorno LEMP en Ubuntu 18.04 tienes una gran plataforma para desarrollar o instalar potentes aplicaciones en tu servidor o VPS Ubuntu.

En caso de dudas, preguntas, sugerencias, etc. puedes dejar algún comentario.

¡Apoya este sitio!

¿Te ha servido esta guía de instalación de la pila LEMP en Ubuntu 18.04? Pues si te apetece agradecérnoslo, cualquier mínima contribución al mantemimiento de este sitio es bienvenida. ¡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