Lampe (Software -Bundle)

Ein hochrangiger Überblick über die Bausteine ​​und die Gesamtsystemumgebung von Lampe

LAMPE (LInux, APache, Mysql, PHP/PERL/Python) ist ein Akronym Bezeichnen eines der häufigsten Software -Stapel Für viele der beliebtesten des Webs des Webs Anwendungen. LAMP bezieht sich jedoch nun auf ein generisches Software -Stapelmodell und seine Komponenten sind weitgehend austauschbar.[1]

Jeder Buchstabe im Akronym steht für einen seiner vier Open Source Bausteine:

Die Komponenten des Lampenstapels sind in der vorhanden Software -Repositories von den meisten Linux -Verteilungen.[2]

Geschichte

Die Akronymlampe wurde von Michael Kunze in der Dezember 1998 -Ausgabe von geprägt Computertechnik, ein deutsches Computermagazin, wie er demonstrierte, dass ein Bündel von Kostenlose und Open-Source-Software "könnte eine praktikable Alternative zu teuren kommerziellen Paketen sein". Seit damals, O'Reilly Media und Mysql Ich habe mich zusammengetan, um das Akronym zu populär zu machen und seine Verwendung zu evangelisieren.[3] Der Begriff und das Konzept wurden populär, weil es eines der ersten Open-Source-Software-Stapel für das Web war,[4] mit ausreichenden Funktionen, um eine Vielzahl von Webrahmen zu hosten, wie z. Joomla, WordPress und Drupal.

Varianten

Das LAMP -Modell wurde an andere Komponenten angepasst, obwohl es typischerweise besteht Kostenlose und Open-Source-Software. Zum Beispiel eine äquivalente Installation am Microsoft Windows Die Familie von Betriebssystemen ist als WAMP bekannt und eine gleichwertige Installation auf Mac OS ist bekannt als MAMP.

Mit der wachsenden Verwendung der archetypischen Lampe, Variationen und Wiederholungen erschien für andere Kombinationen von Betriebssystem, Webserver, Datenbank und Softwaresprache. Zum Beispiel eine äquivalente Installation am Microsoft Windows Die Familie der Betriebssystem ist bekannt als Wamp. Ein alternatives Laufen Iis Anstelle von Apache wird genannt Wimp. Zu den Varianten, an denen andere Betriebssysteme beteiligt sind MAMP (Mac OS), Samp (Solaris), FAMP (Freebsd), IAMP (Ibm i) und Xampp (plattformübergreifend).

Das Webserver- oder Datenbankverwaltungssystem variiert ebenfalls. Lemp ist eine Version, in der Apache durch den leichten Webserver ersetzt wurde Nginx.[5] Eine Version, in der MySQL durch ersetzt wurde PostgreSQL wird als LAPP genannt oder manchmal durch das ursprüngliche Akronym Lampe (Linux / Apache / Middleware (Perl, PHP, Python, Ruby) / PostgreSQL).[6]

Das Lampenpaket kann mit vielen anderen kostenlosen und offenen Softwarepaketen kombiniert werden, darunter:

Als ein weiteres Beispiel die Software, die Wikipedia und andere Wikimedia Foundation Projekte für ihre zugrunde liegende Infrastruktur sind ein maßgeschneiderter Lampenstapel mit Ergänzungen wie z. Linux Virtual Server (LVS) für Lastverteilung und Ceph und Schnell Für verteilte Objektspeicher.

Softwarekomponenten

Ein hochrangiger Überblick über die entscheidenden Komponenten der Lampe (Feuerfuchs dient genau wie ein Browser Beispiel).

Linux

Linux ist ein Unix-artig Computer Betriebssystem versammelt unter dem Modell von Kostenlose und Open-Source-Software Entwicklung und Verteilung. Die meisten Linux -Verteilungen, als Softwaresammlungen, die auf dem basieren Linux Kernel und oft um a PaketverwaltungssystemStellen Sie vollständige Lampen -Setups über ihre Pakete bereit. Laut W3Techs im Oktober 2013 werden 58,5% des Marktanteils des Webservers zwischeneinander geteilt Debian und Ubuntu, während Rhel, Fedora und Centos zusammen teilte 37,3%.[7]

Apache

Die Rolle des Webservers von Lamp wurde traditionell von Apache geliefert und hat seitdem andere Webserver wie z. Nginx.

Das Apache HTTP Server war der beliebteste im öffentlichen Internet. Im Juni 2013 schätzte Netcraft, dass Apache 54,2% aller aktiven diente Websites und 53,3% der Top -Server in allen Domänen.[8] Im Juni 2014 wurde Apache auf 52,27% aller aktiven Websites geschätzt, gefolgt von Nginx mit 14,36%.[9]

Apache wird von einer offenen Gemeinschaft von Entwicklern unter der Schirmherrschaft des Apache Software Foundation. Unter dem Apache -Lizenz, Apache ist Quelloffene Software. Eine Vielzahl von Funktionen wird unterstützt, und viele von ihnen werden als implementiert als zusammengestellt Module die die Kernfunktionalität von Apache erweitern. Diese können von der serverseitigen Programmiersprachenunterstützung bis zur Authentifizierung reichen.

