LAMP-Server

Icons von Linux, Apache, MySQL und PHP

Die Abkürzung LAMP steht für Linux, den Webserver Apache, die Datenbank MySQL (oder MariaDB) und die Skiptsprache PHP (oder auch Python, Perl).

Im Unterschied zu Debian setzt Ubuntu weiterhin auf Oracles Open-Source-Edition des MySQL-Servers, anstatt den Fork MariaDB zu nutzen. Debian hingegen installiert selbst dann MariaDB, wenn der Admin apt install mysql-server in die Konsole tippt.

Dank der Magie des Debian-/Ubuntu-Paketmanagers Apt reicht eine kurze Befehlszeile, um einen kompletten Webserver-Stack mit PHP als Apache-Modul und Anbindung an den Datenbank-Server schnell einzurichten. Apt wird die zusätzlich benötigten Pakete (wie das Basispaket php-common und einige übliche Erweiterungen) automatisch mit installieren und nach einem Root-Passwort für MySQL fragen. Danach ist ein lokaler Webserver unter http://localhost per Web-Browser ansurfbar.

Allerdings spricht einiges für die performantere Lösung, statt des PHP-Moduls lieber PHP-FPM zu installieren und damit den Webserver zu entlasten. In diesem Fall reicht eine Befehlszeile nicht ganz; es müssen auch noch das Proxy-Modul und die Konfigurationsdatei für PHP-FPM „scharf“ geschaltet werden.

Installation

Dies installiert einen LAMP-Stack mit PHP als Apache-Modul:

sudo apt install php-mysql libapache2-mod-php mysql-server

Die effektivere Variante mit PHP-FPM:

sudo apt install php-fpm php-mysql apache2 mysql-server
sudo a2enmod proxy_fcgi
sudo a2enconf php-fpm
systemctl reload apache2

Möchte man in Ubuntu statt MySQL lieber MariaDB installieren, greift man zum Paket mariadb-server statt mysql-server.

Möchte man eine andere PHP-Version als jene installieren, die von den Maintainern der Distribution vogesehen ist, kann man beruhigt auf die Repositories des Entwicklers Ondrej Sury zurückgreifen. Für Ubuntu hält Sury ein PPA vor, das sich wie folgt einbinden lässt:

sudo add-apt-repository ppa:ondrej/php
sudo apt update

Nach erfolgreicher Installation des PPAs kann man weitere PHP-Versionen installieren, indem man die Versionsnummer zum Paketnamen hinzufügt. Im folgenden Beispiel soll die FPM-version von PHP 8.2 die standardmäßig installierte PHP-Version ersetzen:

sudo apt install php8.2-fpm php8.2-mysql
sudo a2disconf php-fpm
sudo a2enconf php8.2-fpm
systemctl start php8.2-fpm
systemctl reload apache2
systemctl stop php-fpm

Zunächst wird die PHP 8.2 mit FPM sowie die zu dieser PHP-Version gehörige MySQL-Erweiterung installiert; sodann wird die Apache-Konfiguration für das standardmäßig installierte PHP-FPM entfernt und dann die neue Konfiguration für PHP 8.2 konfiguriert. Alte PHP-FPM-Prozesse werden gestoppt und der neue PHP-FPM-Dienst gestartet. Schließlich wird Apache neu geladen, um die neue Konfiguration wirksam zu machen.