Vorraussetzung

Um dieses Tutorial folgen zu können, benötigen Sie einen Debian 11 Server mit einen nicht Root-User welcher „sudo“ Rechte Besitzt und einer einfachen Firewall. Dies kann mithilfe des Tutorial Ersteinrichtung eines Debian 11 Servers konfiguriert werden.

Durchführung

Schritt 1 – Sicherstellung auf Aktualität des Systems

Vor der Installation vom LAMP-System rate ich Ihnen ihre System Paketlisten zu aktualisieren. Um diesen Befehl auszuführen müssen Sie vor dem Befehl sudo schreiben. Beim erstmaligen ausführen des Befehls werden Sie nach Ihrem Passwort gefragt, da Sie nur mit Root-Rechten arbeiten.

Um die aktuellen Pakete abzurufen, geben Sie folgenden Befehl ein:

sudo apt update

Nun kann Ihr System Ihnen sagen, dass es Updates für bereits installierte Pakete existiert. Falls dies so ist, können Sie folgenden Befehl eingeben.

sudo apt upgrade -y

Schritt 2 – Installation Apache und Einstellung der Firewall Regeln für Apache

Nun können Sie den Apache Webserver installieren. Hierfür führen Sie folgenden Befehl aus.

sudo apt install apache2 -y

Nach dem die Installation abgeschlossen ist, müssen Sie nun den Webserver bei Ihrer Firewall freischalten. Hierfür geben Sie folgenden Befehl ein:

sudo ufw allow in "WWW Full"

Sie können nun überprüfen, ob alles wie geplant funktioniert hat. Indem Sie die öffentliche IP-Adresse Ihres Servers in Ihrem Webbrowser aufrufen:

http://IHREÖFFENTLICHEIPADRESSE

Nun wird Ihnen die Standardmäßige Apache Webseite angezeigt. Dies sollte wie folgt aussehen:

Schritt 2 – Installation MariaDB

Nach dem Sie nun erfolgreich den Apache Webserver installiert haben, können Sie nun beginnen den Datenbank Server zu installieren. In diesem Tutorial nutzen wir MariaDB, welches ein Community Fork von MySQL ist.

Um die MariaDB Software zu installieren, müssen Sie folgenden Befehl ausführen:

sudo apt install mariadb-server -y

Nach dem die Software installiert wurde, sollten Sie das mit erstellte Sicherheitsskript ausführen. Dieses Skript wird einige unsichere Standardeinstellungen entfernen und den Zugriff auf Ihr Datenbanksystem sperren.

Starten Sie das interaktive Skript durch ausführen des folgenden Befehls:

sudo mysql_secure_installation

Dieses Skript führt Sie durch eine Reihe von Eingabeaufforderungen, indem Sie einige Änderungen an Ihrer MariaDB Einrichtung vornehmen können.
Bei der Ersten Aufforderung werden Sie dazu aufgefordert, dass aktuelle Root-Passwort von MariaDB einzugeben. Dies ist nicht zu verwechseln mit dem System-Root Passwort.

Der Datenbank-Root Benutzer ist ein administrativer Benutzer mit vollen Rechten für das Datenbanksystem.

Da Sie MariaDB gerade erst installiert haben und noch keine Änderungen vorgenommen haben, ist dieses Passwort derzeit noch nicht gesetzt. Daher können Sie diese Eingabeaufforderung mit ENTER überspringen.

Bei der nächsten Aufforderung werden Sie gefragt, ob Sie ein Datenbank-Root Passwort einrichten wollen.

Schritt 3 – Installation von PHP

Sie haben bereits Apache für die Bereitstellung Ihrer Inhalte und MariaDB für die Speicherung und Verwaltung Ihrer Daten installiert. PHP ist die Komponente von LDAP, die den Code verarbeitet, um dynamische Inhalte für den Endbenutzer anzuzeigen. Es kann Skripte ausführen, eine Verbindung zu Ihren MariaDB-Datenbanken herstellen, um Informationen abzurufen, und die verarbeiteten Inhalte zur Anzeige an Ihren Webserver weitergeben.

Zusätzlich zum PHP-Paket benötigen Sie libapache2-mod-php damit Apache mit PHP-Dateien umgehen kann. Die wichtigsten PHP-Pakete werden automatisch als Abhängigkeiten installiert.

Um die Pakete zu installieren, führen Sie folgenden Befehl aus:

sudo apt install php libapache2-mod-php php-mysql php-mbstring php-zip php-gd

Nach der Installation können Sie mit folgenden Befehl prüfen, welche PHP Version Sie installiert haben:

php -v

Schritt 4 – Erstellen eines virtuellen Hosts für phpMyAdmin

phpMyAdmin wurde entwickelt, damit Benutzer über eine Weboberfläche mit MySQL und MariaDB interagieren können.

Zunächst müssen Sie die aktuellste Version von phpMyAdmin mittels des folgenden Befehls auf Ihren Server herunterladen:

wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip -O phpmyadmin.zip

