LAMP Tutorial · 12 min read · Dec 28, 2025

Ubuntu 16.04 (LTS) LAMP-Server-Tutorial mit Apache, PHP 7 und MySQL

LAMP steht für L inux, A pache, M ySQL, P HP. Dieses Tutorial zeigt, wie Sie einen Apache-Webserver auf einem Ubuntu 16.04 LTS (Xenial Xerus)-Server mit PHP 7 (mod_php) und MySQL / MariaDB-Unterstützung installieren und wie Sie ein SSL-Zertifikat mit Let’s Encrypt einrichten können. Zusätzlich werde ich PHPMyAdmin installieren, um die MySQL-Administration zu erleichtern. Eine LAMP-Konfiguration ist eine perfekte Grundlage für beliebte CMS-Systeme wie Joomla, Wordpress oder Drupal.

Vorbemerkung

In diesem Tutorial werde ich den Hostnamen server1.example.com mit der IP-Adresse 192.168.1.100 verwenden. Diese Einstellungen können bei Ihnen abweichen, daher müssen Sie sie gegebenenfalls anpassen.

Ich empfehle, eine minimale Ubuntu-Serverkonfiguration als Grundlage für das Tutorial zu verwenden, das kann ein virtuelles oder Root-Server-Image mit einer minimalen Ubuntu 16.04-Installation von einem Webhosting-Anbieter sein oder Sie verwenden unser Minimalserver-Tutorial, um einen Server von Grund auf neu zu installieren.

Ich führe alle Schritte in diesem Tutorial mit Root-Rechten aus, also stellen Sie sicher, dass Sie als Root angemeldet sind:

sudo su

1. Installation der MySQL- oder MariaDB-Datenbank

Derzeit gibt es zwei weit verbreitete MySQL-Datenbanksysteme, den klassischen “MySQL”-Server, der von Oracle entwickelt wird und jetzt in Version 5.7 verfügbar ist, und den MySQL-Fork namens MariaDB, der von dem ursprünglichen MySQL-Entwickler Monty Widenius entwickelt wird.

Ich werde Ihnen zeigen, wie Sie beide Alternativen installieren können. Folgen Sie einfach entweder Kapitel 1.1 oder 1.2, aber nicht beiden. Ich werde MySQL 5.7 für das virtuelle Maschinen-Image verwenden, das von Howtoforge heruntergeladen werden kann.

1.1 MySQL 5.7 installieren

Um MySQL 5.7 zu installieren, führen Sie diesen Befehl aus:

apt-get -y install mysql-server mysql-client

Die Pakete mysql-server und mysql-client sind sogenannte ‘Meta-Pakete’, sie installieren immer die neueste MySQL-Version, die von Ubuntu verfügbar ist. Die neueste Version ist derzeit MySQL 5.7.

Wir haben das Root-Passwort für MySQL bereits während der Installation festgelegt, aber ich möchte den anonymen Benutzer und die Testdatenbank aus Sicherheitsgründen entfernen. Führen Sie den folgenden Befehl mysql_secure_installation aus, um dies zu erreichen.

mysql_secure_installation

Sie werden nach diesen Fragen gefragt:

