LAMP Stack

LAMP-Stack auf Ubuntu 20.04 Server/Desktop installieren

Dieses Tutorial zeigt Ihnen, wie Sie den LAMP-Stack unter Ubuntu 20.04 LTS installieren.

Ein Software-Stack ist ein Satz von Software-Tools, die zusammen gebündelt werden. LAMP steht für Linux, Apache, MariaDB/MySQL und PHP, die alle quelloffen und frei nutzbar sind. Es ist der gängigste Software-Stack, der dynamische Websites und Webanwendungen betreibt. Linux ist das Betriebssystem, Apache ist der Webserver, MariaDB/MySQL ist der Datenbankserver und PHP ist die serverseitige Skriptsprache, die für die Erstellung dynamischer Webseiten zuständig ist.

Voraussetzungen
Um diesem Tutorial zu folgen, benötigen Sie ein Ubuntu 20.04 Betriebssystem, das auf Ihrem lokalen Computer oder auf einem entfernten Server läuft.

Schritt 1: Software-Pakete aktualisieren

Bevor wir den LAMP-Stack installieren, ist es eine gute Idee, das Repository und die Softwarepakete zu aktualisieren. Führen Sie die folgenden Befehle auf Ihrem Ubuntu 20.04-Betriebssystem aus.

sudo apt update
sudo apt upgrade

Schritt 2: Apache-Webserver installieren

Geben Sie den folgenden Befehl ein, um den Apache-Webserver zu installieren. Das Paket apache2-utils installiert einige nützliche Dienstprogramme wie das Apache HTTP Server Benchmarking Tool.

sudo apt install -y apache2 apache2-utils

Nach der Installation sollte der Apache automatisch gestartet werden. Überprüfen Sie seinen Status mit systemctl.

systemctl status apache2

Beispiel Ausgabe:

● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-04-11 11:31:31 CST; 2s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 53003 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 53011 (apache2)
      Tasks: 55 (limit: 19072)
     Memory: 6.4M
     CGroup: /system.slice/apache2.service
             ├─53011 /usr/sbin/apache2 -k start
             ├─53012 /usr/sbin/apache2 -k start
             └─53013 /usr/sbin/apache2 -k start

Tipp: Wenn der obige Befehl nicht sofort beendet wird, können Sie die Taste Q drücken, um die Kontrolle über das Terminal zurückzugewinnen.
Wenn es nicht läuft, verwenden Sie systemctl, um es zu starten.

sudo systemctl start apache2

Es ist auch eine gute Idee, den automatischen Start des Apache beim Systemstart zu aktivieren.

sudo systemctl enable apache2

Prüfen Sie die Apache-Version:

apache2 -v

Ausgabe:

Server version: Apache/2.4.41 (Ubuntu)
Server built:   2020-03-05T18:51:00

Geben Sie nun die öffentliche IP-Adresse Ihres Ubuntu 20.04-Servers in die Adresszeile des Browsers ein. Sie sollten die “It works!” Webseite sehen, was bedeutet, dass der Apache-Webserver ordnungsgemäß läuft. Wenn Sie LAMP auf Ihrem lokalen Ubuntu 20.04 Computer installieren, geben Sie 127.0.0.1 oder localhost in die Adresszeile des Browsers ein.

Ubuntu 20.04 LAMP Stack

Wenn die Verbindung verweigert wird oder nicht zustande kommt, kann es sein, dass eine Firewall eingehende Anfragen an TCP-Port 80 verhindert. Wenn Sie eine iptables-Firewall verwenden, müssen Sie den folgenden Befehl ausführen, um TCP-Port 80 zu öffnen.

sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT

Wenn Sie die UFW-Firewall verwenden, führen Sie diesen Befehl aus, um den TCP-Port 80 zu öffnen.

sudo ufw allow http

Nun müssen wir www-data (Apache-Benutzer) als Eigentümer des Dokumentenstammsatzes (auch bekannt als Web-Root) festlegen. Standardmäßig ist es im Besitz des Root-Benutzers.

sudo chown www-data:www-data /var/www/html/ -R

Standardmäßig verwendet der Apache den Systemhostnamen als globalen Servernamen. Wenn der System-Hostname nicht im DNS aufgelöst werden kann, wird nach der Ausführung des Befehls sudo apache2ctl -t wahrscheinlich die folgende Fehlermeldung angezeigt.

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

Um dieses Problem zu lösen, können wir im Apache einen globalen ServerName festlegen. Verwenden Sie den Nano-Befehlszeilen-Editor, um eine neue Konfigurationsdatei zu erstellen.

sudo nano /etc/apache2/conf-available/servername.conf

Fügen Sie die folgende Zeile in diese Datei ein.

ServerName localhost

Speichern und schließen Sie die Datei. Um eine Datei im Nano-Texteditor zu speichern, drücken Sie Strg+O und dann zur Bestätigung die Eingabetaste. Zum Beenden drücken Sie Strg+X. Aktivieren Sie dann diese Konfigurationsdatei.

sudo a2enconf servername.conf

Laden Sie den Apache neu, damit die Änderung wirksam wird.

sudo systemctl reload apache2

Wenn Sie nun den Befehl sudo apache2ctl -t erneut ausführen, wird die obige Fehlermeldung nicht mehr angezeigt.

Schritt 3: MariaDB-Datenbankserver installieren

MariaDB ist ein Drop-in-Ersatz für MySQL. Er wurde von ehemaligen Mitgliedern des MySQL-Teams entwickelt, die befürchten, dass Oracle MySQL in ein Closed-Source-Produkt verwandeln könnte. Geben Sie den folgenden Befehl ein, um MariaDB auf Ubuntu 20.04 zu installieren.

sudo apt install mariadb-server mariadb-client

