Man un­ter­schei­det grob zwei Arten von Websites – statische und dy­na­mi­sche. Statische Websites stellen technisch gesehen HTML-Dokumente dar, die auf dem je­wei­li­gen Webserver gehostet sind und jederzeit mit dem gleichen Inhalt vom Benutzer auf­ge­ru­fen werden können. Der Inhalt dy­na­mi­scher Websites hingegen wird aktiv im Moment der An­for­de­rung erzeugt. Das ist von Vorteil, sobald die Thematik der Website re­gel­mä­ßi­ge Ak­tua­li­sie­run­gen erfordert, wenn bei­spiels­wei­se Nach­rich­ten, Wetter-Vor­her­sa­gen oder Bör­sen­kur­se prä­sen­tiert werden sollen. Dy­na­mi­sche Websites benötigen jedoch eine besondere In­fra­struk­tur, bestehend aus Be­triebs­sys­tem, Webserver, Da­ten­bank­sys­tem und Skript-In­ter­pre­ter, wie sie z. B. der oft ver­wen­de­te LAMP-Stack bietet.

Was ist ein LAMP-Server?

Das Akronym LAMP setzt sich zusammen aus den An­fangs­buch­sta­ben der vier Software-Kom­po­nen­ten Linux, Apache, MySQL und PHP. Diese sorgen für eine In­fra­struk­tur des Servers, die es möglich macht, dy­na­mi­sche Websites zu erzeugen und zu hosten. Die einzelnen Kom­po­nen­ten bauen auf­ein­an­der auf, weshalb das Soft­ware­pa­ket auch unter dem Namen LAMP-Stack bekannt ist.

Als Be­triebs­sys­tem bildet Linux die Basis, auf der der Webserver Apache betrieben wird. Dieser kann dy­na­mi­sche Inhalte zwar nicht in­ter­pre­tie­ren, weiß aber, dass der Skript-In­ter­pre­ter PHP dazu in der Lage ist. Aus diesem Grund schickt er den ent­spre­chen­den Quellcode inklusive In­for­ma­tio­nen über die Aktionen des Website-Besuchers an den PHP-In­ter­pre­ter, der dann sei­ner­seits auf die Datenbank MySQL zugreift. Das Ergebnis wird zurück an den Apache geschickt und ent­spre­chend im Web­brow­ser des Besuchers angezeigt.

LAMP-Server sind seit jeher preis­güns­tig und schnell verfügbar und aus diesem Grunde auch besonders beliebt. Dennoch können die einzelnen Kom­po­nen­ten auch durch ver­gleich­ba­re andere ersetzt werden. Als Be­triebs­sys­tem können bei­spiels­wei­se auch Windows (WAMP) oder Mac OS (MAMP) ein­ge­setzt werden. Statt Apache wird oft auch der Webserver nginx verwendet. Im Bereich der Da­ten­ban­ken liegen MySQL und MariaDB hin­sicht­lich der Nut­zungs­häu­fig­keit nahezu gleichauf. Weitere Skript-In­ter­pre­ter bzw. Pro­gram­mier­spra­chen sind Perl, Ruby oder Ja­va­script.

Einen LAMP-Server in­stal­lie­ren: So funk­tio­niert’s

Bevor man mit der In­stal­la­ti­on eines LAMP-Servers beginnt, sollten einige Dinge vorab geklärt werden. Zunächst ist es wichtig, dass die ver­wen­de­te Hardware genügend Ka­pa­zi­tä­ten für die In­stal­la­ti­on und die Arbeit mit dem LAMP-Stack bietet. Grund­sätz­lich setzt ein LAMP-System keine Top-Per­for­mance voraus, sondern ist ver­gleichs­wei­se genügsam. Je nach Inhalt, der den Besuchern geliefert werden soll, kann ein leis­tungs­star­kes System aber durchaus notwendig sein. Beispiele für re­chen­in­ten­si­ve­re Projekte sind Dienst­leis­tun­gen wie das Be­reit­stel­len von On­line­spei­cher oder Streaming-Dienste. Zu­sätz­lich müssen auch der exis­tie­ren­de oder kal­ku­lier­te Da­ten­ver­kehr sowie die Zu­griffs­zah­len ein­be­rech­net werden.

