Saltar a contenido

LEMP

En este artículo

Información

LEMP es una pila de tecnología de desarrollo web de código abierto que incluye el sistema operativo Linux, el servidor web NGINX (pronunciado "engine-x"), la base de datos MySQL y el lenguaje de scripting PHP.

  • Linux proporciona el alojamiento y la gestión del servidor.
  • NGINX actúa como un servidor web y proxy de alto rendimiento.
  • MySQL es una base de datos relacional para almacenar y procesar datos.
  • PHP es un lenguaje de programación utilizado para crear aplicaciones web dinámicas.

LEMP: Funcionalidades principales

  • Solución en contenedores: La pila LEMP está disponible tanto en implementación clásica como en una solución basada en contenedores. Un contenedor Docker proporciona aislamiento para los componentes y sus dependencias, creando un entorno idéntico para desarrollo y producción.
  • Alto rendimiento: La arquitectura orientada a eventos de NGINX le permite manejar eficazmente miles de conexiones concurrentes. La ejecución optimizada de PHP mediante FastCGI garantiza un procesamiento rápido del contenido dinámico, y el almacenamiento en caché avanzado de archivos estáticos reduce la carga del servidor.
  • Configuración flexible: LEMP ofrece la capacidad de configurar cada componente. NGINX admite esquemas de enrutamiento complejos, equilibrio de carga y almacenamiento en caché. MySQL permite ajustar los parámetros de rendimiento y seguridad. PHP puede configurarse para necesidades específicas de aplicaciones con la opción de incluir las extensiones necesarias y optimizar el uso de memoria.
  • Multifuncionalidad: PHP 8.3 incluye un conjunto de funciones para el desarrollo web moderno. Admite el trabajo con varios formatos de datos, cifrado y protocolos de red. MySQL proporciona un almacenamiento de datos fiable con soporte para transacciones, consultas complejas y replicación. NGINX ofrece capacidades avanzadas para el enrutamiento de solicitudes, terminación SSL y gestión de contenido multimedia.
  • Seguridad: LEMP incluye un sistema de seguridad multicapa. NGINX protege contra ataques DDoS y otras amenazas web. MySQL proporciona una gestión flexible de los permisos de usuario y cifrado de datos. PHP está configurado teniendo en cuenta los requisitos de seguridad modernos. La contenerización proporciona un nivel adicional de aislamiento, evitando que las vulnerabilidades en un componente afecten a otros.
  • Escalabilidad: La arquitectura LEMP permite un escalado eficiente de las aplicaciones. NGINX admite la distribución de carga entre múltiples servidores. MySQL proporciona replicación de datos y sharding para grandes conjuntos de datos. PHP-FPM permite un control preciso sobre el número de procesos trabajadores (worker processes). La contenerización simplifica el despliegue de instancias adicionales de la aplicación a medida que aumenta la carga.
  • Facilidad de actualizaciones: Las actualizaciones de los componentes de LEMP pueden realizarse de forma independiente. NGINX y PHP admiten actualizaciones sin interrumpir el funcionamiento del servicio. MySQL proporciona herramientas para actualizaciones seguras de la base de datos. Con contenedores, es posible probar las actualizaciones en un entorno aislado antes de aplicarlas a producción.

Funcionalidades de implementación

ID Nombre del Software SO Compatible VM BM VGPU GPU CPU Mín. (Núcleos) RAM Mín. (GB) HDD/SSD Mín. (GB) Dominio Personalizado Activo
21 LEMP Ubuntu 22.04 + + + + 1 1 - No PEDIR

La pila se despliega dentro de un contenedor Docker utilizando la imagen adhocore/lemp:8.3. Se utilizan los siguientes directorios para el almacenamiento de datos:

  • /root/data para archivos de la base de datos;
  • /root/webroot para archivos del sitio web.

Nota

Para trabajar con MySQL, debe conectarse a través del contenedor Docker, ya que el cliente de MySQL no está instalado en el sistema host. Utilice el siguiente comando:

docker exec -it lemp-stack mysql -u root -p 

Nota

A menos que se especifique lo contrario, por defecto instalamos la última versión de lanzamiento del software desde el sitio web del desarrollador o los repositorios del sistema operativo.

Primeros pasos después de implementar LEMP

Una vez que su pedido haya sido pagado, recibirá una notificación por correo electrónico en la dirección que proporcionó durante el registro, informándole que su servidor está listo para su uso. Este correo incluirá su dirección IP de VPS, el login y la contraseña para la conexión.

Los clientes de nuestra empresa gestionan su equipamiento a través del server control panel and APIInvapi. Puede encontrar la dirección IP del servidor en la pestaña Network. Una guía detallada sobre la gestión de la configuración de red está disponible aquí.

  • Login y Password para conectarse al servidor vía SSH: se proporcionan en la notificación por correo electrónico enviada a su dirección registrada una vez que el servidor esté listo tras el despliegue del software. La contraseña para conectarse a la base de datos es la misma que la contraseña de conexión al servidor SSH.

  • NGINX:

    • El servidor web es accesible en el puerto 88.
    • El contenido web se encuentra en el directorio /root/webroot. Para alojar un sitio web, copie sus archivos en este directorio.
    • Para probar el funcionamiento del servidor, cree un archivo de prueba:
      echo "Hello World!" > /root/webroot/test.html 
      
    • Acceso: http://<your_server_IP>:88/test.html

  • MySQL:

    • La base de datos es accesible en el puerto 3306.
    • Los datos se almacenan en /root/data.
    • La contraseña de root coincide con la contraseña de acceso SSH al servidor.
    • Para conectarse, use:
      docker exec -it lemp-stack mysql -u root -p
      

    Atención: Conexión a la base de datos desde PHP

    Al configurar aplicaciones web (WordPress, Laravel, etc.), utilice como host de la base de datos:

    127.0.0.1 en lugar de localhost

    Ejemplo para WordPress en wp-config.php:

    define('DB_HOST', '127.0.0.1');
    

    El uso de localhost resultará en el error: Fatal error: Uncaught mysqli_sql_exception: No such file or directory
    Razón: PHP intenta conectarse a través del socket Unix, que no está disponible en la ruta predeterminada dentro del contenedor.

  • PHP 8.3:

    • Instalado en el contenedor con todas las extensiones necesarias.
    • Funciona a través de FastCGI para un mayor rendimiento.
    • Para comprobar la funcionalidad de PHP, cree un archivo info.php en el directorio /root/webroot:
      echo "<?php phpinfo(); ?>" > /root/webroot/info.php
      

  • Ports:

    • 88: Web (NGINX)
    • 3306: MySQL
    • 5432: PostgreSQL

Nota

Todos los comandos para trabajar con la base de datos deben ejecutarse a través del contenedor Docker utilizando el comando docker exec. El contenedor opera dentro de una red dedicada, lemp-net, para mejorar el aislamiento y la seguridad.

Nota

Puede encontrar información detallada sobre cómo trabajar con la base de datos en la documentación del desarrollador.

Pedir un servidor con LEMP mediante la API

Para instalar este software utilizando la API, siga estas instrucciones

question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×