Wie installiert man Linux, Apache, MySQL, PHP (LAMP) auf Ubuntu 16.04?
Einführung
LAMP ist eine Sammlung von Open-Source-Software, die üblicherweise zusammen installiert wird, um einem Server das Hosten dynamischer Websites und Webanwendungen zu ermöglichen. Die Abkürzung steht für Lamp Operating System. Linux Die Website wird vom Apache-Webserver betrieben. Die Website-Daten werden in einer MySQL-Datenbank gespeichert und dynamische Inhalte werden mit PHP verarbeitet.
In dieser Anleitung installieren wir einen LAMP-Stack auf einem Ubuntu 16.04-Server. Ubuntu erfüllt damit unsere erste Voraussetzung: ein Linux-Betriebssystem.
Voraussetzungen
Bevor Sie mit dieser Anleitung beginnen, müssen Sie auf Ihrem Server ein separates Benutzerkonto mit sudo-Berechtigungen einrichten, das kein Root-Benutzerkonto ist. Wie das geht, erfahren Sie in den Schritten 1 bis 4 unserer Anleitung zur Ersteinrichtung eines Servers unter Ubuntu 16.04.
Schritt 1 – Apache installieren und Firewall konfigurieren
Der Apache-Webserver ist einer der weltweit beliebtesten Webserver. Er ist gut dokumentiert und wurde über weite Strecken der Webgeschichte eingesetzt, was ihn zu einer hervorragenden Standardwahl für Webhosting macht.
Apache lässt sich einfach mit dem Ubuntu-Paketmanager installieren. Mit dem Paketmanager können wir die meisten Programme problemlos aus dem von Ubuntu verwalteten Repository installieren. Weitere Informationen zur Verwendung von apt finden Sie hier.
Um das Ergebnis zu erhalten, können wir mit der Eingabe dieser Befehle beginnen:
sudo apt-get update $
sudo apt-get install apache2 $Da wir den sudo-Befehl verwenden, wird diese Operation mit Root-Rechten ausgeführt. Sie werden zur Bestätigung Ihrer Absicht nach Ihrem regulären Benutzerpasswort gefragt.
Nach Eingabe Ihres Passworts zeigt Ihnen apt an, welche Pakete installiert werden sollen und wie viel zusätzlichen Speicherplatz diese belegen. Um fortzufahren, geben Sie „y“ ein und drücken Sie die Eingabetaste. Die Installation wird dann fortgesetzt.
Global ServerName festlegen, um Syntaxwarnungen zu unterdrücken
Als Nächstes fügen wir eine Zeile zur Datei `/etc/apache2/apache2.conf` hinzu, um eine Warnmeldung zu unterdrücken. Diese ist zwar harmlos, aber wenn Sie `ServerName` nicht global festlegen, erhalten Sie beim Überprüfen Ihrer Apache-Konfiguration auf Syntaxfehler die folgende Warnung:
sudo apache2ctl configtest $Output
AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message
Syntax OKÖffnen Sie die Hauptkonfigurationsdatei, indem Sie deren Text bearbeiten:
sudo nano /etc/apache2/apache2.conf $Fügen Sie im Inneren der Datei am Ende die ServerName-Direktive hinzu, die auf Ihren Hauptdomainnamen verweist. Falls Ihr Server keinen Domainnamen besitzt, können Sie die öffentliche IP-Adresse Ihres Servers verwenden.
Notiz: Falls Sie die IP-Adresse Ihres Servers nicht kennen, finden Sie diese im Abschnitt „So finden Sie die öffentliche IP-Adresse Ihres Servers“.
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Überprüfen Sie anschließend die Syntax auf Fehler, indem Sie Folgendes eingeben:
sudo nano apache2ctl configtest $Seit wir die globale ServerName-Direktive hinzugefügt haben, sollte nur noch Folgendes angezeigt werden:
Output
Syntax OKStarten Sie Apache neu, um Ihre Änderungen zu übernehmen:
sudo nano systemctl restart apache2 $Jetzt können Sie mit der Konfiguration der Firewall beginnen.
Konfigurieren Sie die Firewall so, dass Webverkehr zugelassen wird.
Wenn Sie die Anweisungen zur anfänglichen Servereinrichtung befolgt und die UFW-Firewall aktiviert haben, stellen Sie als Nächstes sicher, dass Ihre Firewall HTTP- und HTTPS-Datenverkehr zulässt. Sie können überprüfen, ob UFW über ein Anwendungsprofil für Apache verfügt, wie folgt:
sudo nano ufw app list $Output
Available applications:
Apache
Apache Full
Apache Secure
OpenSSHWenn Sie sich das vollständige Apache-Profil ansehen, sollte dort ersichtlich sein, dass der Datenverkehr auf den Ports 80 und 443 aktiviert ist:
$ sudo ufw app info “Apache Full”
Output
Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.
Ports:
۸۰,۴۴۳/tcpEingehenden Datenverkehr für dieses Profil zulassen:
$ sudo ufw allow in “Apache Full”Sie können schnell überprüfen, ob alles planmäßig verlaufen ist, indem Sie die öffentliche IP-Adresse Ihres Servers in Ihrem Webbrowser aufrufen (falls Sie diese Information nicht haben, finden Sie unter der nächsten Überschrift heraus, wie Ihre vorherige öffentliche IP-Adresse lautete):
http://your_server_IP_addressSie sehen die Standard-Webseite von Ubuntu 16.04 Apache, die zu Informations- und Testzwecken dient. Sie sollte etwa so aussehen:

