LAMP: Unterschied zwischen den Versionen

Aus Foxwiki
 
(37 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' - Kurzbeschreibung
'''LAMP''' ('''L'''inux, '''A'''pache, '''M'''ySQL, '''P'''HP) - Plattform für [[dynamische Webseite]]n
 
== Beschreibung ==
== Beschreibung ==
'''LAMP''' ist ein [[Akronym]] für den kombinierten Einsatz von Programmen auf Basis von [[Linux]], um [[dynamische Webseite]]n zur Verfügung zu stellen. Dabei stehen die einzelnen Buchstaben des Akronyms für die verwendeten Komponenten:
[[Datei:lamp.png|mini|300px]]
'''LAMP''' ist eine Abkürzung für den Einsatz von Programmen auf Basis von [[Linux]], um [[dynamische Webseite]]n zur Verfügung zu stellen


{| class="wikitable float"
Dabei stehen die einzelnen Buchstaben des Akronyms für die verwendeten Komponenten
! [[Betriebssystem]]
{| class="wikitable options"
| [[Linux]] und Windows
|-
| [[Betriebssystem]] || [[Linux]]
|-
|-
! [[Webserver]]
| [[Webserver]] || [[Apache HTTP Server|Apache]]
| [[Apache HTTP Server|Apache]]
|-
|-
! [[Datenbank]]
| [[Datenbank]] || [[MySQL]]
| [[MySQL]]
|-
|-
! [[Programmiersprache]]
| [[Programmiersprache]] || [[PHP]], [[Perl]], [[Python]]
| [[PHP]]
|}
|}


Diese Programmkombination definiert im Sinne einer [[Distribution (Software)|Software-Distribution]] eine Infrastruktur, in deren Rahmen dynamische Webseiten und -anwendungen entwickelt und bereitgestellt werden können.
Diese Programmkombination definiert im Sinne einer [[Distribution (Software)|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.
== Entwicklung ==
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 [[Verlag Heinz Heise|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: ''[https://www.heise.de/select/ct/archiv/1998/12/seite-230 Laßt es leuchten.]'' In: [[c’t]] Nr.&nbsp;12, 19. Juni 1998, S.&nbsp;230.</ref>
Der Name LAMP wurde vom [[Verlag Heinz Heise|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


== Komponenten ==
== Komponenten ==
[[Datei:LAMP stack components.svg|500px|rechts|LAMP Stack Komponenten]]
[[Datei:LAMP stack components.svg|600px|rechts|LAMP Stack Komponenten]]
Der ursprüngliche LAMP-Stack besteht aus den vier [[Komponente (Software)|Komponenten]] [[Linux]] (Betriebssystem), [[Apache HTTP Server|Apache]] (Webserver), [[MySQL]] ([[Datenbank]]system) und [[PHP]] (serverseitiger [[Skriptsprache|Skript]]-[[Interpreter]]). Diese Komponenten sind wiederverwendbar und in unterschiedlichem Umfeld und Zusammensetzung nutzbar.
Der ursprüngliche LAMP-Stack besteht aus den vier [[Komponente (Software)|Komponenten]] [[Linux]] (Betriebssystem), [[Apache HTTP Server|Apache]] (Webserver), [[MySQL]] ([[Datenbank]]system) und [[PHP]] (serverseitiger [[Skriptsprache|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.&nbsp;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.
Im Laufe der Zeit ist neue Software geschrieben und ebenfalls unter einer freien Lizenz verfügbar gemacht worden, z.&nbsp;B.&nbsp;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 <code>libapache2-mod-php5</code> und <code>php5-mysql</code> genannt nach den Paketnamen in [[Ubuntu (Betriebssystem)|Ubuntu]]systemen.
Die einzige Spezialisierung besteht in den Softwareeinheiten, die den Skriptinterpreter mit dem Webserver einerseits und mit dem Datenbanksystem andererseits verbinden, hier <code>libapache2-mod-php5</code> und <code>php5-mysql</code> genannt nach den Paketnamen in [[Ubuntu (Betriebssystem)|Ubuntu]]systemen


Eine [[Abfragesprache|Anfrage]] aus dem Web erreicht zuerst die [[Netzwerkkarte]]. Das [[Betriebssystem]] stellt fest, welches Programm zur Verarbeitung vorgesehen ist. Das geschieht anhand der [[Port (Protokoll)|Portnummer]], die explizit oder implizit in der Anfrage enthalten ist. Linux leitet die Anfrage an den Apache-Server weiter. Die Anfrage enthält eine [[Adresse]], anhand derer der [[Webserver]] entscheiden kann, welche [[Datei]] aus dem [[Dateisystem]] zu holen ist. Ist das eine [[Hypertext Markup Language|HTML]]-Datei, so gehören in den meisten Fällen weitere Dateien dazu, etwa Bilder im [[JPEG]]-Format. Ist in der Datei gekennzeichnet, dass ein Skript auszuführen ist, so ruft der Webserver den entsprechenden Skriptinterpreter auf, hier PHP. Im Skript lassen sich prinzipiell beliebige Anweisungen ausführen, im Umfeld dynamisch angepasster Webseiten werden aber häufig Datenbankinhalte aufbereitet. Dazu ruft das Skript das Datenbanksystem auf.
Eine [[Abfragesprache|Anfrage]] aus dem Web erreicht zuerst die [[Netzwerkkarte]]
* Das [[Betriebssystem]] stellt fest, welches Programm zur Verarbeitung vorgesehen ist
* Das geschieht anhand der [[Port (Protokoll)|Portnummer]], die explizit oder implizit in der Anfrage enthalten ist
* Linux leitet die Anfrage an den Apache-Server weiter
* Die Anfrage enthält eine [[Adresse]], anhand derer der [[Webserver]] entscheiden kann, welche [[Datei]] aus dem [[Dateisystem]] zu holen ist
* Ist das eine [[Hypertext Markup Language|HTML]]-Datei, so gehören in den meisten Fällen weitere Dateien dazu, etwa Bilder im [[JPEG]]-Format
* Ist in der Datei gekennzeichnet, dass ein Skript auszuführen ist, so ruft der Webserver den entsprechenden Skriptinterpreter auf, hier PHP
* Im Skript lassen sich prinzipiell beliebige Anweisungen ausführen, im Umfeld dynamisch angepasster Webseiten werden aber häufig Datenbankinhalte aufbereitet
* Dazu ruft das Skript das Datenbanksystem auf


Sind die Datenbankinhalte beschafft, im Skript formatiert und aufbereitet sowie auf dem Webserver mit den sonstigen Inhalten aus dem Dateisystem verbunden, so wird das Ergebnis an das Betriebssystem zurückgegeben, das es über die Netzwerkkarte ausliefert.
Sind die Datenbankinhalte beschafft, im Skript formatiert und aufbereitet sowie auf dem Webserver mit den sonstigen Inhalten aus dem Dateisystem verbunden, so wird das Ergebnis an das Betriebssystem zurückgegeben, das es über die Netzwerkkarte ausliefert


== Varianten ==
== 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 [[Microsoft Windows|Windows]], [[macOS]], [[Solaris (Betriebssystem)|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 HTTP Server|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.&nbsp;B. sein:
Die einzelnen Komponenten des LAMP-Systems können durch ähnliche Komponenten ersetzt werden
* So kann die Distribution zum Beispiel auch auf anderen Betriebssystemen wie [[Microsoft Windows|Windows]], [[macOS]], [[Solaris (Betriebssystem)|Solaris]] oder anderen aufbauen
* Die entsprechenden Distributionen heißen dann '''WAMP''', '''MAMP''' oder entsprechend
* Wird [[MySQL]] durch [[PostgreSQL]] ersetzt, nennt man das Bundle '''LAPP'''
* Bei Verwendung des Webservers [[nginx]] statt [[Apache HTTP Server|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.&nbsp;B.&nbsp;sein:
{| class="wikitable"
{| class="wikitable"
|-
|-
! Komponente                   !! LAMP-Variante         !! Beispiele für Komponenten-Alternativen
! Komponente !! LAMP-Variante !! Beispiele für Komponenten-Alternativen
|-
|-
| [[Betriebssystem]] || [[Linux]] || [[Windows]], [[Solaris (Betriebssystem)|Solaris]]
| [[Betriebssystem]] || [[Linux]] || [[Windows]], [[Solaris (Betriebssystem)|Solaris]]
|-
|-
| [[Webserver]] || [[Apache HTTP Server|Apache]] || [[nginx]], [[Node.js]] (evtl. ergänzt um Apache oder nginx)
| [[Webserver]] || [[Apache HTTP Server|Apache]] || [[nginx]], [[Node.js]] (evtl.&nbsp;ergänzt um Apache oder nginx)
|-
|-
| [[Datenbank]] || [[MySQL]] || [[PostgreSQL]], [[CouchDB]], [[MariaDB]]
| [[Datenbank]] || [[MySQL]] || [[PostgreSQL]], [[CouchDB]], [[MariaDB]]
Zeile 52: Zeile 71:


== Beispiel ==
== Beispiel ==
[[Datei:PHP funktionsweise.svg|mini|500px|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
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 [[Webseite#Dynamische Webseiten|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.
 
[[Datei:PHP funktionsweise.svg|mini|600px|Darstellung der Funktionsweise von [[PHP]]]]


== Andere Software-Kombinationen ==
* Der Server, der die [[Webseite#Dynamische Webseiten|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
* [[XAMPP]]
* Durch die „Dynamik“ ist es möglich, Seiteninhalte zu verändern – Änderungen werden dann in die MySQL-Datenbank zurückgeschrieben
* [[WISA]] ([[Microsoft Windows|Windows]], [[Microsoft Internet Information Services|IIS]], [[Microsoft SQL Server|SQL Server]], [[ASP.NET]])
* Alle verwendeten Programmkomponenten sind dabei [[Open Source]]
* [[MEAN]] ([[MongoDB]], [[Express.js]], [[AngularJS]], [[Node.js]])<ref>{{Internetquelle|url=http://blog.mongodb.org/post/49262866911/the-mean-stack-mongodb-expressjs-angularjs-and|titel=The MEAN Stack: MongoDB, ExpressJS, Angular and Node.js|werk=The MongoDB Blog|zugriff=2014-02-03|datum=2013-04-30|sprache=en}}</ref>
* Bei Wikipedia kommt seit April 2013 MariaDB statt MySQL zum Einsatz
* [[LYME]] ([[Linux]], Yaws, [[Mnesia]], [[Erlang (Programmiersprache)|Erlang]])
 
* [[Bitnami]]
== Andere Kombinationen ==
* [[MoWeS]]
{| class="wikitable options"
* [[ELK (Softwarepaket)|ELK]] ([[Elasticsearch]], [[logstash]], [[Kibana]])<ref name="elk">[http://www.linux-magazin.de/Ausgaben/2016/02/ELK-Stack Linux-Magazin 02/2016]</ref>
|-
! Kombination !! Beschreibung
|-
| [[XAMPP]] |||
|-
| [[WISA]] ||[[Microsoft Windows|Windows]], [[Microsoft Internet Information Services|IIS]], [[Microsoft SQL Server|SQL Server]], [[ASP.NET]]
|-
| [[MEAN]] || [[MongoDB]], [[Express.js]], [[AngularJS]], [[Node.js]]
|-
| [[LYME]] || [[Linux]], Yaws, [[Mnesia]], [[Erlang (Programmiersprache)|Erlang]]
|-
| [[Bitnami]] ||
|-
| [[MoWeS]] ||
|-
| [[ELK (Softwarepaket)|ELK]] || [[Elasticsearch]], [[logstash]], [[Kibana]]
|}


<noinclude>
<noinclude>
== Anhang ==
== Anhang ==
=== Siehe auch ===
=== Siehe auch ===
Zeile 71: Zeile 108:
==== Links ====
==== Links ====
===== Weblinks =====
===== Weblinks =====
# [https://www.codeflow.site/de/article/how-to-install-linux-apache-mysql-php-lamp-stack-ubuntu-18-04 Installationinformationen] für Ubuntu (deutsch)
# https://de.wikipedia.org/wiki/LAMP_(Softwarepaket)


[[Kategorie:World Wide Web]]
[[Kategorie:Softwarepaket]]
[[Kategorie:Softwarepaket]]
[[Kategorie:MySQL]]
[[Kategorie:Apache/HTTP]]
[[Kategorie:Datenbank]]
[[Kategorie:PHP]]
[[Kategorie:Linux/Installation]]
[[Kategorie:WWW]]
 
</noinclude>
</noinclude>

Aktuelle Version vom 4. November 2024, 14:36 Uhr

LAMP (Linux, Apache, MySQL, PHP) - Plattform für dynamische Webseiten

Beschreibung

LAMP ist eine Abkürzung für den Einsatz von Programmen 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
Webserver Apache
Datenbank MySQL
Programmiersprache PHP, Perl, Python

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

Entwicklung

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

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 Anfrage aus dem Web erreicht zuerst die Netzwerkkarte

  • Das Betriebssystem stellt fest, welches Programm zur Verarbeitung vorgesehen ist
  • Das geschieht anhand der Portnummer, die explizit oder implizit in der Anfrage enthalten ist
  • Linux leitet die Anfrage an den Apache-Server weiter
  • Die Anfrage enthält eine Adresse, anhand derer der Webserver entscheiden kann, welche Datei aus dem Dateisystem zu holen ist
  • Ist das eine HTML-Datei, so gehören in den meisten Fällen weitere Dateien dazu, etwa Bilder im JPEG-Format
  • Ist in der Datei gekennzeichnet, dass ein Skript auszuführen ist, so ruft der Webserver den entsprechenden Skriptinterpreter auf, hier PHP
  • Im Skript lassen sich prinzipiell beliebige Anweisungen ausführen, im Umfeld dynamisch angepasster Webseiten werden aber häufig Datenbankinhalte aufbereitet
  • Dazu ruft das Skript das Datenbanksystem auf

Sind die Datenbankinhalte beschafft, im Skript formatiert und aufbereitet sowie auf dem Webserver mit den sonstigen Inhalten aus dem Dateisystem verbunden, so wird das Ergebnis an das Betriebssystem zurückgegeben, das es über die Netzwerkkarte ausliefert

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 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

Die Wiki-Software MediaWiki, mit der auch Wikipedia betrieben wird, ist ein Beispiel für ein Anwendungsprogramm, das auf einer LAMP-Umgebung aufbaut

Darstellung der Funktionsweise von PHP
  • 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 Kombinationen

Kombination Beschreibung
XAMPP
WISA Windows, IIS, SQL Server, ASP.NET
MEAN MongoDB, Express.js, AngularJS, Node.js
LYME Linux, Yaws, Mnesia, Erlang
Bitnami
MoWeS
ELK Elasticsearch, logstash, Kibana


Anhang

Siehe auch

Links

Weblinks
  1. https://de.wikipedia.org/wiki/LAMP_(Softwarepaket)