LAMP (paquete de software)

De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

Una descripción general de alto nivel de los componentes básicos de LAMP y el entorno general del sistema, que se muestra aquí en combinación con los cachés web utilizados opcionalmente .

LAMP ( L inux, A pache, M ySQL, P HP / P erl / P ython) es un ejemplo muy común de una pila de servicios web , denominada como un acrónimo de los nombres de sus cuatro componentes originales de código abierto : el sistema operativo Linux. sistema , el servidor HTTP Apache , el sistema de gestión de bases de datos relacionales MySQL (RDBMS) y el lenguaje de programación PHP . Los componentes LAMP son en gran parte intercambiables y no se limitan a la selección original. Como conjunto de soluciones, LAMP es adecuado para crear sitios web y aplicaciones web dinámicos . [1]

Desde su creación, el modelo LAMP se ha adaptado a otros componentes, aunque normalmente consiste en software gratuito y de código abierto . Por ejemplo, una instalación equivalente en la familia de sistemas operativos Microsoft Windows se conoce como WAMP y una instalación equivalente en macOS se conoce como MAMP .

Resumen [ editar ]

Originalmente popularizado a partir de la frase "Linux, Apache, MySQL y PHP", el acrónimo "LAMP" ahora se refiere a un modelo de pila de software genérico. La modularidad de una pila LAMP puede variar, pero esta combinación de software en particular se ha vuelto popular porque es suficiente para alojar una amplia variedad de marcos de sitios web, como Joomla , WordPress y Drupal . Los componentes de la pila LAMP están presentes en los repositorios de software de la mayoría de las distribuciones de Linux . [2]

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

  • netsniff-ng para pruebas de seguridad y refuerzo
  • Snort , un sistema de detección de intrusiones (IDS) y prevención de intrusiones (IPS)
  • RRDtool para diagramas
  • Nagios , Collectd o Cacti , para seguimiento.

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 adiciones como Linux Virtual Server (LVS) para balanceo de carga y Ceph y Swift para almacenamiento de objetos distribuidos. [ cita requerida ]

Variantes [ editar ]

Con el uso creciente 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 ( iSeries ) y XAMPP (multiplataforma).

El servidor web o el sistema de administración de bases de datos también varían. LEMP es una versión en la que Apache ha sido reemplazado por el servidor web más ligero Nginx . [3] Una versión en la que MySQL ha sido reemplazada por PostgreSQL se llama LAPP, o algunas veces manteniendo el acrónimo original, LAMP (Linux / Apache / Middleware (Perl, PHP, Python, Ruby) / PostgreSQL). [4]

Componentes de software [ editar ]

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

Linux [ editar ]

Linux es un sistema operativo de computadora 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 de Linux , como colecciones de software basadas en el kernel de 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%. [5]

Apache [ editar ]

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

El servidor HTTP Apache ha sido el servidor web más popular en la Internet pública. En junio de 2013, Netcraft estimó que Apache sirvió al 54,2% de todos los sitios web activos y al 53,3% de los principales servidores en todos los dominios. [6] En junio de 2014, se estimó que Apache daba servicio al 52,27% de todos los sitios web activos, seguido de Nginx con un 14,36%. [7]

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

MySQL y alternativas [ editar ]

Desde entonces, la función original de MySQL como sistema de gestión de bases de datos relacionales (RDBMS) de LAMP ha sido aprovisionada alternativamente por otros RDBMS como MariaDB o PostgreSQL, o incluso bases de datos NoSQL como MongoDB.

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

MariaDB es una bifurcación de MySQL desarrollada por la comunidad , dirigida por sus desarrolladores originales.

PostgreSQL es también un sistema de administración de bases de datos relacionales de objetos que cumple con ACID desarrollado por PostgreSQL Global Development Group.

MongoDB es una base de datos NoSQL a escala web que evita la estructura tradicional de base de datos relacional basada en tablas en favor de documentos similares a 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 [ editar ]

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 scripting 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 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 un software gratuito 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 dinámicos interpretados, de alto nivel y de propósito general . Los idiomas de esta familia incluyen Perl 5 y Raku . [12] Proporcionan funciones avanzadas de procesamiento de texto sin los límites de longitud de datos arbitrarios de muchas herramientas de línea de comandos de Unix contemporáneas , [13] 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 . [14]

Python es un lenguaje de programación interpretado , de uso general y de alto nivel, 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 tipo 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 utiliza a menudo como lenguaje de programación., pero también se usa en una amplia gama de contextos sin secuencias de comandos.

