Cómo instalar LEMP Stack con PhpMyAdmin en Ubuntu 20.04


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

Puede usar LEMP para fines de prueba o en un entorno de producción real para implementar aplicaciones web utilizando marcos PHP como Laravel o Yii, o sistemas de gestión de contenido como Joomla.

Quizás se pregunte cuál es la diferencia entre LAMP y LEMP. Bueno, la única diferencia es el servidor web que está incluido: Apache (en LAMP) y Nginx (en LEMP). Ambos servidores web son bastante buenos y, si bien Apache es el que se usa con más frecuencia, Nginx no retrocede de ninguna manera.

Otra aplicación ampliamente utilizada normalmente instalada junto con la pila LEMP es PhpMyAdmin, una herramienta PHP basada en web para administrar un servidor de base de datos MySQL/MariaDB desde un navegador web.

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

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

En este artículo, aprenderá a instalar y configurar la pila LEMP con PhpMyAdmin en el servidor Ubuntu 20.04.

Paso 1: Instalar Nginx en Ubuntu 20.04

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

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

Puede instalar Nginx en su escritorio o servidor Ubuntu 20.04 ejecutando el siguiente comando.

$ sudo apt update
$ sudo apt install nginx

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 raíz de documentos predeterminada para almacenar sus archivos web es/usr/share/nginx/html /. Pero puede usar el estándar/var/www/html que debe configurarse 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 Nginx y habilitarlo para que se inicie automáticamente cada vez que se reinicia el servidor. Utilice los siguientes comandos systemctl para confirmar que el servicio se está ejecutando y está habilitado.

$ sudo systemctl status nginx 
$ sudo systemctl is-enabled nginx

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

http://SERVER_IP

Si no conoce la dirección IP de su servidor, puede buscar 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 la instalación y el funcionamiento correctos.

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

4. MariaDB es un sistema de administració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 Oracle.

La instalación de MariaDB es simple y se puede iniciar con un comando como:

$ sudo apt install mariadb-server mariadb-client

5. El servicio MariaDB también se inicia y habilita automáticamente para que se inicie siempre al arrancar el sistema y puede confirmarlo con los siguientes comandos.

$ sudo systemctl status mariadb
$ sudo systemctl is-enabled mariadb

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

$ sudo mysql_secure_installation

Luego, elija la opción para establecer la contraseña del usuario raíz (o administrador) de la base de datos, siga las instrucciones y lea atentamente las preguntas. Para proteger su servidor de base de datos, responda las preguntas como se muestra en la captura de pantalla.

  • Ingrese la contraseña actual para root (ingrese para ninguna): Ingrese
  • ¿Establecer una contraseña de root? [Y/n] y
  • ¿Eliminar usuarios anónimos? [Y/n] y
  • ¿Deshabilitar el inicio de sesión de root de forma remota? [Y/n] y
  • ¿Eliminar la base de datos de prueba y acceder a ella? [Y/n] y
  • ¿Volver a cargar las tablas de privilegios ahora? [Y/n] y

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

Para conectarse como usuario root, use el comando sudo (incluso sin el indicador -p ); de lo contrario, recibirá el error resaltado en la siguiente captura de pantalla.

$ mysql -u root -p
$ sudo mysql -u root

Paso 3: instalar PHP en Ubuntu 20.04

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

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

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

$ sudo apt install php php-mysql php-fpm

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, compruebe 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

Paso 4: configurar Nginx para que funcione con PHP-FPM

10. Ahora necesita configurar NGINX para enviar solicitudes de cliente a PHP-FPM, que de forma predeterminada está configurado para escuchar en un socket UNIX como lo define el parámetro de escucha en /etc/php/7.4/fpm/pool.d/www .conf archivo de configuración del grupo predeterminado.

$ sudo vi /etc/php/7.4/fpm/pool.d/www.conf 

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

$ sudo vi /etc/nginx/sites-available/default

Guarda el archivo y cierra.

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

$ sudo nginx -t
$ sudo systemctl restart nginx

13. Ahora pruebe si NGINX puede funcionar junto 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

Paso 5: Instalar 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 las tareas de administración de bases de datos.

$ sudo apt install phpmyadmin

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

17. A continuación, PhpMyAdmin requiere una base de datos para trabajar. En este mensaje de configuración del paquete, elija Yes para configurar una base de datos para PhpMyAdmin con el paquete dbconfig-common.

18. En el siguiente mensaje, debe proporcionar una contraseña para que PhpMyAdmin se registre en la base de datos MariaDB. Ingrese una contraseña segura y haga clic en Enter.

Paso 6: Configuración de NGINX para servir el sitio PhpMyAdmin

19. Para permitir que NGINX sirva al sitio PhpMyAdmin ubicado en/usr/share/phpmyadmin, cree un enlace simbólico para este directorio en la raíz del documento, luego configure los permisos y la propiedad correctos en el directorio 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úrese de que la directiva de índice en el archivo de configuración del bloque del servidor predeterminado (/ etc/nginx/sites-available/default) incluya index.php como se muestra en la siguiente captura de pantalla.

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

$ sudo systemctl restart nginx

22. Ahora acceda al sitio PhpMyAdmin desde un navegador usando la siguiente dirección.

http://SERVER_IP/phpmyadmin

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

Por último, pero no menos importante, asegure la instalación de PhpMyAdmin con nuestra guía: 4 consejos útiles para proteger la interfaz web de PhpMyAdmin.

Conclusión

Su configuración de LEMP ahora está completa y puede comenzar a construir sus aplicaciones web o simplemente jugar con los servicios Nginx y MariaDB que acaba de instalar. Estos son ampliamente utilizados y es muy recomendable para los administradores de sistemas adquirir más conocimientos sobre ellos.