LAMP (paquete de software)

Acrónimo de una solución común de alojamiento web

Una descripción general de alto nivel de los componentes básicos de LAMP y el entorno general del sistema

Un LAMP ( Linux , Apache , MySQL , Perl / PHP / Python ) es una de las pilas de software más comunes para las aplicaciones más populares de la web . Su modelo de pila de software genérico tiene componentes en gran medida intercambiables. [1]

Cada letra del acrónimo representa uno de sus cuatro componentes básicos de código abierto :

Los componentes de la pila LAMP están presentes en los repositorios de software de la mayoría de las distribuciones de Linux .

Historia

El acrónimo LAMP fue acuñado por Michael Kunze en la edición de diciembre de 1998 de Computertechnik , una revista informática alemana, cuando demostró que un paquete de software libre y de código abierto "podría ser una alternativa viable a los costosos paquetes comerciales". [2] Desde entonces, O'Reilly Media y MySQL se unieron para popularizar el acrónimo y evangelizar su uso. [3] Una de las primeras pilas de software de código abierto para la web, el término y el concepto se hicieron populares. La pila es capaz de albergar una variedad de marcos y aplicaciones web, como WordPress y Drupal . [4]

Variantes

El modelo LAMP se ha adaptado a otros componentes, aunque normalmente consisten en software libre y de código abierto . Con el creciente uso del arquetipo LAMP, aparecieron variaciones y retrónimos para otras combinaciones de sistema operativo, servidor web, base de datos y lenguaje de software. Por ejemplo, una instalación equivalente en la familia de sistemas operativos Microsoft Windows se conoce como WAMP . Una alternativa que ejecuta IIS en lugar de Apache se llama WIMP . Las variantes que involucran otros sistemas operativos incluyen MAMP ( macOS ), SAMP ( Solaris ), FAMP ( FreeBSD ), iAMP ( IBM i ) y XAMPP (multiplataforma). [ cita requerida ]

El servidor web o sistema de gestión de bases de datos también varía. LEMP es una versión donde Apache ha sido reemplazado por el servidor web más ligero Nginx . [5] Una versión donde MySQL ha sido reemplazado por PostgreSQL se llama LAPP, o en ocasiones manteniendo el acrónimo original, LAMP (Linux/Apache/Middleware (Perl, PHP, Python, Ruby)/PostgreSQL). [6]

El paquete LAMP se puede combinar con muchos otros paquetes de software gratuitos y de código abierto, incluidos:

Como otro ejemplo, el software que Wikipedia y otros proyectos de la Fundación Wikimedia utilizan para su infraestructura subyacente es una pila LAMP personalizada con complementos como Linux Virtual Server (LVS) para equilibrar la carga y Ceph y Swift para almacenamiento de objetos distribuidos. [ cita requerida ]

Componentes de software

Una descripción general de alto nivel de los componentes determinantes de LAMP ( Firefox sirve solo como ejemplo de navegador ).

Linux

Linux es un sistema operativo informático similar a Unix ensamblado bajo el modelo de desarrollo y distribución de software libre y de código abierto . La mayoría de las distribuciones Linux , como colecciones de software basadas en el núcleo Linux y, a menudo, en un sistema de gestión de paquetes , proporcionan configuraciones LAMP completas a través de sus paquetes. Según W3Techs en octubre de 2013, el 58,5% de la cuota de mercado de servidores web se comparte entre Debian y Ubuntu , mientras que RHEL , Fedora y CentOS juntos comparten el 37,3%. [7]

apache

El papel del servidor web de LAMP ha sido tradicionalmente proporcionado por Apache, y desde entonces ha incluido otros servidores web como Nginx .

Apache es desarrollado y mantenido por una comunidad abierta de desarrolladores bajo los auspicios de la Apache Software Foundation . Apache es un software de código abierto publicado bajo la licencia Apache . Ofrece una amplia variedad de funciones, y muchas de ellas se implementan como módulos compilados que amplían la funcionalidad principal de Apache. Estas pueden ir desde compatibilidad con lenguajes de programación del lado del servidor hasta autenticación.

MySQL y alternativas a bases de datos

El rol original de MySQL como sistema de gestión de bases de datos relacionales de LAMP ha sido desde entonces aprovisionado alternativamente por otros como PostgreSQL , MariaDB (una bifurcación de MySQL desarrollada por la comunidad y desarrollada por sus desarrolladores originales) e incluso bases de datos NoSQL como MongoDB .