Sichern der MySQL-Serverbereitstellung.
Geben Sie das Passwort für den Benutzer root ein: <-- Geben Sie das MySQL-Root-Passwort ein
VALIDATE PASSWORD PLUGIN kann verwendet werden, um Passwörter zu testen  
und die Sicherheit zu verbessern. Es überprüft die Stärke des Passworts  
und erlaubt den Benutzern, nur solche Passwörter festzulegen, die  
sicher genug sind. Möchten Sie das VALIDATE PASSWORD-Plugin einrichten?
Drücken Sie y|Y für Ja, eine andere Taste für Nein:  
Verwenden des vorhandenen Passworts für root.  
Das Passwort für root ändern? ((Drücken Sie y|Y für Ja, eine andere Taste für Nein) : <-- Wählen Sie hier 'y', wenn Sie die Passwortvalidierung aktivieren möchten, ich benötige diese Funktion nicht, also wähle ich hier 'n'.
... überspringen.  
Standardmäßig hat eine MySQL-Installation einen anonymen Benutzer,  
was es jedem ermöglicht, sich ohne ein Benutzerkonto in MySQL einzuloggen.  
Dies ist nur für Tests gedacht und soll die Installation etwas reibungsloser gestalten.  
Sie sollten sie entfernen, bevor Sie in eine Produktionsumgebung wechseln.
Anonyme Benutzer entfernen? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : <-- y  
Erfolg.

Normalerweise sollte root nur von  
'localhost' aus verbunden werden dürfen. Dies stellt sicher, dass jemand  
nicht das Root-Passwort über das Netzwerk erraten kann.
Root-Login aus der Ferne verbieten? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : <-- y  
Erfolg.
Standardmäßig kommt MySQL mit einer Datenbank namens 'test', die  
jeder zugreifen kann. Dies ist ebenfalls nur für Tests gedacht  
und sollte entfernt werden, bevor Sie in eine Produktionsumgebung wechseln.

Testdatenbank und Zugriff darauf entfernen? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : <-- y  
- Testdatenbank wird gelöscht...  
Erfolg.
- Berechtigungen für die Testdatenbank werden entfernt...  
Erfolg.
Das Neuladen der Berechtigungstabellen stellt sicher, dass alle Änderungen  
bis jetzt sofort wirksam werden.
Berechtigungstabellen jetzt neu laden? (Drücken Sie y|Y für Ja, eine andere Taste für Nein) : <-- y  
Erfolg.
Alles erledigt!

Die MySQL-Konfiguration ist jetzt gesichert.

1.2 MariaDB 10 installieren

Führen Sie den folgenden Befehl aus, um den MariaDB-Server und -Client zu installieren:

apt-get -y install mariadb-server mariadb-client

Jetzt setzen wir ein Root-Passwort für MariaDB.

mysql_secure_installation

Sie werden nach diesen Fragen gefragt:

Geben Sie das aktuelle Passwort für root ein (leer für keines): <-- drücken Sie Enter  
Root-Passwort festlegen? [Y/n] <-- y  
Neues Passwort: <-- Geben Sie hier das neue MariaDB-Root-Passwort ein  
Neues Passwort erneut eingeben: <-- Wiederholen Sie das Passwort  
Anonyme Benutzer entfernen? [Y/n] <-- y  
Root-Login aus der Ferne verbieten? [Y/n] <-- y  
Berechtigungstabellen jetzt neu laden? [Y/n] <-- y

Testen Sie den Login zu MariaDB mit dem “mysql-Befehl”

mysql -u root -p

und geben Sie das oben festgelegte MariaDB-Root-Passwort ein. Das Ergebnis sollte ähnlich wie der Screenshot unten sein:

MariaDB-Login auf Ubuntu 16.04.

Um die MariaDB-Shell zu verlassen, geben Sie den Befehl “quit” ein und drücken Sie Enter.

2. Apache-Webserver installieren

Apache 2 ist als Ubuntu-Paket verfügbar, daher können wir es wie folgt installieren:

apt-get -y install apache2

Richten Sie jetzt Ihren Browser auf http://192.168.1.100, und Sie sollten die Standardseite von Apache2 sehen (Es funktioniert!):

Das Dokumentenstammverzeichnis des Standard-vhosts von Apache ist /var/www/html unter Ubuntu und die Hauptkonfigurationsdatei ist /etc/apache2/apache2.conf. Das Konfiguration System ist vollständig dokumentiert in /usr/share/doc/apache2/README.Debian.gz.

3. PHP 7 installieren

Wir können PHP 7 und das Apache-PHP-Modul wie folgt installieren:

apt-get -y install php7.0 libapache2-mod-php7.0

Dann starten Sie Apache neu:

systemctl restart apache2

4. PHP testen und Details zu Ihrer PHP-Installation abrufen

Das Dokumentenstammverzeichnis der Standard-Website ist /var/www/html. Wir werden jetzt eine kleine PHP-Datei (info.php) in diesem Verzeichnis erstellen und sie in einem Browser aufrufen. Die Datei zeigt viele nützliche Details über unsere PHP-Installation an, wie die installierte PHP-Version.

nano /var/www/html/info.php

Ändern Sie dann den Besitzer der Datei info.php in den Benutzer und die Gruppe www-data.

chown www-data:www-data /var/www/html/info.php

Jetzt rufen wir diese Datei in einem Browser auf (z.B. http://192.168.1.100/info.php):

PHPINFO-Ausgabe von PHP 7.

Wie Sie sehen, funktioniert PHP 7.0, und es funktioniert über den Apache 2.0-Handler, wie in der Server-API-Zeile gezeigt. Wenn Sie weiter nach unten scrollen, sehen Sie alle Module, die bereits in PHP5 aktiviert sind. MySQL ist dort nicht aufgeführt, was bedeutet, dass wir noch keine MySQL / MariaDB-Unterstützung in PHP haben.

5. MySQL / MariaDB-Unterstützung in PHP erhalten

Um MySQL-Unterstützung in PHP zu erhalten, können wir das Paket php7.0-mysql installieren. Es ist eine gute Idee, auch einige andere PHP-Module zu installieren, da Sie diese möglicherweise für Ihre Anwendungen benötigen. Sie können nach verfügbaren PHP-Modulen wie folgt suchen:

apt-cache search php7.0

Wählen Sie die benötigten aus und installieren Sie sie wie folgt:

apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext

Starten Sie jetzt Apache2 neu:

systemctl restart apache2

PHP mit MySQL / MariaDB-Unterstützung.

PHP 7 hat jetzt MySQL / MariaDB-Unterstützung, wie oben in phpinfo() gezeigt.

6. Den Opcache + APCu PHP-Cache installieren, um PHP zu beschleunigen

PHP 7 wird mit einem integrierten Opcode-Cache zum Cachen und Optimieren von PHP-Zwischencode geliefert, er trägt den Namen ‘opcache’ und ist im Paket php7.0-opcache verfügbar. Es wird dringend empfohlen, einen Opcache zu installieren, um Ihre PHP-Seite zu beschleunigen. Neben dem Opcache werde ich APCu installieren, das eine Kompatibilitäts-Hülle für den Opcache ist, um die Funktionen des APC-Caches bereitzustellen, eines oft verwendeten Caching-Systems in PHP 5.x-Versionen, das viele CMS-Systeme immer noch verwenden.

Opcache und APCu können wie folgt installiert werden:

apt-get -y install php7.0-opcache php-apcu

Keine Sorge, wenn angezeigt wird, dass Opcache bereits installiert ist.

Starten Sie jetzt Apache neu:

systemctl restart apache2

Laden Sie jetzt http://192.168.1.100/info.php in Ihrem Browser neu und scrollen Sie wieder zum Abschnitt Module. Sie sollten jetzt viele neue Module dort finden:

APCu in PHP installiert.

Bitte vergessen Sie nicht, die info.php-Datei zu löschen, wenn Sie sie nicht mehr benötigen, da sie sensible Details Ihres Servers bereitstellt. Führen Sie den folgenden Befehl aus, um die Datei zu löschen.

rm -f /var/www/html/info.php

7. Die SSL-Website in Apache aktivieren

SSL/TLS ist eine Sicherheitsschicht, um die Verbindung zwischen dem Webbrowser und Ihrem Server zu verschlüsseln. Die meisten Webbrowser zeigen heute Websites als unsicher an, wenn die Verbindung zwischen dem Server und dem Webbrowser nicht mit SSL verschlüsselt ist. In diesem Kapitel zeige ich Ihnen, wie Sie Ihre Website mit SSL sichern.

Führen Sie die folgenden Befehle auf Ihrem Server aus, um die SSL (https://) Unterstützung zu aktivieren. Führen Sie aus:

a2enmod ssl  
a2ensite default-ssl

was das SSL-Modul aktiviert und einen Symlink im Ordner /etc/apache2/sites-enabled zur Datei /etc/apache2/sites-available/default-ssl.conf hinzufügt, um sie in die aktive Apache-Konfiguration einzuschließen. Starten Sie dann Apache neu, um die neue Konfiguration zu aktivieren:

systemctl restart apache2

Testen Sie jetzt die SSL-Verbindung, indem Sie https://192.168.1.100 in einem Webbrowser öffnen.

SSL-Warnung in Firefox akzeptieren

Sie erhalten eine SSL-Warnung, da das SSL-Zertifikat des Servers ein “selbstsigniertes” SSL-Zertifikat ist, das bedeutet, dass der Browser dieses Zertifikat standardmäßig nicht vertraut und Sie zuerst die Sicherheitswarnung akzeptieren müssen. Nach der Annahme der Warnung sehen Sie die Standardseite von Apache.

Standardseite von Apache im HTTPS-Modus.

Das geschlossene “Grüne Schloss” vor der URL im Browser zeigt an, dass die Verbindung verschlüsselt ist.

Es gibt zwei Möglichkeiten, die SSL-Warnung loszuwerden, entweder ersetzen Sie das selbstsignierte SSL-Zertifikat /etc/ssl/certs/ssl-cert-snakeoil.pem durch ein offiziell signiertes SSL-Zertifikat, das Sie von einer SSL-Behörde kaufen, oder Sie erhalten ein kostenloses SSL-Zertifikat von Let’s Encrypt, das ich in Kapitel 8 beschreiben werde.

8. Ein kostenloses SSL-Zertifikat von Let’s Encrypt erhalten

Der erste Schritt, um die Website mit einem Let’s Encrypt SSL-Zertifikat zu sichern, besteht darin, das Paket python-letsencrypt-apache zu installieren. Führen Sie den folgenden Befehl aus:

apt-get -y install python-letsencrypt-apache

Im nächsten Schritt werden wir ein SSL-Zertifikat von Let’s Encrypt anfordern. Während dieses Prozesses versucht der Let’s Encrypt-Server, über den Domainnamen, den Sie dem letsencrypt-Befehl bereitstellen, eine Verbindung zu Ihrem Server herzustellen. Es ist wichtig, dass dieser Domainname bereits in DNS auf Ihren Server verweist, damit die Website über ihren Domainnamen auf Port 80 (http) erreichbar ist. Wenn die Website nicht aus dem Internet erreichbar ist, schlägt die Erstellung des Let’s Encrypt SSL-Zertifikats fehl.

Bevor wir mit der Erstellung des SSL-Zertifikats beginnen können, setzen Sie den Domainnamen in der vhost-Konfigurationsdatei. Öffnen Sie die Standard-vhost-Datei mit einem Editor:

nano /etc/apache2/sites-available/000-default.conf

und fügen Sie die Zeile hinzu:

ServerName example.com

Direkt unter der Zeile ‘DocumentRoot’. Ersetzen Sie example.com durch den Domainnamen Ihrer eigenen Website.

Erstellen Sie dann das SSL-Zertifikat mit diesem Befehl:

letsencrypt --apache -d example.com

Ersetzen Sie example.com hier erneut durch Ihren Domainnamen. Der Befehl startet einen Assistenten, der Ihnen mehrere Fragen stellt.

Geben Sie die E-Mail-Adresse ein, unter der der Administrator, der für diese Website verantwortlich ist, erreichbar ist.

Akzeptieren Sie die Allgemeinen Geschäftsbedingungen der Let’s Encrypt SSL-Behörde.

Wählen Sie, ob Sie nicht-SSL-Anfragen automatisch auf https:// umleiten möchten. Ich wähle hier ja, um Probleme mit doppeltem Inhalt zu vermeiden, wenn die Website sowohl als http:// als auch als https:// verfügbar ist.

Das SSL-Zertifikat wurde erfolgreich ausgestellt.

Wenn Sie die Website jetzt mit einem Browser aufrufen, werden Sie automatisch auf SSL umgeleitet, und das grüne Schloss vor der URL-Leiste im Browser zeigt an, dass wir jetzt ein vertrauenswürdiges SSL-Zertifikat verwenden.

8.1 Automatische Erneuerung von Let’s Encrypt

Let’s Encrypt SSL-Zertifikate sind nur für einen kurzen Zeitraum von 80 Tagen gültig. Daher werden wir jetzt einen Cronjob einrichten, um das SSL-Zertifikat bei Bedarf automatisch zu erneuern. Der Befehl lautet ‘letsencrypt renew’.

Richten Sie einen Cronjob für die automatische Erneuerung von LE ein. Führen Sie aus:

crontab -e

um die Root-Crontab in einem Editor zu öffnen. Fügen Sie die folgende Zeile am Ende der Datei ein:

0 1 * * * /usr/bin/letsencrypt renew &> /dev/null

Speichern Sie die Datei, dies aktiviert den Cronjob. Dieser Cronjob wird den Let’s Encrypt-Erneuerungsbefehl jede Nacht um 1 Uhr aufrufen. Der Befehl erneuert das SSL-Zertifikat nur bei Bedarf (30 Tage vor Ablauf), es gibt kein Problem, ihn jede Nacht auszuführen.

9. phpMyAdmin installieren

phpMyAdmin ist eine Weboberfläche, über die Sie Ihre MySQL-Datenbanken verwalten können. Es ist eine gute Idee, es zu installieren:

apt-get -y install phpmyadmin

WICHTIG: Der apt-Installer wird Ihnen jetzt mehrere Fragen stellen, eine davon ist, den Webservertyp auszuwählen. Ein häufiger Fehler ist, dass der Webservertyp nur hervorgehoben, aber nicht ausgewählt ist. Um ein Element in einem apt-Menü auszuwählen, müssen Sie die Leertaste auf der Tastatur drücken, nachdem Sie mit der Tab- oder Cursor-Taste zu dem Element navigiert haben. Es reicht nicht aus, es nur hervorzuheben!

Sie werden die folgenden Fragen sehen:

Webserver, der automatisch konfiguriert werden soll: <-- Wählen Sie die Option: apache2  
Datenbank für phpmyadmin mit dbconfig-common konfigurieren? <-- Ja  
MySQL-Anwendungspasswort für phpmyadmin: <-- Drücken Sie Enter, apt erstellt automatisch ein zufälliges Passwort.

9.1 Root-Zugriff auf PHPMyAdmin mit MariaDB

Der folgende Schritt ist nur für MariaDB-Installationen erforderlich, wenn Sie MySQL 5.7 verwenden, überspringen Sie diesen Schritt.

MariaDB aktiviert standardmäßig ein Plugin namens “unix_socket” für den Root-Benutzer, dieses Plugin verhindert, dass der Root-Benutzer sich in PHPMyAdmin einloggen kann und dass TCP-Verbindungen zu MySQL für den Root-Benutzer funktionieren. Um einen Benutzer mit Berechtigungen zu erstellen, um andere Benutzer und Datenbanken in PHPMyAdmin zu erstellen, werde ich einen neuen MySQL-Benutzer mit dem Namen “admin” mit denselben Berechtigungen wie der Root-Benutzer erstellen.

Melden Sie sich als Root-Benutzer in der MySQL-Datenbank in der Shell an:

mysql -u root

Erstellen Sie einen neuen Benutzer mit dem Namen “admin” und dem Passwort “howtoforge”. Ersetzen Sie das Passwort “howtoforge” in den folgenden Befehlen durch ein sicheres Passwort!

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'howtoforge';  
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;  
FLUSH PRIVILEGES;  
exit

Anschließend können Sie auf phpMyAdmin unter http://192.168.1.100/phpmyadmin/ zugreifen:

Login zu phpmyadmin

PHPMyAdmin

10 Virtuelles Maschinen-Image dieses Tutorials herunterladen

Dieses Tutorial ist als gebrauchsfertiges virtuelles Maschinen-Image im ovf/ova-Format verfügbar, das mit VMWare und Virtualbox kompatibel ist. Das virtuelle Maschinen-Image verwendet die folgenden Anmeldedaten:

SSH / Shell-Anmeldung

Benutzername: administrator
Passwort: howtoforge

Dieser Benutzer hat Sudo-Rechte.

MySQL-Anmeldung

Benutzername: root
Passwort: howtoforge

Die IP der VM ist 192.168.1.100, sie kann in der Datei /etc/network/interfaces geändert werden. Bitte ändern Sie alle oben genannten Passwörter, um die virtuelle Maschine zu sichern.

11 Links

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.