LAMP-Server: eine preiswerte Lösung für dynamische Websites
Man unterscheidet grob zwei Arten von Websites – statische und dynamische. Statische Websites stellen technisch gesehen HTML-Dokumente dar, die auf dem jeweiligen Webserver gehostet sind und jederzeit mit dem gleichen Inhalt vom Benutzer aufgerufen werden können. Der Inhalt dynamischer Websites hingegen wird aktiv im Moment der Anforderung erzeugt. Das ist von Vorteil, sobald die Thematik der Website regelmäßige Aktualisierungen erfordert, wenn beispielsweise Nachrichten, Wetter-Vorhersagen oder Börsenkurse präsentiert werden sollen. Dynamische Websites benötigen jedoch eine besondere Infrastruktur, bestehend aus Betriebssystem, Webserver, Datenbanksystem und Skript-Interpreter, wie sie z. B. der oft verwendete LAMP-Stack bietet.
Was ist ein LAMP-Server?
Das Akronym LAMP setzt sich zusammen aus den Anfangsbuchstaben der vier Software-Komponenten Linux, Apache, MySQL und PHP. Diese sorgen für eine Infrastruktur des Servers, die es möglich macht, dynamische Websites zu erzeugen und zu hosten. Die einzelnen Komponenten bauen aufeinander auf, weshalb das Softwarepaket auch unter dem Namen LAMP-Stack bekannt ist.
Als Betriebssystem bildet Linux die Basis, auf der der Webserver Apache betrieben wird. Dieser kann dynamische Inhalte zwar nicht interpretieren, weiß aber, dass der Skript-Interpreter PHP dazu in der Lage ist. Aus diesem Grund schickt er den entsprechenden Quellcode inklusive Informationen über die Aktionen des Website-Besuchers an den PHP-Interpreter, der dann seinerseits auf die Datenbank MySQL zugreift. Das Ergebnis wird zurück an den Apache geschickt und entsprechend im Webbrowser des Besuchers angezeigt.
LAMP-Server sind seit jeher preisgünstig und schnell verfügbar und aus diesem Grunde auch besonders beliebt. Dennoch können die einzelnen Komponenten auch durch vergleichbare andere ersetzt werden. Als Betriebssystem können beispielsweise auch Windows (WAMP) oder Mac OS (MAMP) eingesetzt werden. Statt Apache wird oft auch der Webserver nginx verwendet. Im Bereich der Datenbanken liegen MySQL und MariaDB hinsichtlich der Nutzungshäufigkeit nahezu gleichauf. Weitere Skript-Interpreter bzw. Programmiersprachen sind Perl, Ruby oder Javascript.
Einen LAMP-Server installieren: So funktioniert’s
Bevor man mit der Installation eines LAMP-Servers beginnt, sollten einige Dinge vorab geklärt werden. Zunächst ist es wichtig, dass die verwendete Hardware genügend Kapazitäten für die Installation und die Arbeit mit dem LAMP-Stack bietet. Grundsätzlich setzt ein LAMP-System keine Top-Performance voraus, sondern ist vergleichsweise genügsam. Je nach Inhalt, der den Besuchern geliefert werden soll, kann ein leistungsstarkes System aber durchaus notwendig sein. Beispiele für rechenintensivere Projekte sind Dienstleistungen wie das Bereitstellen von Onlinespeicher oder Streaming-Dienste. Zusätzlich müssen auch der existierende oder kalkulierte Datenverkehr sowie die Zugriffszahlen einberechnet werden.
Steht die Hardware, muss man sich auf eine der zahlreichen existierenden Linux-Distributionen 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 beabsichtigten Verwendung des LAMP-Servers abhängig gemacht werden.
Die folgende Anleitung beschreibt die Installation der vier Komponenten eines Ubuntu LAMP-Servers.
Schritt 1: Das Betriebssystem
Viele Linux-Varianten sind als Open-Source-Software kostenfrei im Netz zu finden, was auch für Ubuntu gilt. Mit folgenden Schritten erhält und installiert man dieses Betriebssystem, das auf Debian basiert:
- 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.
- System mithilfe der CD bzw. des USB-Sticks starten
- Sprache auswählen und Server-Installation beginnen
- Angabenzu den Optionen Sprache, Keyboard-Layout, Netzwerk-Konfiguration, Hostname, Zeitzone und Passwort machen
- Konfiguration der Festplatte
- Nun scannt der Installer die CD nach Softwarepaketen und möchte Information über die Update-Optionen. An dieser Stelle sollte ausgewählt werden, dass keine automatischen Updates stattfinden.
- Im Anschluss an die Installation muss das System neu gestartet werden und der folgende Befehl in die Kommandozeile eingegeben werden:
sudo apt-get update
Damit ist die Installation von Ubuntu endgültig abgeschlossen und alles für die weiteren Komponenten des Ubuntu LAMP-Servers vorbereitet.
Schritt 2: Der Webserver
Ist der Apache-Webserver noch nicht während der Ubuntu-Installation etabliert worden, kann das jederzeit mit diesem Befehl nachgeholt werde:
sudo apt-get install apache2
Nach Abschluss überprüft man die erfolgreiche Installation des Apache 2 („2“ entspricht der aktuellen Version), indem man über den Webbrowser die Seite localhost oder die Host-IP aufruft. Erscheint die Nachricht „It works!“, kann die Konfiguration beginnen. Folgende Anpassungen sollten vorgenommen werden:
- KeepAlive verbessert zwar den Website-Speed für den User, nimmt aber auch eine Menge Arbeitsspeicher in Beschlag. Daher sollte der KeepAlive-Eintrag in der Haupt-Konfigurationsdatei /etc/apache2/apache2.conf insbesondere bei schwächeren Systemen in "KeepAlive Off" geändert werden.
- Das gängige Multi-Processing-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 folgendermaßen angepasst werden sollte:
<If Module mpm_prefork_module>
StartServers 2
MinSpareServers 6
Max SpareServers 12
MaxRequestWorkers 39
MaxConnectionsPerChild 3000
</IfModule>
- Anschließend gilt es, das Event-Module aus- und das Prefork-Module anzuschalten:
sudo a2dismod mpm_event
sudo a2enmod mpm_prefork
- Zum Schluss muss nur noch der Server neu gestartet werden:
sudo service apache2 restart
Schritt 3: Die Datenbank
Das Datenbankmanagementsystem MySQL operiert als Server, auf dem mehrere Datenbanken 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 installiert wird:
sudo apt-get install mysql-server
Während der Installation 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 beschäftigt sich mit der Sicherheit von MySQL. Das Programm MySQL Secure bietet die Optionen, das Passwort zu ändern, anonyme Nutzer-Accounts oder Test-Datenbanken zu entfernen oder alle Root-Logins, die nicht durch den localhost geschehen, zu verhindern. Der Installations-Befehl lautet:
sudo mysql_secure_installation
Um nun eine Datenbank zu erstellen, loggt man sich zunächst in MySQL ein:
mysql -u root -p
Anschließend kann die Datenbank inklusive Nutzer mit Zugangsrechten erstellt werden:
create database webdata;
grant all on webdata.*to nutzer identified by passwort;
Schritt 4: Die Skript-Software
Der letzte Schritt der Installation fügt dem LAMP-Stack die Skriptsprache PHP sowie die Bibliothek PEAR (PHP Extension and Application Repository) hinzu, die wertvolle Module und Erweiterungen für PHP beinhaltet. Die Installation startet mit dem Befehl:
sudo apt-get install php5 php-pear
Es lohnt sich ebenfalls, die MySQL-Unterstützung für PHP5 zu installieren:
sudo apt-get install php5-mysql
Sobald der Installations-Prozess beendet ist, sollte die PHP-Konfigurations-Datei, die unter /etc/php5/apache2/php.ini zu finden ist, folgendermaßen modifiziert 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 aussagekräftigere Fehlerberichte und eine bessere Performance. Außerdem wird das Speichern von Fehlern im error.log möglich. Anschließend muss man lediglich noch das Log-Verzeichnis für PHP erstellen und dem Apache-Server Besitzerrechte geben:
sudo mkdir /var/log/php
sudo chown www-data /var/log/php
Mit einem Apache-Reload ist die Installation des kompletten LAMP-Servers dann abgeschlossen:
sudo service apache2 reload
LAMP-Stacks: Open-Source-Software für jedes Webprojekt
Der Vorteil an Open-Source-Software ist nicht nur, dass sie meist kostenfrei verfügbar ist. Ein weiterer Pluspunkt, dem sie auch ihren Namen verdankt, ist der Entwicklungscode, der offen und für jeden zugänglich ist. So können Benutzer jederzeit selbstständig an der Software basteln und Erweiterungen entwickeln. Anders als bei proprietärer Software ist es somit für erfahrene Nutzer kein Problem, wenn beispielsweise die Unterstützung für das Produkt eingestellt wird.
Einen LAMP-Server zu installieren, lohnt sich aber nicht nur aufgrund der hohen Flexibilität und des geringen Preises, sondern auch, weil die verwendeten Komponenten gut aufeinander abgestimmt sind. LAMP-Server ermöglichen zudem das Betreiben statischer und dynamischer Websites. Unter anderem wurde beispielsweise die Wiki-Software MediaWiki, mit der auch Wikipedia betrieben wird, auf einem LAMP-System entwickelt.