Alta disponibilidad y equilibrio de carga [ editar ]

Se requieren soluciones específicas para sitios web que atienden un gran número 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 equilibrador de carga frente a ellos, por ejemplo, utilizando Linux Virtual Server (LVS). Para la agregación de servidores de bases de datos, MySQL proporciona replicación internamecanismos que implementan una relación maestro / esclavo entre la base de datos original (maestro) y sus copias (esclavos). [17]

Tales 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 tiempo de inactividad sin interrumpir a los usuarios de los servicios proporcionados en su conjunto. Tales configuraciones redundantes también pueden manejar fallas de hardware que resultan en la pérdida de datos en servidores individuales de una manera que evita que los datos almacenados colectivamente se pierdan realmente. Además de una mayor disponibilidad, tales configuraciones LAMP son capaces de proporcionar mejoras casi lineales en el rendimiento de los servicios que tienen un número de operaciones de lectura de base de datos internas mucho mayor que el número de operaciones de escritura / actualización. [17]

Ver también [ editar ]

  • Kit de grabación arqueológica
  • Sistema de gestión de contenidos
  • Página web dinámica
  • Lista de paquetes Apache – MySQL – PHP
  • Lista de paquetes Nginx – MySQL – PHP
  • LYME (paquete de software)  : una pila de soluciones basada en Erlang
  • MEAN (paquete de software)  : una pila de software JavaScript para crear sitios web y aplicaciones web dinámicos
  • Sistema de gestión de contenido web
  • Instalador de plataforma web

Referencias [ editar ]

  1. ^ "LÁMPARA (Linux, Apache, MySQL, PHP)" . SearchEnterpriseLinux . Consultado el 28 de agosto de 2014 .
  2. ^ "Servidores de Wikimedia - Meta" . meta.wikimedia.org . Consultado el 17 de febrero de 2018 .
  3. ^ "Pila LEMP (Linux, Nginx, MySQL, PHP)" . lemp.io . Consultado el 15 de octubre de 2014 .
  4. ^ "Usuarios destacados" . PostgreSQL. Archivado desde el original el 22 de enero de 2014 . Consultado el 22 de enero de 2014 .
  5. ^ "Debian / Ubuntu extienden el dominio en el mercado de servidores web Linux" . W³Techs. 21 de octubre de 2013.
  6. ^ "Encuesta de servidor Web de junio de 2013" . Netcraft . Consultado el 27 de junio de 2014 .
  7. ^ "Encuesta de servidor Web de junio de 2014" . Netcraft . Consultado el 27 de junio de 2014 .
  8. ^ "Razones principales para que los gerentes de productos integren" . MySQL. Archivado desde el original el 2 de julio de 2014 . Consultado el 27 de julio de 2014 .
  9. ^ "Sun bloquea MySQL, busca 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 . Consultado el 5 de marzo de 2009 .
  11. ^ "Licencias de software libre incompatibles con la GPL" . Varias licencias y comentarios sobre ellas . Fundación de Software Libre . Consultado el 11 de marzo de 2012 .
  12. ^ "Acerca de Perl" . perl.org . Consultado el 20 de abril de 2013 . "Perl" es una familia de lenguajes, "Perl 6" es parte de la familia, pero es un lenguaje separado 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 y Jon Orwant (julio de 2000). Programación de Perl, tercera edición . O'Reilly Media . ISBN 0-596-00027-8.CS1 maint: multiple names: authors list (link)
  14. ^ Smith, Roderick W. (21 de junio de 2002). Redes Linux avanzadas . Addison-Wesley Professional. pag. 594. ISBN 978-0-201-77423-8.
  15. ^ "Tendencias del lenguaje de programación - O'Reilly Radar" . Radar.oreilly.com. 2 de agosto de 2006 . Consultado el 17 de julio de 2013 .
  16. ^ "Acerca de Python" . Fundación de software Python . Consultado el 24 de abril de 2012 .
  17. ^ a b 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. pag. 31–43 . Consultado el 30 de enero de 2014 .

Enlaces externos [ editar ]

  • Instalar un servidor LAMP en Ubuntu Linux
  • Instale un servidor LAMP en Debian GNU / Linux
  • Instale un servidor LAMP en SUSE Linux
  • Instale un servidor LAMP en Amazon AWS
  • Instale un servidor LAMP en CentOS 5.x.