Cómo instalar LEMP Stack con PhpMyAdmin en Ubuntu 20.04

Para aquellos que no saben qué es LEMP – esta es una combinación de paquetes de software – Linux, Nginx (pronunciado EngineX), MariaDB y PHP.

Puedes usar LEMP tanto para propósitos de prueba como en un entorno de producción real para implementar aplicaciones web utilizando frameworks de PHP como Laravel o Yii, o sistemas de gestión de contenido como WordPress, Drupal, o Joomla

Quizás te preguntes cuál es la diferencia entre LAMP y LEMP. Bueno, la única diferencia es el servidor web que se incluye – Apache (en LAMP) y Nginx (en LEMP). Ambos servidores web son bastante buenos y aunque Apache es el más utilizado con frecuencia, Nginx no se queda atrás de ninguna manera.

Otra aplicación ampliamente utilizada que normalmente se instala junto con el conjunto LEMP es PhpMyAdmin – es una herramienta web basada en PHP para administrar un servidor de base de datos MySQL/MariaDB desde un navegador web.

Si estás buscando una configuración LAMP para tu Ubuntu 20.04, entonces deberías leer nuestra guía de configuración LAMP en Ubuntu 20.04.

Prerrequisitos:

  1. Guía de instalación del servidor Ubuntu 20.04

En este artículo, aprenderás cómo instalar y configurar el stack LEMP con PhpMyAdmin en el servidor Ubuntu 20.04.

Paso 1: Instalación de Nginx en Ubuntu 20.04

1. Nginx es un servidor web moderno y rápido diseñado para servir muchas conexiones concurrentes sin consumir demasiados recursos del servidor. Por esta razón, a menudo es la opción preferida en entornos empresariales.

NGINX también se utiliza comúnmente como un balanceador de carga y caché de contenido web. Soporta servidores virtuales basados en nombres y en IP (análogos a los hosts virtuales en Apache).

Puedes instalar Nginx en tu escritorio o servidor Ubuntu 20.04 ejecutando el siguiente comando.

$ sudo apt update
$ sudo apt install nginx
Install Nginx on Ubuntu 20.04

Los archivos de configuración de Nginx se almacenan en el directorio /etc/nginx y su archivo de configuración principal es /etc/nginx/nginx.conf. Es importante destacar que su directorio raíz predeterminado para almacenar sus archivos web es /usr/share/nginx/html/. Pero puede utilizar el estándar /var/www/html que debería estar configurado en el archivo de configuración del bloque del servidor de su sitio web o aplicación.

2. El instalador de paquetes de Ubuntu activa systemd para iniciar el servicio de Nginx y habilitarlo para que se inicie automáticamente cada vez que se reinicie el servidor. Utilice los siguientes comandos systemctl para confirmar que el servicio esté en ejecución y habilitado.

$ sudo systemctl status nginx 
$ sudo systemctl is-enabled nginx
Check Nginx Service Status

3. Ahora es el momento de comprobar si la instalación de Nginx fue exitosa llamando a la página de Nginx a través del navegador utilizando la dirección IP del servidor.

http://SERVER_IP

Si no conoce la dirección IP de su servidor, puede encontrarla usando el comando IP como se muestra.

$ ip addr show

La página web predeterminada de NGINX debería cargarse como se muestra en la siguiente captura de pantalla, confirmando una instalación y funcionamiento correctos.

Test Nginx Installation

Paso 2: Instalación de la base de datos MariaDB en Ubuntu 20.04

4. MariaDB es un sistema de gestión de bases de datos relacionales relativamente nuevo que fue diseñado como una bifurcación comunitaria de MySQL después de su adquisición por parte de Oracle.

La instalación de MariaDB es simple y puede iniciarse con el comando:

$ sudo apt install mariadb-server mariadb-client
Install MariaDB on Ubuntu 20.04

5. El servicio de MariaDB también se inicia automáticamente y se habilita para iniciarse siempre en el arranque del sistema, y puedes confirmarlo usando los siguientes comandos.