Steht die Hardware, muss man sich auf eine der zahl­rei­chen exis­tie­ren­den Linux-Dis­tri­bu­tio­nen festlegen. Ob die Wahl dabei z. B. auf Red Hat, openSUSE, Debian, Ubuntu oder CentOS fällt, sollte vom eigenen Linux-Know-how sowie der be­ab­sich­tig­ten Ver­wen­dung des LAMP-Servers abhängig gemacht werden.

Die folgende Anleitung be­schreibt die In­stal­la­ti­on der vier Kom­po­nen­ten eines Ubuntu LAMP-Servers.

Schritt 1: Das Be­triebs­sys­tem

Viele Linux-Varianten sind als Open-Source-Software kos­ten­frei im Netz zu finden, was auch für Ubuntu gilt. Mit folgenden Schritten erhält und in­stal­liert man dieses Be­triebs­sys­tem, das auf Debian basiert:

  1. Download oder Kauf der Ubuntu Server Edition über die Homepage von Ubuntu; im Anschluss daran folgt das Speichern bzw. Brennen der iso-Datei auf einen USB-Stick oder eine CD.
  2. System mithilfe der CD bzw. des USB-Sticks starten
  3. Sprache auswählen und Server-In­stal­la­ti­on beginnen
  4. Angabenzu den Optionen Sprache, Keyboard-Layout, Netzwerk-Kon­fi­gu­ra­ti­on, Hostname, Zeitzone und Passwort machen
  5. Kon­fi­gu­ra­ti­on der Fest­plat­te
  6. Nun scannt der Installer die CD nach Soft­ware­pa­ke­ten und möchte In­for­ma­ti­on über die Update-Optionen. An dieser Stelle sollte aus­ge­wählt werden, dass keine au­to­ma­ti­schen Updates statt­fin­den.
  7. Im Anschluss an die In­stal­la­ti­on muss das System neu gestartet werden und der folgende Befehl in die Kom­man­do­zei­le ein­ge­ge­ben werden:
sudo apt-get update

Damit ist die In­stal­la­ti­on von Ubuntu endgültig ab­ge­schlos­sen und alles für die weiteren Kom­po­nen­ten des Ubuntu LAMP-Servers vor­be­rei­tet.

Schritt 2: Der Webserver

Ist der Apache-Webserver noch nicht während der Ubuntu-In­stal­la­ti­on etabliert worden, kann das jederzeit mit diesem Befehl nach­ge­holt werde:

sudo apt-get install apache2

Nach Abschluss überprüft man die er­folg­rei­che In­stal­la­ti­on des Apache 2 („2“ ent­spricht der aktuellen Version), indem man über den Web­brow­ser die Seite localhost oder die Host-IP aufruft. Erscheint die Nachricht „It works!“, kann die Kon­fi­gu­ra­ti­on beginnen. Folgende An­pas­sun­gen sollten vor­ge­nom­men werden:

  1. KeepAlive ver­bes­sert zwar den Website-Speed für den User, nimmt aber auch eine Menge Ar­beits­spei­cher in Beschlag. Daher sollte der KeepAlive-Eintrag in der Haupt-Kon­fi­gu­ra­ti­ons­da­tei /etc/apache2/apache2.conf ins­be­son­de­re bei schwä­che­ren Systemen in "KeepAlive Off" geändert werden.
  2. Das gängige Multi-Pro­ces­sing-Module (MPM) des Apache ist das Event-Module, während PHP das Prefork-Module nutzt. Unter /etc/apache2/mods-available findet man die Datei mpm_prefork.conf, die fol­gen­der­ma­ßen angepasst werden sollte:
<If Module mpm_prefork_module>
StartServers 2
MinSpareServers 6
Max SpareServers 12
MaxRequestWorkers 39
MaxConnectionsPerChild 3000
</IfModule>
  1. An­schlie­ßend gilt es, das Event-Module aus- und das Prefork-Module an­zu­schal­ten:
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
  1. Zum Schluss muss nur noch der Server neu gestartet werden:
sudo service apache2 restart

Schritt 3: Die Datenbank

