Implementación de LNMP en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

LNMP combina cuatro componentes de software de código abierto: Linux, Nginx, MySQL y PHP. Esta pila se utiliza a menudo para alimentar aplicaciones web dinámicas y sitios web. A continuación, se presenta una breve descripción de cada componente:

  • Linux: Un sistema operativo que proporciona la base para el resto de la pila.
  • Nginx: Un servidor web de alto rendimiento y proxy inverso que puede manejar un gran tráfico y servir eficientemente contenido estático.
  • MySQL: Un popular sistema de gestión de bases de datos relacionales que proporciona una forma confiable de almacenar y recuperar datos para aplicaciones web.
  • PHP: Un lenguaje de scripting que se utiliza ampliamente para el desarrollo web, que le permite escribir código del lado del servidor que genera contenido HTML dinámico.

Juntos, estos componentes forman una plataforma poderosa y flexible para la construcción y despliegue de aplicaciones web modernas. LNMP es similar a LAMP (Linux, Apache, MySQL y PHP), pero utiliza Nginx en lugar de Apache como servidor web. Nginx es conocido por su velocidad y eficiencia, lo que lo hace una opción popular para sitios y aplicaciones con gran tráfico.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicSystemCommandsGroup -.-> linux/exit("Shell Exiting") linux/SystemInformationandMonitoringGroup -.-> linux/service("Service Managing") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/PackagesandSoftwaresGroup -.-> linux/curl("URL Data Transferring") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") linux/PackagesandSoftwaresGroup -.-> linux/software("Linux Software") linux/VersionControlandTextEditorsGroup -.-> linux/vim("Text Editing") subgraph Lab Skills linux/exit -.-> lab-7787{{"Implementación de LNMP en Linux"}} linux/service -.-> lab-7787{{"Implementación de LNMP en Linux"}} linux/sudo -.-> lab-7787{{"Implementación de LNMP en Linux"}} linux/curl -.-> lab-7787{{"Implementación de LNMP en Linux"}} linux/apt -.-> lab-7787{{"Implementación de LNMP en Linux"}} linux/software -.-> lab-7787{{"Implementación de LNMP en Linux"}} linux/vim -.-> lab-7787{{"Implementación de LNMP en Linux"}} end

Instalar Nginx

Por supuesto, aquí están los pasos específicos para instalar Nginx en un sistema Linux:

  1. Actualizar listas de paquetes: Ejecute el siguiente comando para actualizar las listas de paquetes en el servidor:
sudo apt-get update
  1. Utilice el siguiente comando para instalar Nginx:
sudo apt-get install nginx
  1. Compruebe si Nginx se ha instalado correctamente
nginx -v

La siguiente imagen indica que Nginx se ha instalado correctamente y que la versión actualmente instalada es 1.18.0.

nginx version: nginx/1.18.0

Instalar MySQL

Aquí están los pasos específicos para instalar MySQL en un sistema Linux:

  1. Utilice el siguiente comando para instalar MySQL:
sudo apt update
sudo apt-get install mysql-server
  1. Compruebe si el servidor MySQL está instalado:
mysql --version

La siguiente figura indica que MySQL se ha instalado correctamente.

mysql  Ver 8.0.35-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
  1. Compruebe si MySQL está iniciado y, si no lo está, inícielo con el siguiente comando.
sudo systemctl status mysql
sudo systemctl start mysql

Nota: El comando systemctl en el último paso debe ser systemctl para evitar errores.

Instalar PHP

Aquí están los pasos específicos para instalar PHP en un sistema Linux:

  1. Instalar PHP y módulos relacionados: Utilice el siguiente comando para instalar PHP y sus módulos relacionados.
sudo apt update
sudo apt-get install php8.1-fpm php-mysql

Esto instalará el Administrador de Procesos FastCGI de PHP (php-fpm) y la extensión MySQL para PHP (php-mysql).

  1. Verificar la versión de PHP.
sudo php -v

La siguiente figura indica que PHP se ha instalado correctamente.

PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)

Configurar Nginx

Una vez que se ha instalado Nginx, debe configurarse para trabajar con otros componentes. Siga estos pasos para hacerlo:

  1. Edite el archivo de configuración de Nginx /etc/nginx/sites-available/default:
sudo vim /etc/nginx/sites-available/default
  1. Reemplace el contenido existente con el siguiente:
server {
     listen 80 default_server;
     listen [::]:80 default_server;

     root /var/www/html;
     index index.php index.html index.htm index.nginx-debian.html;

     server_name _;

     location / {
            index index.php index.html index.htm;
        }

     location ~ \.php$ {
            fastcgi_pass unix:/run/php/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
}
  1. Compruebe si la configuración de Nginx es correcta:
sudo nginx -t
  1. Recargue nginx
sudo nginx -s reload

Configurar MySQL

  1. Ejecute el siguiente comando para acceder a MySQL.
sudo mysql
  1. Ejecute el siguiente comando para establecer la contraseña del usuario root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'Mysql@1234';
  1. Ejecute el siguiente comando para salir de la base de datos de MySQL
exit

Configurar PHP

  1. Cree y edite un nuevo archivo phpinfo.php para mostrar información de PHP.
sudo vim /var/www/html/phpinfo.php

Escriba el siguiente contenido.

<?php echo phpinfo();?>

Consejos: Donde /var/www/html es el directorio raíz del sitio, que se puede ver ejecutando el comando cat /etc/nginx/sites-enabled/default.

  1. Inicie PHP-FPM: Una vez que la instalación está completa, inicie el servicio PHP-FPM usando el siguiente comando.
sudo systemctl start php8.1-fpm

Consejos: Tenga en cuenta que el nombre exacto del servicio PHP-FPM puede variar según su distribución Linux y versión de PHP.

  1. Habilite PHP-FPM para que se inicie al encender: Para garantizar que PHP-FPM se inicie automáticamente cuando el servidor se enciende, ejecute el siguiente comando.
sudo systemctl enable php8.1-fpm

Verificar

Escriba http://127.0.0.1/phpinfo.php en la barra de direcciones de su navegador para acceder a él.

El resultado del acceso se muestra a continuación, y se ha visto correctamente la página de información de configuración de PHP, lo que significa que el entorno LNMP se ha desplegado correctamente.

PHP info page displayed

Alternativamente, se puede usar el comando curl para comprobar.

curl http://127.0.0.1/phpinfo.php -I

Resumen

Una vez que haya completado estos pasos, debería haber desplegado correctamente el stack LNMP. Puede colocar el código de su sitio web en el directorio /var/www/html y visitar su sitio web para asegurarse de que funcione correctamente.