LAMP Stack auf Ubuntu installieren – Apache, MySQL, PHP Tutorial
Einleitung
LAMP ist eine bewährte Kombination von Open-Source-Software, die zusammen eine vollständige Webserver-Umgebung bildet. Diese Abkürzung steht für Linux (Betriebssystem), Apache (Webserver), MySQL (Datenbank) und PHP (Programmiersprache). Diese Technologien ergänzen sich perfekt, um dynamische Websites und Webanwendungen zu betreiben.
Der LAMP-Stack ist besonders beliebt, weil er kostenlos, stabil und gut dokumentiert ist. Millionen von Websites weltweit nutzen diese Kombination – von kleinen Blogs bis hin zu großen Unternehmensportalen. Apache fungiert als Webserver und liefert HTML-Seiten an Besucher aus. MySQL speichert alle Daten wie Benutzerinformationen, Artikel oder Produktkataloge. PHP verarbeitet die Programmlogik und generiert dynamische Inhalte basierend auf Datenbankabfragen.
In diesem Tutorial lernen Sie, wie Sie einen kompletten LAMP-Stack auf Ubuntu 22.04 einrichten. Die Schritte funktionieren auch für Ubuntu 18.04 und neuere Versionen. Am Ende haben Sie eine funktionsfähige Entwicklungsumgebung für PHP-basierte Projekte.
Voraussetzungen
Bevor Sie mit der Installation beginnen, stellen Sie sicher, dass folgende Voraussetzungen erfüllt sind:
- Ein Ubuntu 22.04 Server mit Root-Zugriff oder einem Benutzer mit sudo-Berechtigung
- Eine aktive Internetverbindung für Downloads
- Grundlegende Kenntnisse der Linux-Kommandozeile
- Zugriff auf das Terminal oder eine SSH-Verbindung
- Mindestens 1 GB freier Festplattenspeicher
- Die öffentliche IP-Adresse Ihres Servers (falls Sie die Installation testen möchten)
Öffnen Sie zunächst ein Terminal und aktualisieren Sie die Paketlisten, um sicherzustellen, dass Sie die neuesten Versionen installieren:
sudo apt update
sudo apt upgrade -y
Schritt-für-Schritt Anleitung
Schritt 1: Apache Webserver installieren
Apache ist einer der meistgenutzten Webserver weltweit. Er ist zuverlässig, sicher und bietet umfangreiche Konfigurationsmöglichkeiten. Installieren Sie Apache mit folgendem Befehl:
sudo apt install apache2 -y
Nach der Installation müssen Sie die Firewall konfigurieren, damit HTTP-Verkehr den Server erreichen kann. Ubuntu verwendet standardmäßig UFW (Uncomplicated Firewall):
sudo ufw allow 'Apache'
sudo ufw status
Starten Sie Apache und aktivieren Sie den automatischen Start beim Systemstart:
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2
Schritt 2: MySQL Datenbank installieren
MySQL ist ein relationales Datenbanksystem, das Ihre Website-Daten speichert. Installieren Sie den MySQL-Server:
sudo apt install mysql-server -y
Nach der Installation sollten Sie MySQL absichern. Das System enthält ein praktisches Skript, das unsichere Standardeinstellungen entfernt:
sudo mysql_secure_installation
Das Skript führt Sie durch verschiedene Sicherheitsoptionen:
- Passwort-Validierung aktivieren (empfohlen)
- Root-Passwort festlegen
- Anonyme Benutzer entfernen
- Remote-Root-Login deaktivieren
- Test-Datenbank löschen
Testen Sie die MySQL-Installation:
sudo mysql -u root -p
Schritt 3: PHP installieren
PHP ist die Skriptsprache, die dynamische Webseiten erstellt. Installieren Sie PHP zusammen mit wichtigen Modulen:
sudo apt install php libapache2-mod-php php-mysql php-cli php-curl php-gd php-mbstring php-xml -y
Die installierten Module haben folgende Funktionen:
libapache2-mod-php: Verbindet PHP mit Apachephp-mysql: Ermöglicht PHP-MySQL-Verbindungenphp-cli: Kommandozeilen-Interface für PHPphp-curl: HTTP-Anfragen aus PHPphp-gd: Bildverarbeitungphp-mbstring: Unterstützung für Multibyte-Stringsphp-xml: XML-Verarbeitung
Schritt 4: Apache für PHP konfigurieren
Standardmäßig bevorzugt Apache HTML-Dateien vor PHP-Dateien. Ändern Sie diese Einstellung, indem Sie die Konfigurationsdatei bearbeiten:
sudo nano /etc/apache2/mods-enabled/dir.conf
Verschieben Sie index.php an den Anfang der Liste:
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
Starten Sie Apache neu, damit die Änderungen wirksam werden:
sudo systemctl restart apache2
Schritt 5: Virtual Host erstellen
Virtual Hosts ermöglichen es, mehrere Websites auf einem Server zu betreiben. Erstellen Sie einen Virtual Host für Ihr Projekt:
sudo mkdir /var/www/meine-website
sudo chown -R $USER:$USER /var/www/meine-website
sudo chmod -R 755 /var/www/meine-website
Erstellen Sie eine Konfigurationsdatei für den Virtual Host:
sudo nano /etc/apache2/sites-available/meine-website.conf
Fügen Sie folgende Konfiguration hinzu:
<VirtualHost *:80>
ServerName meine-website.local
ServerAlias www.meine-website.local
DocumentRoot /var/www/meine-website
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Aktivieren Sie den Virtual Host und deaktivieren Sie die Standard-Site:
sudo a2ensite meine-website.conf
sudo a2dissite 000-default.conf
sudo systemctl reload apache2
Überprüfung
Apache testen
Öffnen Sie einen Webbrowser und geben Sie die IP-Adresse Ihres Servers ein. Sie sollten die Apache-Standardseite sehen. Alternativ verwenden Sie curl:
curl http://localhost
PHP-Funktionalität testen
Erstellen Sie eine Test-PHP-Datei:
nano /var/www/meine-website/info.php
Fügen Sie folgenden Inhalt hinzu:
<?php
phpinfo();
?>
Besuchen Sie http://ihre-server-ip/info.php im Browser. Sie sollten eine detaillierte PHP-Informationsseite sehen.
MySQL-Verbindung testen
Erstellen Sie eine Testdatenbank und einen Benutzer:
sudo mysql -u root -p
Führen Sie folgende SQL-Befehle aus:
CREATE DATABASE test_db;
CREATE USER 'test_user'@'localhost' IDENTIFIED BY 'sicheres_passwort';
GRANT ALL PRIVILEGES ON test_db.* TO 'test_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Erstellen Sie eine PHP-Datei zum Testen der Datenbankverbindung:
nano /var/www/meine-website/db-test.php
Denken Sie daran, die Testdateien nach erfolgreicher Überprüfung zu löschen:
rm /var/www/meine-website/info.php
rm /var/www/meine-website/db-test.php
Troubleshooting
Apache startet nicht
Überprüfen Sie die Fehlermeldungen in den Log-Dateien:
sudo journalctl -u apache2
sudo tail -f /var/log/apache2/error.log
Häufige Ursachen sind Konfigurationsfehler oder bereits belegte Ports. Testen Sie die Konfiguration:
sudo apache2ctl configtest
PHP wird nicht ausgeführt
Stellen Sie sicher, dass das PHP-Modul geladen ist:
sudo a2enmod php8.1
sudo systemctl restart apache2
Überprüfen Sie die geladenen Apache-Module:
apache2ctl -M | grep php
MySQL-Verbindungsfehler
Prüfen Sie, ob MySQL läuft:
sudo systemctl status mysql
Überprüfen Sie die MySQL-Logs:
sudo tail -f /var/log/mysql/error.log
Berechtigungsprobleme
Stellen Sie sicher, dass Apache Zugriff auf Ihre Dateien hat:
sudo chown -R www-data:www-data /var/www/meine-website
sudo chmod -R 755 /var/www/meine-website
Fazit
Sie haben erfolgreich einen vollständigen LAMP-Stack auf Ubuntu installiert. Diese Umgebung bietet eine solide Grundlage für die Entwicklung und das Hosting von PHP-basierten Webanwendungen. Apache verarbeitet HTTP-Anfragen, MySQL speichert Ihre Daten sicher, und PHP generiert dynamische Inhalte.
Für den produktiven Einsatz sollten Sie zusätzliche Sicherheitsmaßnahmen ergreifen: SSL-Zertifikate für HTTPS-Verschlüsselung installieren, regelmäßige Backups einrichten, Firewall-Regeln verfeinern und Software-Updates automatisieren. Auch Performance-Optimierungen wie Caching und Datenbanktuning können die Leistung erheblich verbessern.
Mit diesem Setup können Sie nun beliebte Content-Management-Systeme wie WordPress, Drupal oder Joomla installieren oder eigene PHP-Anwendungen entwickeln. Der LAMP-Stack bleibt eine der zuverlässigsten und am weitesten verbreiteten Webserver-Umgebungen.