Búsqueda de sitios web

Cómo instalar LEMP Stack con PhpMyAdmin en Ubuntu 20.04


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

Puede utilizar LEMP tanto para fines de prueba como en un entorno de producción real para implementar aplicaciones web utilizando marcos PHP como Laravel o Yii, o sistemas de gestión de contenidos 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, Nginx no retrocede de ninguna manera.

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

Si busca una configuración de LAMP para su Ubuntu 20.04, debe leer nuestra guía de configuración de LAMP en Ubuntu 20.04.

Requisitos previos:

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

En este artículo, aprenderá cómo 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 rápido y moderno diseñado para servir muchas conexiones simultáneas sin consumir demasiados recursos del servidor. Por eso suele ser la opción preferida en entornos empresariales.

NGINX también se usa comúnmente como equilibrador de carga y caché de contenido web. Admite servidores virtuales basados en nombres y 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 utilizar 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 del paquete Ubuntu activa systemd para iniciar el servicio Nginx y permitir 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 comprobar si la instalación de Nginx se realizó correctamente 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 buscarla 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 correcta instalación y funcionamiento.

Paso 2: Instalar 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 de Oracle.

La instalación de MariaDB es sencilla y se puede iniciar con comandos como:

sudo apt install mariadb-server mariadb-client

5. El servicio MariaDB también se inicia automáticamente y se habilita para iniciarse siempre al iniciar el sistema y puede confirmarlo usando 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? [S/n] s
  • ¿Eliminar usuarios anónimos? [S/n] s
  • ¿No permitir el inicio de sesión de root de forma remota? [S/n] s
  • ¿Eliminar la base de datos de prueba y acceder a ella? [S/n] s
  • ¿Recargar tablas de privilegios ahora? [S/n] s

7. Para crear, administrar y realizar operaciones de base de datos, necesita el comando shell mysql con el indicador -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 popular lenguaje de programación de código abierto, flexible y dinámico para crear sitios web y aplicaciones web. Admite una variedad de técnicas de programación. Es importante destacar que la comunidad PHP es grande y diversa y está compuesta por innumerables bibliotecas, marcos y otros componentes útiles.

NGINX utiliza FPM (FastCGI Process Manager) o PHP-FPM para procesar scripts PHP. PHP-FPM es una implementación PHP FastCGI alternativa ampliamente utilizada que viene con 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 PHP-FPM se almacenan en /etc/php/7.4/fpm.

9. A continuación, verifique 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 clientes a PHP-FPM, que de forma predeterminada está configurado para escuchar en un Socket UNIX definido por el parámetro de escucha en el archivo de configuración del grupo predeterminado /etc/php/7.4/fpm/pool.d/www.conf.

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), descomente la directiva de ubicación para procesar PHP solicita que se parezca al que se muestra en la siguiente captura de pantalla.

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

Guarda el archivo y cierra.

12. Luego pruebe que la sintaxis de configuración de NGINX 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 y mostrarse 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 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 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 Entrar.

Paso 6: Configurar NGINX para servir el sitio PhpMyAdmin

19. Para permitir que NGINX sirva el 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 index en el archivo de configuración de 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 utilizando 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 contraseña de PHPMyAdmin. Recuerde que el inicio de sesión del usuario raíz remoto está deshabilitado a menos que acceda a PHPMyAdmin en el host local donde está instalada la base de datos MariaDB, el acceso raíz no funcionará.

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

Conclusión

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