Nachdem die ZIP-Datei erfolgreich auf Ihren Server heruntergeladen hat, müssen Sie diese extrahieren. Dies können Sie mit Hilfe des folgenden Befehls:

unzip phpmyadmin.zip

Nachdem Sie die ZIP-Datei entpackt haben, können Sie diese von Ihrem Server mit dem folgenden Befehl löschen:

rm phpmyadmin.zip

Führen Sie jetzt den folgenden Befehl aus. Dadurch wird das Verzeichnis phpMyAdmin-5.2.1-all-languages und alle Unterverzeichnisse in das Verzeichnis /usr/share/ verschoben, den Ort, an den phpMyAdmin standardmäßig seine Konfigurationsdateien erwartet. Außerdem wird das Verzeichnis an dieser Stelle einfach in phpmyadmin umbenannt:

sudo mv phpMyAdmin-*-all-languages/ /usr/share/phpmyadmin

Anschließend müssen Sie noch einen Ordner erstellen für Temporäre Dateien. Dies machen Sie mit dem Befehl:

sudo mkdir -p /var/lib/phpmyadmin/tmp

Nachdem Sie den Ordner erstellt haben, müssen Sie nun den Besitzer des Ordners auf www-data setzen. Dies geschieht mithilfe des folgenden Befehls:

sudo chown -R www-data:www-data /var/lib/phpmyadmin

In den Ordner von phpMyAdmin befindet sich eine Beispielkonfigurationsdatei, welche Sie als Basiskonfigurationsdatei verwenden können. Erstellen Sie eine Kopie dieser Datei und benennen Sie die Datei in config.inc.php mit folgenden Befehl um:

sudo cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

Anschließend öffnen Sie die Datei entweder mittels FTP oder per Konsole mit folgenden Befehl:

sudo nano /usr/share/phpmyadmin/config.inc.php

Zunächst müssen Sie für die Blowfish-Verschlüsselung einen sogenannten Blowfish-Secret setzen. Hierfür müssen Sie in der Datei an folgender Stelle ein 32 Stelliges Passwort wählen:

. . .
$cfg['blowfish_secret'] = 'ZEICHENFOLGEAUSZWEIUNDDREISSIGZUFÄLLIGENZEICHEN'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
. . .

Nachdem Sie das Blowfish-Secret gesetzt haben, müssen Sie noch den erstellten tmp-Ordner in der Konfigurationsdatei angeben:

. . .
$cfg['TempDir'] = '/var/lib/phpmyadmin/tmp';

Nun müssen Sie die Konfigurationsdatei speichern. Wenn Sie in der Konsole die Datei mit nano geöffnet haben, müssen Sie zunächst Strg + X drücken, gefolgt von der Eingabe von einen Y als Bestätigung das Sie die Datei speichern wollen.

Nachdem Sie die Konfigurationsdatei erstellt haben, müssen Sie jetzt einen Virtuellen Host erstellen für phpMyAdmin in Apache.

Hierfür müssen Sie eine Datei mit den Namen phpmyadmin.conf im Ordner /etc/apache2/sites-available/ erstellen:

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

Danach fügen Sie folgenden Text in die Datei ein:

<VirtualHost *:80>
        ServerName phpmyadmin.ihre_domain

        ServerAdmin webmaster@localhost
        DocumentRoot /usr/share/phpmyadmin

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Zum aktivieren der Konfigurationsdatei geben Sie folgenden Befehl ein:

sudo a2ensite phpmyadmin

Zu Letzt müssen Sie nun den Apache Webserver neu starten mit folgenden Befehl:

sudo systemctl reload apache2

Schritt 5 – Erstellen eines virtuellen Hosts für Ihre Webseite

Zum erstellen eines virtuellen Hosts für Ihre Webseite müssen Sie zunächst einen Ordner erstellen im /var/www/ Verzeichnis. Hierfür geben Sie folgenden Befehl ein:

sudo mkdir /var/www/ihre_domain

Als nächstes setzen Sie ihren Benutzer als Ordner Besitzer mit folgenden Befehl:

sudo chown -R $USER:$USER /var/www/ihre_domain

Jetzt müssen Sie eine neue Konfigurationsdatei für Ihre Domain im Ordner /etc/apache2/sites-available/ erstellen. Indem Sie folgenden Befehl ausführen:

sudo nano /etc/apache2/sites-available/ihre_domain.conf

In dieser Datei fügen Sie folgenden Text ein:

<VirtualHost *:80>
    ServerName ihre_domain
    ServerAlias www.ihre_domain 
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/ihre_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Zum aktivieren der Konfigurationsdatei geben Sie folgenden Befehl ein:

sudo a2ensite ihre_domain

Im nächsten Schritt können Sie nun Prüfen ob die von Ihnen erstellte Datei frei von Fehlern ist indem Sie folgenden Befehl ausführen:

sudo apache2ctl configtest

Zu Letzt müssen Sie nun den Apache Webserver neu starten mit folgenden Befehl:

sudo systemctl reload apache2