Zum Inhalt springen

LAMP (Softwarepaket)

aus Wikipedia, der freien Enzyklopädie

LAMP ist ein Akronym für den kombinierten Einsatz von Computerprogrammen auf Basis von Linux, um dynamische Webseiten zur Verfügung zu stellen. Dabei stehen die einzelnen Buchstaben des Akronyms für die verwendeten Komponenten:

Betriebssystem Linux und Windows
Webserver Apache
Datenbank MySQL
Programmiersprache PHP

Diese Programmkombination definiert im Sinne einer Software-Distribution eine Infrastruktur, in deren Rahmen dynamische Webseiten und -anwendungen entwickelt und bereitgestellt werden können.

Obwohl die Programme ursprünglich nicht darauf ausgelegt waren, miteinander zusammenzuarbeiten, wurde das Bündel schnell erfolgreich, da es einfach verfügbar und preiswert in der Beschaffung war und ist. Mit der Zeit hat sich eine Vielzahl von Community-Projekten rund um LAMP entwickelt, die Dokumentationen und einfache Installationsroutinen für LAMP-Systeme erstellen.

Der Name LAMP wurde vom Heise-Autor Michael Kunze geprägt, der in einem Artikel in der c’t 1998 aufzeigte, dass die LAMP-Software-Kombination proprietären Software-Lösungen gegenüber gleichermaßen leistungsfähig ist.<ref>Michael Kunze: Laßt es leuchten. In: c’t Nr. 12, 19. Juni 1998, S. 230.</ref>

Komponenten

LAMP-Stack-Komponenten
LAMP-Stack-Komponenten

Der ursprüngliche LAMP-Stack besteht aus den vier Komponenten Linux (Betriebssystem), Apache (Webserver), MySQL (Datenbanksystem) und PHP (serverseitiger Skript-Interpreter). Diese Komponenten sind wiederverwendbar und in unterschiedlichem Umfeld und Zusammensetzung nutzbar.

Im Laufe der Zeit ist neue Software geschrieben und ebenfalls unter einer freien Lizenz verfügbar gemacht worden, z. B. diverse Webserver. Diese Software kann die traditionellen Komponenten ersetzen, werden dann aber anders bezeichnet (siehe unter Varianten). Auch sind zusätzliche Komponenten üblich, wie zum Beispiel Squid, Snort, Nagios oder das RRDtool um Statistiken zu erstellen.

Die einzige Spezialisierung besteht in den Softwareeinheiten, die den Skriptinterpreter mit dem Webserver einerseits und mit dem Datenbanksystem andererseits verbinden, hier libapache2-mod-php5 und php5-mysql genannt nach den Paketnamen in Ubuntusystemen.

Eine HTTP-Anfrage aus dem Web erreicht den Computer über die Netzwerkschnittstelle in Form von einzelnen Datenpaketen. Das Betriebssystem Linux setzt die Pakete zusammen und ordnet über die Portnummer im TCP-Header den zusammengesetzten Datenstrom dem Apache-Webserver zu. Die HTTP-Anfrage enthält einen Uniform Resource Locator, anhand derer der Webserver entscheiden kann, welche Datei aus dem Dateisystem zu holen ist, beispielsweise ein HTML-Dokument oder eine Bilddatei. Die Datei wird als HTTP-Antwort zurückgesendet. Falls es sich bei der Datei um ein PHP-Skript handelt, ruft der Webserver den PHP-Interpreter auf und gibt die Ausgabe des ausgeführten Skripts als HTTP-Antwort zurück. Im PHP-Skript lassen sich prinzipiell beliebige Anweisungen ausführen und beliebige Daten zurückgeben. Im LAMP-Umfeld ist es üblich, im Skript SQL-Datenbankabfragen durchzuführen und aufbereitete Datenbankinhalte beispielsweise im HTML- oder XML-Format zurückzugeben. Die HTTP-Antwort wird über das Betriebssystem und die Netzwerkschnittstelle an den Anfragenden zurückgesendet.