MySQL- und Datenbankalternativen

Mysqls ursprüngliche Rolle als Lampe Relationales Datenbank Management System wurde seitdem abwechselnd von anderen wie vorbereitet PostgreSQL, Mariadb (Eine von der Gemeinschaft entwickelte Gabel von MySQL entwickelt von seinen ursprünglichen Entwicklern) und sogar NoSQL Datenbanken mögen MongoDB.

Mysql ist ein Multithread, Multi-User, Sql Datenbankverwaltungssystem,[10] erworben von Sun Microsystems 2008, was dann von erworben wurde von Oracle Corporation in 2010.[11] Seit seinen frühen Jahren hat das MySQL -Team seine gemacht Quellcode verfügbar unter den Bedingungen der GNU Allgemeine öffentliche Lizenzsowie unter einer Vielzahl von proprietär Vereinbarungen.

PostgreSQL ist auch ein SÄURE-konform Objektrelationsdatenbank Managementsystem entwickelt von der Postgresql Global Development Group.

MongoDB ist ein NoSQL Datenbank, die die traditionellen meidet relationale Datenbank Struktur zugunsten von JSON-ähnliche Dokumente mit dynamischen Schemata (das Format aufrufen BSON), die Integration von Daten in bestimmte Arten von Anwendungen erleichtert und schneller.

PHP und Alternativen

PHPs Rolle als Anwendungsprogrammiersprache der Lampe wurde auch von anderen Sprachen wie gezeigt, wie z. Perl und Python.

Php ist ein serverseitiges Skripting Sprache für Web Entwicklung aber auch als als verwendet Allzweckprogrammiersprache. PHP -Code ist interpretiert über ein Webserver über ein PHP -Prozessormodul, das die resultierende Webseite generiert. PHP -Befehle können optional direkt in eine eingebettet werden Html Quelldokument, anstatt eine externe Datei aufzurufen, um Daten zu verarbeiten. Es hat sich auch entwickelt, um a zu beinhalten Befehlszeilenschnittstelle Fähigkeit und kann in Standalone verwendet werden Grafische Anwendungen.[12] PHP ist gratis Software veröffentlicht unter den Bedingungen von PHP -Lizenz, was unvereinbar mit dem ist GNU Allgemeine öffentliche Lizenz (GPL) Aufgrund der Beschränkungen PHP -Lizenzplätze zur Verwendung des Laufzeits Php.[13]

Perl ist eine Familie von hohes Level, allgemein, interpretiert, Dynamische Programmiersprachen. Die Sprachen in dieser Familie umfassen Perl 5 und Raku.[14] Sie bieten fortgeschrittene Textverarbeitungsanlagen ohne die willkürlichen datenlangen Grenzen vieler Zeitgenössisch UNIX -Befehlszeilenwerkzeuge,[15] Erleichterung der Manipulation von Textdateien. Perl 5 erlangte Ende der neunziger Jahre als eine weit verbreitete Popularität als CGI Scripting Sprache für das Web, teilweise aufgrund seiner Parsing Fähigkeiten.[16]

Python ist ein weit verbreiteter allgemeiner purpose, hoher Ebene, interpretiert, Programmiersprache.[17] Python unterstützt mehrere Programmierparadigmen, einschließlich objektorientierter, Imperativ, funktional und prozedural Paradigmen. Es zeigt a dynamischer Typ System, automatisch Speicherverwaltung, a Standardbibliothekund strenge Verwendung von Whitespace.[18] Wie andere Dynamische Sprachen, Python wird oft als verwendet Skriptsprache, wird aber auch in einer Vielzahl von nicht skriptierenden Kontexten verwendet.

Hohe Verfügbarkeit und Lastausgleich

Für Websites, die eine große Anzahl von Anfragen erfüllen, sind spezifische Ansätze erforderlich oder Dienstleistungen anbieten, die hoch erfordern Betriebszeit. Hohe Verfügbarkeit Ansätze für den Lampenstapel können mehrere Web- und Datenbankserver umfassen, kombiniert mit zusätzlichen Komponenten, die eine logische Aggregation von Ressourcen durchführen, die von jedem der Server bereitgestellt werden, sowie die Verteilung der Arbeitsbelastung über mehrere Server hinweg. Die Aggregation von Webservern kann durch Platzierung a bereitgestellt werden Lastenausgleicher vor ihnen, zum Beispiel mit Verwendung Linux Virtual Server (ICH GEGEN). Für die Aggregation von Datenbankservern bietet MySQL interne Reproduzieren Mechanismen, die a umsetzen Master/Sklave Beziehung zwischen der ursprünglichen Datenbank (Master) und ihren Kopien (Sklaven).[19]