Nach der Installation sollte der MariaDB-Server automatisch gestartet werden. Verwenden Sie systemctl, um seinen Status zu überprüfen.

systemctl status mariadb

Ausgabe:

● mariadb.service - MariaDB 10.3.22 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-04-10 14:19:16 UTC; 18s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 9161 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 31 (limit: 9451)
     Memory: 64.7M
     CGroup: /system.slice/mariadb.service
             └─9161 /usr/sbin/mysqld

Wenn er nicht läuft, starten Sie ihn mit diesem Befehl:

sudo systemctl start mariadb

Um MariaDB beim Booten automatisch starten zu lassen, führen Sie

sudo systemctl enable mariadb

Führen Sie nun das Sicherheitsskript für die Nachinstallation aus.

sudo mysql_secure_installation

Wenn Sie aufgefordert werden, das MariaDB-Root-Passwort einzugeben, drücken Sie die Eingabetaste, da das Root-Passwort noch nicht festgelegt ist. Geben Sie dann y ein, um das Root-Passwort für den MariaDB-Server festzulegen.

Ubuntu 20.04 LAMP Stack installieren MariaDB

Als nächstes können Sie die Eingabetaste drücken, um alle verbleibenden Fragen zu beantworten, wodurch der anonyme Benutzer entfernt, die Remote-Root-Anmeldung deaktiviert und die Testdatenbank entfernt wird. Dieser Schritt ist eine Grundvoraussetzung für die Sicherheit der MariaDB-Datenbank. (Beachten Sie, dass Y großgeschrieben ist, was bedeutet, dass es sich um die Standardantwort handelt).

LAMP Stack auf Ubuntu 20.04 installieren MariaDB Server

Standardmäßig verwendet das MariaDB-Paket unter Ubuntu unix_socket zur Authentifizierung der Benutzeranmeldung, was im Grunde bedeutet, dass Sie sich mit dem Benutzernamen und dem Passwort des Betriebssystems bei der MariaDB-Konsole anmelden können. Sie können also den folgenden Befehl ausführen, um sich ohne Angabe des MariaDB-Root-Passworts anzumelden.

sudo mariadb -u root

Zum Beenden, führen Sie

exit;

Prüfen Sie die Versionsinformationen des MariaDB-Servers.

mariadb --version

Wie Sie sehen können, haben wir MariaDB 10.3.22 installiert.

mariadb  Ver 15.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Schritt 4: Installieren Sie PHP7.4

Zum Zeitpunkt der Erstellung dieses Artikels ist PHP7.4 die neueste stabile Version von PHP und hat einen kleinen Leistungsvorteil gegenüber PHP7.3. Geben Sie den folgenden Befehl ein, um PHP7.4 und einige gängige PHP-Module zu installieren.

sudo apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline

Aktivieren Sie das Apache-Modul php7.4 und starten Sie den Apache-Webserver neu.

sudo a2enmod php7.4
sudo systemctl restart apache2

Prüfen Sie die PHP-Versionsinformationen.

php --version

Ausgabe:

PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
To test PHP scripts with Apache server, we need to create a info.php file in the document root directory.
sudo nano /var/www/html/info.php

Fügen Sie den folgenden PHP-Code in die Datei ein.


Um eine Datei im Nano-Texteditor zu speichern, drücken Sie Strg+O und bestätigen Sie mit Enter. Zum Beenden drücken Sie Strg+X. Geben Sie nun in der Adressleiste des Browsers server-ip-address/info.php ein. Ersetzen Sie server-ip-address durch Ihre tatsächliche IP-Adresse. Wenn Sie diese Anleitung auf Ihrem lokalen Computer durchführen, geben Sie 127.0.0.1/info.php oder localhost/info.php ein.

Sie sollten die PHP-Informationen Ihres Servers sehen. Das bedeutet, dass PHP-Skripte mit dem Apache-Webserver ordnungsgemäß ausgeführt werden können.

Ubuntu 20.04 LAMP PHP

Wie man PHP-FPM mit Apache ausführt

Es gibt grundsätzlich zwei Möglichkeiten, PHP-Code mit dem Apache-Webserver auszuführen:

  • Apache PHP module
  • PHP-FPM

In den obigen Schritten wird das Apache-Modul PHP7.4 für die Verarbeitung von PHP-Code verwendet, was normalerweise in Ordnung ist. Aber in manchen Fällen müssen Sie den PHP-Code stattdessen mit PHP-FPM ausführen. So geht’s.

Deaktivieren Sie das Apache PHP7.4-Modul.

sudo a2dismod php7.4

Installieren Sie PHP-FPM.

sudo apt install php7.4-fpm

Aktivieren Sie die Module proxy_fcgi und setenvif.

sudo a2enmod proxy_fcgi setenvif

Aktivieren Sie die Konfigurationsdatei /etc/apache2/conf-available/php7.4-fpm.conf.

sudo a2enconf php7.4-fpm

Starten Sie den Apache neu, damit die Änderungen wirksam werden.

sudo systemctl restart apache2

Wenn Sie nun die Seite info.php in Ihrem Browser aktualisieren, werden Sie feststellen, dass die Server-API von Apache 2.0 Handler zu FPM/FastCGI geändert wurde, was bedeutet, dass der Apache-Webserver PHP-Anfragen an PHP-FPM weiterleitet.

Ubuntu 20.04 LAMP PHP FPM

Herzlichen Glückwunsch! Sie haben erfolgreich den LAMP-Stack (Apache, MariaDB und PHP7.4) auf Ubuntu 20.04 installiert. Um die Sicherheit Ihres Servers zu gewährleisten, sollten Sie jetzt die Datei info.php löschen, um neugierige Blicke zu vermeiden.

sudo rm /var/www/html/info.php