$ sudo systemctl status mariadb
$ sudo systemctl is-enabled mariadb
Check MariaDB Service

6. Si deseas mejorar la seguridad de MariaDB, puedes ejecutar el comando mysql_secure_installation, que proporcionará algunas opciones básicas pero importantes para configurar:

$ sudo mysql_secure_installation

Luego elige la opción para establecer la contraseña del usuario root (o administrador) de la base de datos y sigue las indicaciones y lee cuidadosamente las preguntas. Para asegurar tu servidor de base de datos, responde las preguntas como se muestra en la captura de pantalla.

  • Introduce la contraseña actual para root (presiona enter si no hay ninguna): Introduce
  • ¿Establecer una contraseña para root? [S/n] s
  • ¿Eliminar usuarios anónimos? [S/n] s
  • ¿Denegar el acceso remoto al usuario root? [S/n] s
  • ¿Eliminar la base de datos de prueba y el acceso a ella? [S/n] s
  • ¿Recargar las tablas de privilegios ahora? [S/n] s
Secure MariaDB Server

7. Para crear, administrar y realizar operaciones en la base de datos, necesitas el comando de shell de mysql con la bandera -u para especificar el nombre de usuario de la base de datos y -p para proporcionar la contraseña del usuario.

Para conectarte como el usuario root, usa el comando sudo (incluso sin la bandera -p) de lo contrario recibirás el error resaltado en la siguiente captura de pantalla.

$ mysql -u root -p
$ sudo mysql -u root
Access MariaDB Shell

Paso 3: Instalando PHP en Ubuntu 20.04

8. PHP es un popular lenguaje de secuencias de comandos de código abierto, flexible y dinámico para construir sitios web y aplicaciones web. Soporta una variedad de técnicas de programación. Es importante destacar que la comunidad de PHP es grande y diversa, compuesta por innumerables bibliotecas, frameworks y otros componentes útiles.

NGINX utiliza FPM (FastCGI Process Manager) o PHP-FPM, para procesar scripts PHP. PHP-FPM es una implementación de PHP FastCGI ampliamente utilizada que viene con muchas características adicionales y se utiliza para alimentar sitios/aplicaciones web de alto tráfico.

Para instalar PHP y PHP-FPM, ejecuta el siguiente comando que también instalará algunos paquetes adicionales necesarios.

$ sudo apt install php php-mysql php-fpm
Install PHP and PHP-FPM on Ubuntu 20.04

Dado que PHP 7.4 es la versión predeterminada de PHP en Ubuntu 20.04, los archivos de configuración de PHP se encuentran en /etc/php/7.4/ y los archivos de configuración de PHP-FPM se almacenan en /etc/php/7.4/fpm.

9. A continuación, verifica si el servicio php7.4-fpm está en funcionamiento y si está habilitado con el siguiente comando.

$ sudo systemctl status php7.4-fpm
$ sudo systemctl is-enabled php7.4-fpm
Check PHP-FPM Status

Paso 4: Configuración de Nginx para trabajar con PHP-FPM

10. Ahora necesitas configurar NGINX para enviar solicitudes de clientes a PHP-FPM, que por defecto está configurado para escuchar en un socket UNIX según lo definido por el parámetro listen en el archivo de configuración de pool predeterminado /etc/php/7.4/fpm/pool.d/www.conf.

$ sudo vi /etc/php/7.4/fpm/pool.d/www.conf 
Configure PHP-FPM Socket

11. En el archivo de configuración del bloque de servidor predeterminado (/etc/nginx/sites-available/default), descomente la directiva de ubicación para procesar las solicitudes PHP para que se parezcan a la que se muestra en la siguiente captura de pantalla.

$ sudo vi /etc/nginx/sites-available/default
Configure Nginx Block to Use PHP-FPM Socket

Guarde el archivo y salga.

12. Luego, pruebe la sintaxis de configuración de NGINX para verificar su corrección. Si está bien, reinicie el servicio de Nginx para aplicar los nuevos cambios.

