
Una pila de software LAMP (Linux, Apache, MySQL, Perl/PHP/Python) es una de las más comunes para las aplicaciones web más populares . Su modelo genérico de pila de software tiene componentes en gran medida intercambiables. [ 1 ]
Cada letra del acrónimo representa uno de sus cuatro componentes básicos de código abierto.
- Linux para el sistema operativo
- Servidor HTTP Apache
- MariaDB o MySQL para el sistema de gestión de bases de datos relacionales
- Perl , PHP o Python para el lenguaje de programación
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 alemana de informática, al demostrar que un conjunto 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 promover su uso. [ 3 ] Siendo una de las primeras pilas de software de código abierto para la web, el término y el concepto se popularizaron. La pila es capaz de alojar una variedad de marcos y aplicaciones web, como WordPress y Drupal . [ 4 ]
Componentes de software

Linux
Linux es un sistema operativo informático tipo Unix, desarrollado y distribuido bajo el modelo de software libre y de código abierto . La mayoría de las distribuciones de Linux , como conjuntos de software basados en el núcleo Linux , generalmente proporcionados a través de un sistema de gestión de paquetes , ofrecen configuraciones LAMP completas mediante sus paquetes. Según W3Techs en octubre de 2013, el 58,5 % de la cuota de mercado de servidores web se repartía entre Debian y Ubuntu , mientras que RHEL , Fedora y CentOS compartían el 37,3 %. [ 5 ]
apache
Tradicionalmente, Apache ha sido el servidor web de LAMP, 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 . Publicado bajo la Licencia Apache , Apache es software de código abierto . Admite una amplia variedad de funcionalidades, muchas de las cuales se implementan como módulos compilados que extienden la funcionalidad principal de Apache. Estas funcionalidades abarcan desde la compatibilidad con lenguajes de programación del lado del servidor hasta la autenticación.
MySQL y alternativas de bases de datos
El papel original de MySQL como sistema de gestión de bases de datos relacionales de LAMP ha sido asumido desde entonces por otros como PostgreSQL , MariaDB (una bifurcación de MySQL desarrollada por la comunidad y creada por sus desarrolladores originales) e incluso bases de datos NoSQL como MongoDB .
MySQL es un sistema de gestión de bases de datos SQL multihilo y multiusuario , [ 6 ] adquirido por Sun Microsystems en 2008, que luego fue adquirido por Oracle Corporation en 2010. [ 7 ] Desde sus primeros años, el equipo de MySQL ha puesto su código fuente a disposición bajo los términos de la Licencia Pública General GNU , así como bajo una variedad de acuerdos de propiedad .
PostgreSQL es también un sistema de gestión de bases de datos objeto-relacionales que cumple con las propiedades ACID y que fue desarrollado por PostgreSQL Global Development Group.
MongoDB es una base de datos NoSQL que prescinde de la estructura tradicional de las bases de datos relacionales en favor de documentos similares a JSON con esquemas dinámicos (denominando formato BSON ), lo que facilita y agiliza la integración de datos en ciertos tipos de aplicaciones.
PHP y alternativas
El papel de PHP como lenguaje de programación de aplicaciones de LAMP también lo han desempeñado otros lenguajes como Perl y Python.
PHP es un lenguaje de scripting del lado del servidor diseñado para el desarrollo web , pero también utilizado 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 procesador PHP, que genera la página web resultante. Los comandos PHP pueden incrustarse 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 interfaz de línea de comandos y puede utilizarse en aplicaciones gráficas independientes . [ 8 ] PHP es software libre publicado bajo los términos de la Licencia PHP , que es incompatible con la Licencia Pública General de GNU (GPL) debido a las restricciones que la Licencia PHP impone al uso del término PHP . [ 9 ]
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 . [ 10 ] Proporcionan funciones avanzadas de procesamiento de texto sin los límites arbitrarios de longitud de datos de muchas herramientas de línea de comandos Unix contemporáneas , [ 11 ] facilitando la manipulación de archivos de texto . Perl 5 ganó gran popularidad a finales de la década de 1990 como lenguaje de scripting CGI para la Web, en parte debido a sus capacidades de análisis sintáctico . [ 12 ]
Python es un lenguaje de programación interpretado , de alto nivel y de propósito general ampliamente utilizado . [ 13 ] Python admite múltiples paradigmas de programación , incluidos los paradigmas orientado a objetos , imperativo , funcional y procedimental . Cuenta con un sistema de tipos dinámico , gestión automática de memoria , una biblioteca estándar y un uso estricto de espacios en blanco . [ 14 ] Al igual que otros lenguajes dinámicos , Python se usa frecuentemente como lenguaje de scripting , pero también se utiliza 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 gestionan un gran número de solicitudes o que ofrecen servicios que exigen una alta disponibilidad . Los enfoques de alta disponibilidad para la pila LAMP pueden implicar 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 servidor, así como la distribución de la carga de trabajo entre varios servidores. La agregación de servidores web puede lograrse colocando un balanceador de carga delante de ellos, por ejemplo, utilizando 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 (maestro) y sus copias (esclavos). [ 15 ]
Estas configuraciones de alta disponibilidad también pueden mejorar la disponibilidad de las instancias LAMP al proporcionar diversas formas de redundancia , lo que permite que un cierto número de componentes (servidores separados) experimenten tiempo de inactividad sin interrumpir a los usuarios de los servicios proporcionados en su conjunto. Estas configuraciones redundantes también pueden gestionar las fallas de hardware que resultan en la pérdida de datos en servidores individuales de manera que se evite la pérdida de los datos almacenados colectivamente. Además de una mayor disponibilidad, estas configuraciones LAMP son capaces de proporcionar mejoras casi lineales en el rendimiento para servicios con un número de operaciones de lectura de base de datos internas mucho mayor que el número de operaciones de escritura/actualización. [ 15 ]
Variantes
El modelo LAMP se ha adaptado a otros componentes, aunque generalmente consiste en software libre y de código abierto . Con el creciente uso del arquetipo LAMP, surgieron variaciones y retrónimos para otras combinaciones de sistema operativo, servidor web, base de datos y lenguaje de programación. 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 . Entre las variantes que involucran otros sistemas operativos se encuentra DAMP, que utiliza el sistema operativo Darwin. [ 16 ]
El servidor web o el sistema de gestión de bases de datos también varían. LEMP es una versión donde Apache ha sido reemplazado por el servidor web más ligero Nginx . [ 17 ] Una versión donde MySQL ha sido reemplazado por PostgreSQL se llama LAPP, o a veces, manteniendo el acrónimo original, LAMP (Linux / Apache / Middleware (Perl, PHP, Python, Ruby) / PostgreSQL). [ 18 ]
El paquete LAMP se puede combinar con muchos otros paquetes de software libres y de código abierto, entre los que se incluyen:
- netsniff-ng para pruebas y fortalecimiento de la seguridad
- Snort , un sistema de detección de intrusiones (IDS) y de prevención de intrusiones (IPS).
- Herramienta RRD para diagramas
- Nagios , Collectd o Cacti , para la monitorización.
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 el equilibrio de carga y Ceph y Swift para el almacenamiento distribuido de objetos.
Véase también
- JAMstack
- LYME : una pila de software basada en Erlang.
- MEAN : un conjunto de software JavaScript para crear sitios web y aplicaciones web dinámicas.
- Pila de soluciones
- Sistema de gestión de contenido web
- Instalador de plataforma web
Referencias
- ↑ "LAMP (Linux, Apache, MySQL, PHP)" . SearchEnterpriseLinux . Archivado del original el 28 de noviembre de 2021. Consultado el 15 de diciembre de 2021 .
- ↑ Kunze, Michael (diciembre de 1998). "LAMP: Sistema de publicación web gratuito con soporte para base de datos" . c't . Archivado del original el 3 de febrero de 1999. Recuperado el 15 de junio de 2024 .
- ↑ Kay, Russell (25 de septiembre de 2006). "Cómo: LAMP" . Computerworld . Archivado del original el 11 de julio de 2021. Recuperado el 15 de diciembre de 2021 .
- ↑ "Pila LAMP" . Centro de aprendizaje en la nube de IBM . IBM. Octubre de 2015. Archivado del original el 15 de diciembre de 2021. Consultado el 15 de diciembre de 2021 .
- ↑ "Debian/Ubuntu extienden su dominio en el mercado de servidores web Linux" . W³Techs . Consultado el 16 de diciembre de 2021 .
- ↑ "Principales razones para que los gerentes de producto implementen esta funcionalidad" . MySQL. Archivado del original el 2 de julio de 2014. Consultado el 27 de julio de 2014 .
- ↑ "Sun bloquea MySQL y mira hacia el futuro desarrollo web" . InformationWeek. Archivado del original el 28 de febrero de 2008. Consultado el 27 de julio de 2014 .
- ↑ "Introducción: ¿Qué puede hacer PHP?" . Manual de PHP . Archivado del original el 15 de diciembre de 2021 . Consultado el 16 de diciembre de 2021 .
- ↑ "Licencias de software libre incompatibles con la GPL" . Varias licencias y comentarios sobre ellas . Fundación del software libre. Archivado del original el 16 de diciembre de 2021. Consultado el 16 de diciembre de 2021 .
- ↑ "Acerca de Perl" . perl.org. Archivado del original el 22 de noviembre de 2021. Consultado el 16 de diciembre de 2021 .
Perl es una familia de lenguajes de programación. Perl 6 forma parte de ella, pero es un lenguaje independiente con su propio equipo de desarrollo. Su existencia no afecta significativamente al desarrollo continuo de Perl 5.
- ↑ Wall, Larry ; Tom Christiansen; Jon Orwant (julio de 2000). Programación en Perl, tercera edición . O'Reilly Media . ISBN 0-596-00027-8.
- ↑ Smith, Roderick W. (21 de junio de 2002). Redes Linux avanzadas . Addison-Wesley Professional. pág. 594. ISBN 978-0-201-77423-8.
- ↑ "Tendencias en lenguajes de programación – O'Reilly radar" . Radar.oreilly.com. 2 de agosto de 2006. Archivado del original el 24 de septiembre de 2021. Consultado el 16 de diciembre de 2021 .
- ↑ "Acerca de Python" . Fundación de software Python. Archivado del original el 16 de diciembre de 2021. Consultado el 16 de diciembre de 2021 .
- 1 2 Simic, Dragan; Ristic, Srecko; Obradovic, Slobodan (abril de 2007). "Medición de los niveles de rendimiento alcanzados de las aplicaciones web con base de datos relacional distribuida" (PDF) . Electrónica y energética . Facta Universitatis. pág. 31–43. Archivado (PDF) del original el 7 de octubre de 2021. Recuperado el 16 de diciembre de 2021 .
- ↑ McIntosh, Jason; Toporek, Chuck; Stone, Chris (2003). Mac OS X en pocas palabras . O'Reilly & Associates . págs. 327–333 . ISBN 978-0-596-00370-8.
- ↑ "Pila LEMP (Linux, Nginx, MySQL, PHP)" . lemp.io. Archivado del original el 19 de noviembre de 2021. Consultado el 16 de diciembre de 2021 .
- ↑ "Usuarios destacados" . PostgreSQL. Archivado del original el 22 de enero de 2014. Consultado el 22 de enero de 2014 .
- Software gratuito para servidores web
- Software de Internet para Linux
- María DB
- MySQL
- Perl
- PHP
- Software de desarrollo web