Wenn Sie diese Seite sehen, ist Ihr Webserver nun ordnungsgemäß installiert und über Ihre Firewall erreichbar.
Die öffentliche IP-Adresse Ihres Servers ermitteln
Wenn Sie die öffentliche IP-Adresse Ihres Servers nicht kennen, gibt es verschiedene Möglichkeiten, sie herauszufinden. Normalerweise ist dies die Adresse, die Sie für die SSH-Verbindung zu Ihrem Server verwenden.
Über die Kommandozeile gibt es mehrere Möglichkeiten, dies herauszufinden. Zunächst können Sie das Tool iproute2 verwenden, um Ihre Adresse zu ermitteln, indem Sie Folgendes eingeben:
$ ip addr show eth0 | grep inet | awk ‘{ print $2; }’ | sed ‘s/\/.*$//’Dadurch erhalten Sie zwei oder drei Zeilen. Es handelt sich dabei um gültige Adressen, aber Ihr Computer kann möglicherweise nur eine davon verwenden. Probieren Sie daher jede einzelne aus.
Eine alternative Methode besteht darin, das curl-Tool zu verwenden, um eine externe Partei zu kontaktieren und ihr mitzuteilen, wie sie Ihren Server sieht. Sie können dies tun, indem Sie einen bestimmten Server nach Ihrer IP-Adresse fragen:
Unabhängig davon, mit welcher Methode Sie Ihre IP-Adresse ermitteln, können Sie diese in die Adressleiste Ihres Webbrowsers eingeben, um auf Ihren Server zuzugreifen.
Schritt 2 – MySQL installieren
Nachdem unser Webserver eingerichtet ist, installieren wir nun MySQL. MySQL ist ein Datenbankmanagementsystem. Es ermöglicht das Speichern, Organisieren und Abrufen von Informationen in Datenbanken.
Wir können erneut apt verwenden, um unsere Software herunterzuladen und zu installieren. Dieses Mal installieren wir zusätzlich einige Hilfspakete, die die Kommunikation zwischen unseren Komponenten erleichtern:
$ sudo apt-get install mysql-serverNotiz: In diesem Fall ist die Ausführung von `sudo apt-get update` vor dem Befehl nicht nötig. Das liegt daran, dass wir es bereits in den vorherigen Befehlen zur Installation von Apache verwendet haben. Die Paketliste auf unserem Computer sollte daher bereits aktuell sein.
Es wird Ihnen erneut eine Liste der zu installierenden Pakete sowie deren benötigter Speicherplatz angezeigt. Geben Sie „J“ ein, um fortzufahren.
Während der Installation werden Sie von Ihrem Server aufgefordert, ein Passwort für den MySQL-Benutzer “root” auszuwählen und zu bestätigen. Dies ist ein Administratorkonto in MySQL mit erweiterten Berechtigungen. Es ist vergleichbar mit dem Root-Konto des Servers selbst (obwohl es sich bei dem Konto, das Sie jetzt konfigurieren, um ein spezielles MySQL-Konto handelt). Verwenden Sie unbedingt ein sicheres und einzigartiges Passwort und lassen Sie das Feld nicht leer.
Nach Abschluss der Installation führen wir ein einfaches Sicherheitsskript aus, das einige gefährliche Standardeinstellungen entfernt und den Zugriff auf unser Datenbanksystem etwas einschränkt. Starten Sie das interaktive Skript mit folgendem Befehl:
$ mysql_secure_installationSie werden aufgefordert, das von Ihnen für das MySQL-Root-Konto festgelegte Passwort einzugeben. Anschließend werden Sie gefragt, ob Sie das VALIDATE PASSWORD PLUGIN konfigurieren möchten.
Warnung: Die Aktivierung dieser Funktion erfordert etwas Fingerspitzengefühl. Ist sie aktiviert, werden Passwörter, die die festgelegten Kriterien nicht erfüllen, von MySQL mit einer Fehlermeldung abgelehnt. Dies kann zu Problemen führen, wenn Sie ein schwaches Passwort in Verbindung mit Software verwenden, die MySQL-Zugangsdaten automatisch konfiguriert, wie beispielsweise die Ubuntu-Pakete für phpMyAdmin. Die Deaktivierung der Validierung ist unbedenklich, dennoch sollten Sie für die Datenbankauthentifizierung stets starke, einzigartige Passwörter verwenden.
Beantworten Sie mit „y“ für Ja oder mit einer beliebigen anderen Antwort, ohne die Aktivierungsfunktion zu aktivieren.
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No:Sie werden aufgefordert, eine Passwortvalidierungsstufe auszuwählen. Beachten Sie, dass Sie bei Eingabe von 2 für die höchste Sicherheitsstufe eine Fehlermeldung erhalten, wenn Sie ein Passwort festlegen, das keine Zahlen, Groß- und Kleinbuchstaben, Sonderzeichen oder Wörter aus dem Wörterbuch enthält.
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1Wenn die Passwortverifizierung aktiviert ist, wird ein sicheres Passwort für das bestehende Root-Passwort angezeigt und Sie werden gefragt, ob Sie es ändern möchten. Wenn Sie mit Ihrem aktuellen Passwort zufrieden sind, geben Sie an der Eingabeaufforderung “n” für „nein“ ein.
Bei den übrigen Fragen drücken Sie bitte jeweils „J“ und anschließend die Eingabetaste. Dadurch werden einige anonyme Benutzer und die Testdatenbank entfernt, die Remote-Root-Anmeldung deaktiviert und die neuen Regeln geladen, sodass MySQL die vorgenommenen Änderungen sofort übernimmt.
An diesem Punkt ist Ihr Datenbanksystem betriebsbereit und wir können fortfahren.
Schritt 3 – PHP installieren
PHP ist der Teil unserer Infrastruktur, der Code verarbeitet, um dynamische Inhalte anzuzeigen. Es kann Skripte ausführen, Verbindungen zu MySQL-Datenbanken herstellen, um Informationen abzurufen, und die verarbeiteten Inhalte zur Anzeige an unseren Webserver übermitteln.
Wir können unsere Komponenten wieder über das apt-System installieren. Außerdem werden wir einige Hilfspakete hinzufügen, damit der PHP-Code auf dem Apache-Server ausgeführt werden und mit unserer MySQL-Datenbank kommunizieren kann:
$ sudo apt-get install php libapache2-mod-php php-mcrypt php-mysqlDadurch sollte PHP problemlos installiert werden. Wir werden das gleich testen.
In den meisten Fällen möchten wir die Art und Weise ändern, wie Apache Dateien ausliefert, wenn ein Verzeichnis angefordert wird. Aktuell sucht Apache bei einer Verzeichnisanfrage zunächst nach einer Datei namens index.html. Wir möchten unseren Webserver anweisen, PHP-Dateien zu bevorzugen, sodass Apache zuerst nach einer index.php-Datei sucht.
Geben Sie dazu folgenden Befehl ein, um die Datei dir.conf in einem Texteditor mit Root-Rechten zu öffnen:
$ sudo nano /etc/apache2/mods-enabled/dir.confEs wird folgendermaßen aussehen:
Wir möchten die oben hervorgehobene PHP-Verzeichnisdatei an die erste Position nach der DirectoryIndex-Spezifikation verschieben, und zwar so:
Wenn Sie fertig sind, speichern Sie die Datei und schließen Sie sie mit Strg+X. Um den Speicherort zu bestätigen, geben Sie Y ein und drücken Sie die Eingabetaste.
Anschließend muss der Apache-Webserver neu gestartet werden, damit die Änderungen wirksam werden. Geben Sie dazu Folgendes ein:
$ sudo systemctl restart apache2Wir können den Status des Apache2-Dienstes auch mit systemctl überprüfen:
$ sudo systemctl status apache2Sample Output
● apache2.service – LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Wed 2016-04-13 14:28:43 EDT; 45s ago
Docs: man:systemd-sysv-generator(8)
Process: 13581 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 13605 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Tasks: 6 (limit: 512)
CGroup: /system.slice/apache2.service
├─۱۳۶۲۳ /usr/sbin/apache2 -k start
├─۱۳۶۲۶ /usr/sbin/apache2 -k start
├─۱۳۶۲۷ /usr/sbin/apache2 -k start
├─۱۳۶۲۸ /usr/sbin/apache2 -k start
├─۱۳۶۲۹ /usr/sbin/apache2 -k start
└─۱۳۶۳۰ /usr/sbin/apache2 -k start
Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Stopped LSB: Apache2 web server.
Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Starting LSB: Apache2 web server…
Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]: * Starting Apache httpd web server apache2
Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]: AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerNam
Apr 13 14:28:43 ubuntu-16-lamp apache2[13605]: *
Apr 13 14:28:43 ubuntu-16-lamp systemd[1]: Started LSB: Apache2 web server.PHP-Module installieren
Um die PHP-Performance zu steigern, können optional zusätzliche Module installiert werden.
Um die verfügbaren Optionen für PHP-Module und -Bibliotheken anzuzeigen, können Sie die Suchergebnisse für apt-cache in less eingeben, einem Pager, mit dem Sie durch die Ausgabe anderer Befehle scrollen können:
$ apt-cache search php- | lessVerwenden Sie die Pfeiltasten, um sich nach oben und unten zu bewegen, und q zum Beenden.
Die Ergebnisse zeigen alle optionalen Komponenten, die Sie installieren können. Für jede Komponente wird eine kurze Beschreibung angezeigt:
libnet-libidn-perl – Perl bindings for GNU Libidn
php-all-dev – package depending on all supported PHP development packages
php-cgi – server-side, HTML-embedded scripting language (CGI binary) (default)
php-cli – command-line interpreter for the PHP scripting language (default)
php-common – Common files for PHP packages
php-curl – CURL module for PHP [default]
php-dev – Files for PHP module development (default)
php-gd – GD module for PHP [default]
php-gmp – GMP module for PHP [default]
…
:Um mehr Informationen über die Funktion der einzelnen Module zu erhalten, können Sie im Internet suchen oder die ausführliche Paketbeschreibung aufrufen, indem Sie Folgendes eingeben:
$ apt-cache show package_nameEs wird eine umfangreiche Ausgabe geben, die ein Feld namens Description-en enthält, welches eine ausführlichere Erläuterung der Funktionalität des Moduls bietet.
Um beispielsweise herauszufinden, was das php-cli-Modul bewirkt, können wir Folgendes eingeben:
$ apt-cache show php-cliNeben einer Fülle weiterer Informationen finden Sie dort unter anderem Folgendes:
Output
…
Description-en: command-line interpreter for the PHP scripting language (default)
This package provides the /usr/bin/php command interpreter, useful for
testing PHP scripts from a shell or performing general shell scripting tasks.
.
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
open source general-purpose scripting language that is especially suited
for web development and can be embedded into HTML.
.
This package is a dependency package, which depends on Debian’s default
PHP version (currently 7.0).
…Wenn Sie sich nach Ihren Recherchen für die Installation eines Pakets entscheiden, können Sie dies mit dem Befehl apt-get install tun, genau wie wir es auch bei unserer anderen Software tun würden.
Wenn wir uns für php-cli entscheiden, können wir Folgendes eingeben:
$ sudo apt-get install php-cliWenn Sie mehr als ein Modul installieren möchten, können Sie dies tun, indem Sie jedes Modul durch ein Leerzeichen getrennt auflisten und anschließend den Befehl `apt-get install` ausführen, wie folgt:
$ sudo apt-get install package1 package2 …An diesem Punkt ist Ihr LAMP-Framework installiert und konfiguriert. Wir müssen unser PHP noch testen.
Schritt 4 – Testen Sie die PHP-Verarbeitung auf Ihrem Webserver
Um zu testen, ob unser System für PHP richtig konfiguriert ist, können wir ein sehr einfaches PHP-Skript erstellen.
Wir nennen dieses Skript info.php. Damit Apache die Datei findet und korrekt ausliefern kann, muss sie in einem speziellen Ordner namens Web-Root gespeichert werden.
In Ubuntu 16.04 befindet sich dieses Verzeichnis unter /var/www/html/. Wir können die Datei an diesem Ort erstellen, indem wir Folgendes eingeben:
$ sudo nano /var/www/html/info.phpDadurch wird eine leere Datei geöffnet. Wir möchten den folgenden Text, der gültiger PHP-Code ist, in die Datei einfügen:
Wenn Sie fertig sind, speichern und schließen Sie die Datei.
Nun können wir testen, ob unser Webserver die vom PHP-Skript generierten Inhalte korrekt anzeigen kann. Dazu rufen wir einfach diese Seite in unserem Webbrowser auf. Sie benötigen dafür erneut die öffentliche IP-Adresse Ihres Servers.
Die Adresse, die Sie besuchen möchten, lautet:
http://your_server_IP_address/info.phpDie Seite, auf die Sie gelangen, sollte in etwa so aussehen:

Die Seite, auf die Sie gelangen, sollte in etwa so aussehen:
Diese Seite liefert Ihnen Informationen über Ihren Server aus PHP-Sicht. Sie ist hilfreich beim Debuggen und um sicherzustellen, dass Ihre Einstellungen korrekt angewendet werden.
Wenn dies erfolgreich war, funktioniert Ihr PHP wie erwartet.
Sie sollten diese Datei nach diesem Experiment wahrscheinlich löschen, da sie möglicherweise Informationen über Ihren Server an unbefugte Benutzer weitergibt. Geben Sie dazu Folgendes ein:
$ sudo rm /var/www/html/info.phpSie können diese Seite jederzeit neu erstellen, falls Sie die Informationen erneut benötigen.










2-Kommentare
Vielen Dank, ein sehr schöner Blog!
Wenn jemand eine Expertenmeinung zum Thema Bloggen benötigt, dann rate ich ihm/ihr
Um kurz auf dieser Webseite vorbeizuschauen: Weiter so!.