Varianten

Die einzelnen Komponenten des LAMP-Systems können durch ähnliche Komponenten ersetzt werden. So kann die Distribution zum Beispiel auch auf anderen Betriebssystemen wie Windows, macOS, Solaris oder anderen aufbauen. Die entsprechenden Distributionen heißen dann WAMP, MAMP<ref name="mamp">Im Buch Mac OS X in a Nutshell von O’Reilly, ISBN 978-0-596-00370-8 wird MAMP beschrieben.</ref> oder entsprechend. Wird MySQL durch PostgreSQL ersetzt, nennt man das Bundle LAPP. Bei Verwendung des Webservers nginx statt Apache ändert sich die Bezeichnung zu LEMP. Seit der Entwicklung von MariaDB kann das „M“ auch für dieses Datenbanksystem stehen. Häufig wird auch der erste Buchstabe durch ein „X“ ersetzt, um Beschreibungen betriebssystemunabhängig zu machen. Alternativen für ein Bundle können z. B. sein:

Komponente LAMP-Variante Beispiele für Komponenten-Alternativen
Betriebssystem Linux Windows, Solaris
Webserver Apache nginx, Node.js (evtl. ergänzt um Apache oder nginx)
Datenbank MySQL PostgreSQL, CouchDB, MariaDB
Programmiersprache PHP Perl, Ruby, JavaScript, und praktisch alle anderen Interpreter- und Compiler-Sprachen, ggfs. über CGI, FastCGI

Beispiel

Datei:PHP funktionsweise.svg
Darstellung der Funktionsweise von PHP

Die Wiki-Software MediaWiki, mit der auch Wikipedia betrieben wird, ist ein Beispiel für ein Anwendungsprogramm, das auf einer LAMP-Umgebung aufbaut. Der Server, der die dynamischen Webseiten von Wikipedia zur Verfügung stellt, nutzt PHP-Skripte, um Daten aus einer MySQL-Datenbank zu generieren und mit Apache über das World Wide Web bereitzustellen. Durch die „Dynamik“ ist es möglich, Seiteninhalte zu verändern – Änderungen werden dann in die MySQL-Datenbank zurückgeschrieben. Alle verwendeten Programmkomponenten sind dabei Open Source. Bei Wikipedia kommt seit April 2013 MariaDB statt MySQL zum Einsatz.