MySQL es un sistema de gestión de bases de datos SQL multiproceso y multiusuario , [ 8] adquirido por Sun Microsystems en 2008, que luego fue adquirido por Oracle Corporation en 2010. [9] Desde sus primeros años, el equipo de MySQL ha puesto a disposición su código fuente bajo los términos de la Licencia Pública General de GNU , así como bajo una variedad de acuerdos de propiedad .

PostgreSQL también es un sistema de gestión de bases de datos relacionales de objetos compatible con ACID , desarrollado por PostgreSQL Global Development Group.

MongoDB es una base de datos NoSQL que evita la estructura de base de datos relacional tradicional en favor de documentos tipo JSON con esquemas dinámicos (llamado formato BSON ), lo que hace que la integración de datos en ciertos tipos de aplicaciones sea más fácil y rápida.

PHP y alternativas

El papel de PHP como lenguaje de programación de aplicaciones de LAMP también ha sido desempeñado por otros lenguajes como Perl y Python.

PHP es un lenguaje de programación del lado del servidor diseñado para el desarrollo web , pero también se utiliza como lenguaje de programación de propósito general . El código PHP es interpretado por un servidor web a través de un módulo de procesador PHP, que genera la página web resultante. Los comandos PHP se pueden incrustar opcionalmente directamente en un documento fuente HTML en lugar de llamar a un archivo externo para procesar datos. También ha evolucionado para incluir una capacidad de interfaz de línea de comandos y se puede utilizar en aplicaciones gráficas independientes . [10] PHP es software libre publicado bajo los términos de la Licencia PHP , que es incompatible con la Licencia Pública General GNU (GPL) debido a las restricciones que la Licencia PHP impone al uso del término PHP . [11]

Perl es una familia de lenguajes de programación de alto nivel , de propósito general, interpretados y dinámicos . Los lenguajes de esta familia incluyen Perl 5 y Raku . [12] Proporcionan funciones avanzadas de procesamiento de texto sin los límites arbitrarios de longitud de datos de muchas herramientas de línea de comandos de Unix contemporáneas , [13] lo que facilita la manipulación de archivos de texto . Perl 5 ganó una gran popularidad a fines de la década de 1990 como lenguaje de script CGI para la Web, en parte debido a sus capacidades de análisis . [14]

Python es un lenguaje de programación interpretado , de alto nivel y de propósito general ampliamente utilizado . [15] Python admite múltiples paradigmas de programación , incluidos los paradigmas orientados a objetos , imperativos , funcionales y procedimentales . Cuenta con un sistema de tipos dinámico , administración automática de memoria , una biblioteca estándar y un uso estricto de espacios en blanco . [16] Al igual que otros lenguajes dinámicos , Python se usa a menudo como lenguaje de scripting , pero también se usa en una amplia gama de contextos que no son de scripting.

Alta disponibilidad y equilibrio de carga

Se requieren enfoques específicos para sitios web que atienden grandes cantidades de solicitudes o brindan servicios que exigen un alto tiempo de actividad . Los enfoques de alta disponibilidad para la pila LAMP pueden involucrar múltiples servidores web y de bases de datos, combinados con componentes adicionales que realizan la agregación lógica de los recursos proporcionados por cada uno de los servidores, así como la distribución de la carga de trabajo entre múltiples servidores. La agregación de servidores web se puede proporcionar colocando un balanceador de carga frente a ellos, por ejemplo, mediante el uso de Linux Virtual Server (LVS). Para la agregación de servidores de bases de datos, MySQL proporciona mecanismos de replicación internos que implementan una relación maestro/esclavo entre la base de datos original (maestra) y sus copias (esclavas). [17]

Estas configuraciones de alta disponibilidad también pueden mejorar la disponibilidad de las instancias LAMP al proporcionar varias formas de redundancia , lo que hace posible que una cierta cantidad de componentes (servidores separados) experimenten tiempos de inactividad sin interrumpir a los usuarios de los servicios proporcionados en su conjunto. Estas configuraciones redundantes también pueden manejar fallas de hardware que resulten en pérdida de datos en servidores individuales de una manera que evita que los datos almacenados colectivamente se pierdan. Además de una mayor disponibilidad, estas configuraciones LAMP son capaces de proporcionar mejoras casi lineales en el rendimiento para servicios que tienen una cantidad de operaciones de lectura de bases de datos internas mucho mayor que la cantidad de operaciones de escritura/actualización. [17]