Solche Hochverfügbarkeits-Setups können auch die verbessern Verfügbarkeit von Lampeninstanzen durch Bereitstellung verschiedener Formen von RedundanzErmöglicht es einer bestimmten Anzahl von Komponenten (getrennte Server) zu erleben Ausfallzeit ohne die Benutzer von Diensten als Ganzes zu unterbrechen. Solche redundanten Setups können auch Hardwarefehler verarbeiten, was dazu führt Datenverlust auf einzelnen Servern auf eine Weise, die verhindert, dass kollektiv gespeicherte Daten tatsächlich verloren gehen. Neben der höheren Verfügbarkeit können solche Lampenaufbauten nahezu lineare Leistungsverbesserungen für Dienste bieten, da die Anzahl der internen Datenbankvorgänge viel höher ist als die Anzahl der Schreib-/Aktualisierungsvorgänge.[19]

Siehe auch

Verweise

  1. ^ "Lampe (Linux, Apache, MySQL, Php)". SearchenterPriselinux. Archiviert vom Original am 28. November 2021. Abgerufen 15. Dezember 2021.
  2. ^ Wikimedia -Server - Meta. meta.wikimedia.org. 22. April 2013. Archiviert vom Original am 10. Dezember 2021. Abgerufen 15. Dezember 2021.
  3. ^ Kay, Russell (25. September 2006). "Wie zu: Lampe". Computerwelt. Archiviert vom Original am 11. September 2021. Abgerufen 15. Dezember 2021.
  4. ^ "Lampenstapel". IBM Cloud Learn Hub. IBM. Archiviert vom Original am 15. Dezember 2021. Abgerufen 15. Dezember 2021.
  5. ^ "Lemp Stack (Linux, Nginx, MySQL, PHP)". lemp.io. Archiviert vom Original am 19. November 2021. Abgerufen 16. Dezember 2021.
  6. ^ "Vorgestellte Benutzer". PostgreSQL. Archiviert von das Original am 22. Januar 2014. Abgerufen 22. Januar 2014.
  7. ^ "Debian/Ubuntu erweitert die Dominanz im Linux Web Server -Markt". W³techs. Abgerufen 16. Dezember 2021.{{}}: CS1 Wartung: URL-Status (Link)
  8. ^ "Juni 2013 Web Server Survey". Netcraft. Archiviert vom Original am 6. März 2021. Abgerufen 16. Dezember 2021.
  9. ^ "Juni 2014 Web Server Survey". Netcraft. Archiviert vom Original am 21. August 2021. Abgerufen 16. Dezember 2021.
  10. ^ "Top -Gründe für Produktmanager zum Einbetten". Mysql. Archiviert von das Original am 2. Juli 2014. Abgerufen 27. Juli 2014.
  11. ^ "Sun sperrt MySQL, sieht zukünftige Webentwicklung aus". Informationswoche. Archiviert von das Original am 28. Februar 2008. Abgerufen 27. Juli 2014.
  12. ^ "Einführung: Was kann PHP tun?". PHP -Handbuch. Archiviert vom Original am 15. Dezember 2021. Abgerufen 16. Dezember 2021.
  13. ^ "GPL-inkompatible, kostenlose Softwarelizenzen". Verschiedene Lizenzen und Kommentare dazu. Kostenlose Software -Stiftung. Archiviert von das Original am 16. Dezember 2021. Abgerufen 16. Dezember 2021.
  14. ^ "Über Perl". Perl.org. Archiviert von das Original am 22. November 2021. Abgerufen 16. Dezember 2021. "Perl" ist eine Sprachenfamilie, "Perl 6" ist Teil der Familie, aber es ist eine separate Sprache, die ein eigenes Entwicklungsteam hat. Seine Existenz hat keinen signifikanten Einfluss auf die kontinuierliche Entwicklung von "Perl 5".
  15. ^ Wand, Larry; Tom Christiansen; Jon Orwant (Juli 2000). Programmierung Perl, dritte Ausgabe. O'Reilly Media. ISBN 0-596-00027-8.
  16. ^ Smith, Roderick W. (21. Juni 2002). Erweitertes Linux -Netzwerk. Addison-Wesley Professional. p. 594. ISBN 978-0-201-77423-8.
  17. ^ "Programmiersprache Trends - O'Reilly Radar". Radar.orilly.com. 2. August 2006. Archiviert vom Original am 24. September 2021. Abgerufen 16. Dezember 2021.
  18. ^ "Über Python". Python Software Foundation. Archiviert von das Original am 16. Dezember 2021. Abgerufen 16. Dezember 2021.
  19. ^ a b Simic, Dragan; Ristic, Srecko; Obradovic, Slobodan (April 2007). "Messung der erreichten Leistungsniveaus der Webanwendungen mit verteilter relationaler Datenbank" (PDF). Elektronik und Energetik. Fakta Universitatis. p. 31–43. Archiviert (PDF) Aus dem Original am 7. Oktober 2021. Abgerufen 16. Dezember 2021.

Externe Links