$ sudo nginx -t
$ sudo systemctl restart nginx
Check Nginx Configuration

13. Ahora, pruebe si NGINX puede trabajar en conjunto con PHP-FPM para procesar solicitudes PHP. Cree una página info.php simple en el directorio raíz del documento.

$ echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

14. En su navegador, navegue utilizando la siguiente dirección. La página de configuración de PHP debería cargarse como se muestra en la siguiente captura de pantalla.

http://SERVER_IP/info.php
Check PHP and PHP-FPM Info

Paso 5: Instalación de PhpMyAdmin en Ubuntu 20.04

15. PhpMyAdmin es una aplicación PHP basada en web, gratuita y de código abierto, creada específicamente para administrar servidores de bases de datos MySQL/MariaDB a través de un navegador web. Proporciona una interfaz gráfica intuitiva y admite una amplia gama de funciones comunes para tareas de administración de bases de datos.

$ sudo apt install phpmyadmin
Install PhpMyAdmin in Ubuntu 20.04

16. Durante la instalación del paquete, se le pedirá que configure varios aspectos del paquete PhpMyAdmin. Primero, se le solicitará que elija el servidor web predeterminado para ejecutarlo. Presione Esc porque NGINX no está en la lista proporcionada.

Choose Web Server to Configure PHPMyAdmin

17. A continuación, PhpMyAdmin requiere una base de datos para funcionar. En este cuadro de diálogo de configuración del paquete, elige para configurar una base de datos para PhpMyAdmin con el paquete dbconfig-common.

Configure Database for PhpMyAdmin

18. En el siguiente cuadro de diálogo, debes proporcionar una contraseña para que PhpMyAdmin se registre en la base de datos MariaDB. Ingresa una contraseña segura y haz clic en Enter.

Create a Password for PhpMyAdmin

Paso 6: Configuración de NGINX para Servir el Sitio de PhpMyAdmin

19. Para habilitar que NGINX sirva el sitio de PhpMyAdmin ubicado en /usr/share/phpmyadmin, crea un enlace simbólico para este directorio bajo la raíz del documento, luego establece los permisos y la propiedad correctos en el directorio de PHPMyAdmin de la siguiente manera.

$ sudo ln -s  /usr/share/phpmyadmin /var/www/html/phpmyadmin
$ sudo chmod 775 -R /usr/share/phpmyadmin/
$ sudo chown root:www-data -R /usr/share/phpmyadmin/

20. Además, asegúrate de que la directiva index en el archivo de configuración del bloque de servidor predeterminado (/etc/nginx/sites-available/default) incluya index.php como se muestra en la siguiente captura de pantalla.

Configure Nginx Index Directive

21. A continuación, reinicia el servicio de Nginx una vez más para aplicar los cambios anteriores.

$ sudo systemctl restart nginx

22. Ahora accede al sitio de PhpMyAdmin desde un navegador utilizando la siguiente dirección.

http://SERVER_IP/phpmyadmin

En la página de inicio de sesión, autentícate con el nombre de usuario y la contraseña de PHPMyAdmin. Recuerda que el inicio de sesión del usuario root remoto está desactivado a menos que estés accediendo a PHPMyAdmin en el localhost donde está instalada la base de datos MariaDB, el acceso root no funcionará.

PhpMyAdmin Login
PhpMyAdmin Dashboard

Por último, asegura tu instalación de PhpMyAdmin siguiendo nuestra guía: 4 Consejos Útiles para Asegurar la Interfaz Web de PhpMyAdmin.

Conclusión

Tu configuración de LEMP está ahora completa y puedes empezar a construir tus aplicaciones web o simplemente jugar con los servicios de Nginx y MariaDB que acabas de instalar. Estos son ampliamente utilizados y se recomienda encarecidamente a los administradores del sistema que adquieran más conocimientos sobre ellos.

Source:
https://www.tecmint.com/install-lemp-with-phpmyadmin-in-ubuntu-20-04/