Andere Software-Kombinationen

          | )
          | {{#if:{{#ifeq:en|de||{{#if:en|1}}}}| ; 
              | )}}}}}}{{#if:| {{{titelerg}}}{{#invoke:Vorlage:Internetquelle|Endpunkt|titel={{{titelerg}}}}}}}}}}}{{#if:http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and%7C{{#if:{{#invoke:URLutil%7CisResourceURL%7C1=http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and}}%7C%7C}}}}{{#if:The MEAN Stack: MongoDB, ExpressJS, Angular and Node.js|{{#if:{{#invoke:WLink|isValidLinktext|1=The MEAN Stack: MongoDB, ExpressJS, Angular and Node.js|lines=0}}||}}}}{{#if: The MongoDB Blog| In: {{#invoke:Vorlage:Internetquelle|TitelFormat|titel=The MongoDB Blog}}}}{{#if: | {{{hrsg}}}{{#if: 2013-04-30https://web.archive.org/web/20130503020807/http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and%7C,%7C{{#if: 2014-02-03 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: 2013-04-30| {{#if:{{#invoke:DateTime|format|2013-04-30|noerror=1}}
            |{{#invoke:DateTime|format|2013-04-30|T._Monat JJJJ}}
            |{{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, datum=2013-04-30|class=Zitationswartung}} }}{{#if: https://web.archive.org/web/20130503020807/http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and%7C,%7C{{#if: 2014-02-03 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: | S. {{{seiten}}}{{#if: https://web.archive.org/web/20130503020807/http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and%7C,%7C{{#if: 2014-02-03 | {{#if:{{#invoke:TemplUtl|faculty|}}|;|,}}}}}}}}{{#if: https://web.archive.org/web/20130503020807/http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and{{#invoke:TemplUtl%7Cfaculty%7Cja}}%7C+{{#if:2013-04-30%7C{{#if:https://web.archive.org/web/20130503020807/http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and%7Carchiviert%7Cehemals}}%7C{{#if:https://web.archive.org/web/20130503020807/http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and%7CArchiviert%7CEhemals}}}}+{{#if:https://web.archive.org/web/20130503020807/http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and%7Cvom%7Cim}}+Vorlage:Referrer{{#if:{{#invoke:TemplUtl|faculty|ja}}| (nicht mehr online verfügbar)}}{{#if: 2013-05-03| am {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}|2013-05-03{{#if:27596||(?)}}}}}}{{#if: 2014-02-03|;}}}}{{#if: 2014-02-03| {{#if:2013-04-30https://web.archive.org/web/20130503020807/http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and{{#invoke:TemplUtl%7Cfaculty%7Cja}}%7Cabgerufen%7CAbgerufen}} {{#switch: {{#invoke:Str|len| {{#invoke:DateTime|format| 2014-02-03 |ISO|noerror=1}} }}
       |4=im Jahr
       |7=im
       |10=am
       |#default={{#invoke:TemplUtl|failure|1=Fehler bei Vorlage:Internetquelle, abruf=2014-02-03|class=Zitationswartung}} }} {{#invoke:DateTime|format|2014-02-03|T._Monat JJJJ}}
    | {{#invoke:TemplUtl|failure|1=Vorlage:Internetquelle | abruf=2026-MM-TT ist Pflichtparameter}} }}{{#if:{{#ifeq:en|de||{{#if:en|1}}}}|{{#if:jaThe MongoDB Blog2013-04-30https://web.archive.org/web/20130503020807/http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and{{#if: 2014-02-03 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}}}}
       |  (
       | {{#if: | |  (}}
       }}{{#ifeq:{{#if:en|en|de}}|de||
          {{#invoke:Multilingual|format|en|slang=!|split=[%s,]+|shift=m|separator=, }}}}{{#if: |{{#ifeq:{{#if:en|en|de}}|de||, }}{{{kommentar}}}}})}}{{#if: 2013-04-30https://web.archive.org/web/20130503020807/http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and{{#if: 2014-02-03 | {{#if:{{#invoke:TemplUtl|faculty|}}||1}} }}en|{{#if: |: {{
 #if: 
 | {{
     #ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | Vorlage:Str trim
     | {{#invoke:Vorlage:lang|flat}}
     }}
 | {{#ifeq: {{#if:{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|{{#if: {{#invoke:templutl|faculty|}}|de-ch|de}}|de}} | de
     | „Vorlage:Str trim“
     | {{#invoke:Text|quote
         |1={{#if: 
              | {{#invoke:Vorlage:lang|flat}}
              | {{#invoke:Vorlage:lang|flat}} }}
         |2={{#if: {{#invoke:TemplUtl|faculty|}}|de-CH|de}}
         |3=1}} }}

}}{{#if:

   |  (<templatestyles src="Person/styles.css" />{{#if:  | :  }}{{#if:  | , deutsch: „“ }})
   | {{#if: 
       |  ({{#if:  | , deutsch: „“ }})
       | {{#if:  |  (deutsch: „“) }}
 }}

}}{{#if: {{{zitat}}}

   | {{#if: 
       | {{#if: {{{zitat}}}
           | Vorlage:": Text= und 1= gleichzeitig, bzw. Pipe zu viel }} }}
   | Vorlage:": Text= fehlt }}{{#if:  | {{#if: {{#invoke:Text|unstrip|{{{ref}}}}}
             | Vorlage:": Ungültiger Wert: ref=
             | {{{ref}}} }}

}}|.{{#if:{{#invoke:TemplUtl|faculty|ja}}|{{#if:https://web.archive.org/web/20130503020807/http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and%7C%7C{{#ifeq: ja | JaKeinHinweis |{{#switch:

   |0|=Vorlage:Toter Link/Core{{#if: http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and
       | {{#if:  | [1] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 
           | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and
      | {{#if:{{#invoke:URLutil|isWebURL|http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 
            | {{#if: deadurlausgeblendet | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and
       | {{#if:{{#invoke:URLutil|isWebURL|http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: deadurl
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and }}|{{#switch: 
   |0|=Vorlage:Toter Link/Core{{#if: http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and
       | {{#if:  | [2] }} (Seite {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. Suche im Internet Archive ){{#if: 2026-02-11 02:50:11 InternetArchiveBot
           | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}
       |   (Seite {{#switch:|no|0|=|#default=dauerhaft }}nicht mehr abrufbar{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}.)
     }}{{#switch: 
         |no|0|=
         |#default={{#if:  ||  }}
    }}{{#invoke:TemplatePar|check
         |opt      = inline= url= text= datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
    }}{{#if: http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and
      | {{#if:{{#invoke:URLutil|isWebURL|http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and}}
          || {{#if:  ||  }} 
        }}
      | {{#if: 
           | {{#if:  ||  }}
           | {{#if:  ||  }}
        }}
    }}{{#if: 
       | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
         }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}|#default= https://wiki-de.moshellshocker.dns64.de/index.php?title=Wikipedia:Defekte_Weblinks&dwl=http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and Die nachstehende Seite ist {{#switch:|no|0|=|dauerhaft }}nicht mehr abrufbar]{{#if:  | , festgestellt im {{#invoke:DateTime|format||F Y}} }}. (Suche im Internet Archive. )  {{#if: 2026-02-11 02:50:11 InternetArchiveBot
            | {{#if:  | | Vorlage:Toter Link/archivebot }}
         }}Vorlage:Toter Link/Core{{#switch: 
          |no|0|=
          |#default= {{#if:  ||  }}
        }}{{#invoke:TemplatePar|check
         |all      = inline= url=
         |opt      = datum= date= archivebot= bot= botlauf= fix-attempted= checked=
         |cat      = Wikipedia:Vorlagenfehler/Vorlage:Toter Link
         |errNS    = 0
         |template = Vorlage:Toter Link
         |format   = 
         |preview  = 1
       }}{{#if: http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and
       | {{#if:{{#invoke:URLutil|isWebURL|http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and}}
          || {{#if:  ||  }} 
        }}
    }}{{#if: 
         | {{#if:{{#invoke:DateTime|format||F Y|noerror=1}}
             || {{#if:  ||  }} 
           }}
    }}{{#switch: 
         |checked|deadurl|= 
         |#default=  {{#if:  ||  }}
    }}[http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and }} }}}}}}}}}}{{#if:2026-02-11 02:50:11 InternetArchiveBot|
        {{#invoke:Vorlage:Internetquelle|archivBot|stamp=2026-02-11 02:50:11 InternetArchiveBot|text={{#if:https://web.archive.org/web/20130503020807/http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and%7CVorlage:Webarchiv/archiv-bot}}

}}}}{{#invoke:TemplatePar|check |all= url= titel= |opt= autor= hrsg= format= sprache= titelerg= werk= seiten= datum= abruf= zugriff= abruf-verborgen= archiv-url= archiv-datum= archiv-bot= kommentar= zitat= AT= CH= offline= |cat= {{#ifeq: 0 | 0 | Wikipedia:Vorlagenfehler/Vorlage:Internetquelle}} |template= Vorlage:Internetquelle |format=0 |preview=1 }}</ref>

Weblinks

Einzelnachweise

<references />