Véase también

Referencias

  1. ^ "LAMP (Linux, Apache, MySQL, PHP)". SearchEnterpriseLinux . Archivado desde el original el 28 de noviembre de 2021 . Consultado el 15 de diciembre de 2021 .
  2. ^ Kunze, Michael (diciembre de 1998). «LAMP: Sistema de publicación web gratuito con soporte de bases de datos». c't . Archivado desde el original el 3 de febrero de 1999 . Consultado el 15 de junio de 2024 .
  3. ^ Kay, Russell (25 de septiembre de 2006). "Cómo hacer: LAMP". Computerworld . Archivado desde el original el 11 de julio de 2021. Consultado el 15 de diciembre de 2021 .
  4. ^ "Pila LAMP". Centro de aprendizaje en la nube de IBM . IBM. Octubre de 2015. Archivado desde el original el 15 de diciembre de 2021. Consultado el 15 de diciembre de 2021 .
  5. ^ "Pila LEMP (Linux, Nginx, MySQL, PHP)". lemp.io. Archivado desde el original el 19 de noviembre de 2021. Consultado el 16 de diciembre de 2021 .
  6. ^ "Usuarios destacados". PostgreSQL. Archivado desde el original el 22 de enero de 2014 . Consultado el 22 de enero de 2014 .
  7. ^ "Debian/Ubuntu amplían su dominio en el mercado de servidores web Linux". W³Techs . Consultado el 16 de diciembre de 2021 .
  8. ^ "Principales razones para que los gerentes de producto incorporen MySQL". Archivado desde el original el 2 de julio de 2014 . Consultado el 27 de julio de 2014 .
  9. ^ "Sun bloquea MySQL y mira hacia el desarrollo web futuro". InformationWeek. Archivado desde el original el 28 de febrero de 2008. Consultado el 27 de julio de 2014 .
  10. ^ "Introducción: ¿Qué puede hacer PHP?". Manual de PHP . Archivado desde el original el 15 de diciembre de 2021. Consultado el 16 de diciembre de 2021 .
  11. ^ "Licencias de software libre incompatibles con la GPL". Varias licencias y comentarios sobre ellas . Free Software Foundation. Archivado desde el original el 16 de diciembre de 2021. Consultado el 16 de diciembre de 2021 .
  12. ^ "Acerca de Perl". perl.org. Archivado desde el original el 22 de noviembre de 2021. Consultado el 16 de diciembre de 2021 ."Perl" es una familia de lenguajes, "Perl 6" es parte de la familia, pero es un lenguaje independiente que tiene su propio equipo de desarrollo. Su existencia no tiene un impacto significativo en el desarrollo continuo de "Perl 5".
  13. ^ Wall, Larry ; Tom Christiansen; Jon Orwant (julio de 2000). Programación en Perl, tercera edición . O'Reilly Media . ISBN. 0-596-00027-8.
  14. ^ Smith, Roderick W. (21 de junio de 2002). Redes Linux avanzadas . Addison-Wesley Professional. pág. 594. ISBN 978-0-201-77423-8.
  15. ^ "Tendencias de los lenguajes de programación – Radar O'Reilly". Radar.oreilly.com. 2 de agosto de 2006. Archivado desde el original el 24 de septiembre de 2021. Consultado el 16 de diciembre de 2021 .
  16. ^ "Acerca de Python". Fundamentos del software Python. Archivado desde el original el 16 de diciembre de 2021 . Consultado el 16 de diciembre de 2021 .
  17. ^ ab Simic, Dragan; Ristic, Srecko; Obradovic, Slobodan (abril de 2007). "Medición de los niveles de rendimiento alcanzados de las aplicaciones web con bases de datos relacionales distribuidas" (PDF) . Electrónica y energética . Facta Universitatis. págs. 31–43. Archivado (PDF) del original el 7 de octubre de 2021 . Consultado el 16 de diciembre de 2021 .
  • Instalar un servidor LAMP en Ubuntu Linux
  • Instalar un servidor LAMP en Debian Linux
  • Instalar un servidor LAMP en SUSE Linux
  • Instalar un servidor LAMP en Amazon AWS
  • Instalar un servidor LAMP en CentOS 5.x.
Obtenido de "https://es.wikipedia.org/w/index.php?title=LAMP_(paquete_de_software)&oldid=1244585052"