Linux Server

LAMP Stack auf Ubuntu installieren – Apache, MySQL, PHP Tutorial

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 Apache
  • php-mysql: Ermöglicht PHP-MySQL-Verbindungen
  • php-cli: Kommandozeilen-Interface für PHP
  • php-curl: HTTP-Anfragen aus PHP
  • php-gd: Bildverarbeitung
  • php-mbstring: Unterstützung für Multibyte-Strings
  • php-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.