Das Da­ten­bank­ma­nage­ment­sys­tem MySQL operiert als Server, auf dem mehrere Da­ten­ban­ken erstellt werden können. Pro Datenbank lassen sich zudem diverse Tabellen angelegen. Einer oder mehrere Clients senden Anfragen an den MySQL-Server, der mit folgendem Befehl in­stal­liert wird:

sudo apt-get install mysql-server

Während der In­stal­la­ti­on ist es möglich, das Passwort für den MySQL-Root-User zu bestimmen, was in jedem Fall gemacht werden sollte. Der nächste Schritt be­schäf­tigt sich mit der Si­cher­heit von MySQL. Das Programm MySQL Secure bietet die Optionen, das Passwort zu ändern, anonyme Nutzer-Accounts oder Test-Da­ten­ban­ken zu entfernen oder alle Root-Logins, die nicht durch den localhost geschehen, zu ver­hin­dern. Der In­stal­la­ti­ons-Befehl lautet:

sudo mysql_secure_installation

Um nun eine Datenbank zu erstellen, loggt man sich zunächst in MySQL ein:

mysql -u root -p

An­schlie­ßend kann die Datenbank inklusive Nutzer mit Zu­gangs­rech­ten erstellt werden:

create database webdata;
grant all on webdata.*to nutzer identified by passwort;

Schritt 4: Die Skript-Software

Der letzte Schritt der In­stal­la­ti­on fügt dem LAMP-Stack die Skript­spra­che PHP sowie die Bi­blio­thek PEAR (PHP Extension and Ap­pli­ca­ti­on Re­po­si­to­ry) hinzu, die wertvolle Module und Er­wei­te­run­gen für PHP be­inhal­tet. Die In­stal­la­ti­on startet mit dem Befehl:

sudo apt-get install php5 php-pear

Es lohnt sich ebenfalls, die MySQL-Un­ter­stüt­zung für PHP5 zu in­stal­lie­ren:

sudo apt-get install php5-mysql

Sobald der In­stal­la­ti­ons-Prozess beendet ist, sollte die PHP-Kon­fi­gu­ra­ti­ons-Datei, die unter /etc/php5/apache2/php.ini zu finden ist, fol­gen­der­ma­ßen mo­di­fi­ziert werden:

error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
error_log = /var/log/php/error.log
max_input_time = 30

Dadurch erhält der Nutzer aus­sa­ge­kräf­ti­ge­re Feh­ler­be­rich­te und eine bessere Per­for­mance. Außerdem wird das Speichern von Fehlern im error.log möglich. An­schlie­ßend muss man lediglich noch das Log-Ver­zeich­nis für PHP erstellen und dem Apache-Server Be­sit­zer­rech­te geben:

sudo mkdir /var/log/php
sudo chown www-data /var/log/php

Mit einem Apache-Reload ist die In­stal­la­ti­on des kom­plet­ten LAMP-Servers dann ab­ge­schlos­sen:

sudo service apache2 reload

LAMP-Stacks: Open-Source-Software für jedes Web­pro­jekt

Der Vorteil an Open-Source-Software ist nicht nur, dass sie meist kos­ten­frei verfügbar ist. Ein weiterer Pluspunkt, dem sie auch ihren Namen verdankt, ist der Ent­wick­lungs­code, der offen und für jeden zu­gäng­lich ist. So können Benutzer jederzeit selbst­stän­dig an der Software basteln und Er­wei­te­run­gen ent­wi­ckeln. Anders als bei pro­prie­tä­rer Software ist es somit für erfahrene Nutzer kein Problem, wenn bei­spiels­wei­se die Un­ter­stüt­zung für das Produkt ein­ge­stellt wird.

Einen LAMP-Server zu in­stal­lie­ren, lohnt sich aber nicht nur aufgrund der hohen Fle­xi­bi­li­tät und des geringen Preises, sondern auch, weil die ver­wen­de­ten Kom­po­nen­ten gut auf­ein­an­der ab­ge­stimmt sind. LAMP-Server er­mög­li­chen zudem das Betreiben sta­ti­scher und dy­na­mi­scher Websites. Unter anderem wurde bei­spiels­wei­se die Wiki-Software MediaWiki, mit der auch Wikipedia betrieben wird, auf einem LAMP-System ent­wi­ckelt.

Zum Hauptmenü