Einleitung

Ein «LAMP»-Stack ist eine Gruppe von Open-Source-Software, die in der Regel zusammen installiert wird, um einen Server zum Hosten dynamischer Websites und in PHP geschriebener Webanwendungen zu befähigen. Dieser Begriff ist ein Akronym, das für das Linux-Betriebssystem und den Apache-Webserver steht. Die Daten der Website werden in einer MySQL-Datenbank gespeichert, und dynamische Inhalte werden von PHP verarbeitet.

In dieser Anleitung werden Sie einen LAMP-Stack auf einem Ubuntu 22.04-Server einrichten.

Voraussetzungen

Um dieses Tutorial durchzuführen, benötigen Sie einen Ubuntu 22.04 Server mit einem nicht-root sudo-aktivierten Benutzerkonto und einer einfachen Firewall.

Schritt 1 – Installieren von Apache und Aktualisieren der Firewall

Der Apache-Webserver gehört zu den beliebtesten Webservern der Welt. Er ist gut dokumentiert, hat eine aktive Benutzergemeinschaft und wird seit der Entstehung des Internets häufig verwendet, was ihn zu einer guten Wahl für das Hosting einer Website macht.

Beginnen Sie damit, den Cache des Paketmanagers zu aktualisieren. Wenn Sie sudo zum ersten Mal in dieser Sitzung verwenden, werden Sie aufgefordert, das Passwort Ihres Benutzers einzugeben, um zu bestätigen, dass Sie die richtigen Rechte haben, um Systempakete mit apt zu verwalten:

sudo apt update

Dann installieren Sie Apache mit:

sudo apt install apache2

Sie werden nun aufgefordert, die Installation des Apache zu bestätigen. Bestätigen Sie mit Y und drücken Sie dann ENTER.

Sobald die Installation abgeschlossen ist, müssen Sie Ihre Firewall-Einstellungen anpassen, um HTTP-Verkehr zuzulassen. Das Standard-Firewall-Konfigurationstool von Ubuntu heisst Uncomplicated Firewall (UFW). Es verfügt über verschiedene Anwendungsprofile, die Sie nutzen können. Um alle derzeit verfügbaren UFW-Anwendungsprofile aufzulisten, führen Sie diesen Befehl aus:

sudo ufw app list
Output
Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

Im Folgenden wird erläutert, was die einzelnen Profile bedeuten:

  • Apache: Dieses Profil öffnet nur Port 80 (normaler, unverschlüsselter Webverkehr).
  • Apache Full: Dieses Profil öffnet sowohl Port 80 (normaler, unverschlüsselter Webverkehr) als auch Port 443 (TLS/SSL-verschlüsselter Verkehr).
  • Apache Sicher: Dieses Profil öffnet nur Port 443 (TLS/SSL-verschlüsselter Datenverkehr).

Im Moment ist es am besten, nur Verbindungen über Port 80 zuzulassen, da es sich um eine neue Apache-Installation handelt und Sie noch kein TLS/SSL-Zertifikat konfiguriert haben, um HTTPS-Datenverkehr auf Ihrem Server zuzulassen.

Um nur Datenverkehr auf Port 80 zuzulassen, verwenden Sie das Apache-Profil:

sudo ufw allow in "Apache"

Überprüfen Sie die Änderung mit:

sudo ufw status
Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                                
Apache                     ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)                    
Apache (v6)                ALLOW       Anywhere (v6)     

Der Datenverkehr auf Port 80 ist nun durch die Firewall zugelassen.

Sie können sofort stichprobenartig überprüfen, ob alles wie geplant funktioniert hat, indem Sie die öffentliche IP-Adresse Ihres Servers in Ihrem Webbrowser aufrufen (lesen Sie den Hinweis unter der nächsten Überschrift, um herauszufinden, wie Ihre öffentliche IP-Adresse lautet, falls Sie diese Information nicht bereits haben):

http://ip_des_servers

Die Standard-Apache-Webseite von Ubuntu 22.04 dient nur zu Informations- und Testzwecken. Nachfolgend finden Sie ein Beispiel für die Apache-Standardwebseite:

Wenn Sie diese Seite sehen können, ist Ihr Webserver korrekt installiert und über Ihre Firewall erreichbar.

Schritt 2 – Installation von MySQL

Nachdem Sie nun einen Webserver eingerichtet haben, müssen Sie das Datenbanksystem installieren, um die Daten für Ihre Website speichern und verwalten zu können. MySQL ist ein beliebtes Datenbankmanagementsystem, das in PHP-Umgebungen eingesetzt wird.

Auch hier verwenden Sie apt, um diese Software zu erwerben und zu installieren:

sudo apt install mysql-server

Wenn Sie dazu aufgefordert werden, bestätigen Sie die Installation durch Eingabe von Y und dann ENTER.

Wenn die Installation abgeschlossen ist, wird empfohlen, ein Sicherheitsskript auszuführen, das mit MySQL vorinstalliert ist. Dieses Skript wird einige unsichere Standardeinstellungen entfernen und den Zugriff auf Ihr Datenbanksystem sperren. Starten Sie das interaktive Skript durch Ausführen von

sudo mysql_secure_installation

Hier werden Sie gefragt, ob Sie das VALIDATE PASSWORD PLUGIN konfigurieren möchten.

Antworten Sie Y für Ja oder etwas anderes, um ohne Aktivierung fortzufahren.

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:

Wenn Sie mit «Ja» antworten, werden Sie aufgefordert, eine Stufe der Passwortüberprüfung auszuwählen. Denken Sie daran, dass Sie, wenn Sie 2 für die stärkste Stufe eingeben, Fehler erhalten, wenn Sie versuchen, ein Kennwort festzulegen, das keine Zahlen, Gross- und Kleinbuchstaben und Sonderzeichen 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: 1

Unabhängig davon, ob Sie sich für die Einrichtung des VALIDATE PASSWORD PLUGIN entschieden haben, wird Ihr Server Sie als nächstes auffordern, ein Passwort für den MySQL-Root-Benutzer auszuwählen und zu bestätigen. Dies ist nicht zu verwechseln mit dem System-Root. Der Datenbank-Root-Benutzer ist ein administrativer Benutzer mit vollen Rechten für das Datenbanksystem. Auch wenn die Standard-Authentifizierungsmethode für den MySQL-Root-Benutzer kein Kennwort vorsieht, sollten Sie hier als zusätzliche Sicherheitsmassnahme ein sicheres Kennwort festlegen.

Wenn Sie die Passwortüberprüfung aktiviert haben, wird Ihnen die Passwortstärke für das soeben eingegebene Root-Passwort angezeigt und Ihr Server fragt Sie, ob Sie mit diesem Passwort fortfahren möchten. Wenn Sie mit Ihrem aktuellen Passwort zufrieden sind, geben Sie bei der Aufforderung Y für «Ja» ein:

Estimated strength of the password: 100 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

Bei den restlichen Fragen drücken Sie Y und bei jeder Eingabeaufforderung die ENTER-Taste. Dadurch werden einige anonyme Benutzer und die Testdatenbank entfernt, die Remote-Root-Anmeldungen deaktiviert und die neuen Regeln geladen, so dass MySQL die von Ihnen vorgenommenen Änderungen sofort berücksichtigt.

Wenn Sie fertig sind, testen Sie, ob Sie sich an der MySQL-Konsole anmelden können, indem Sie Folgendes eingeben

sudo mysql

Dadurch wird eine Verbindung zum MySQL-Server als administrativer Datenbankbenutzer root hergestellt, was durch die Verwendung von sudo beim Ausführen dieses Befehls angezeigt wird. Nachfolgend finden Sie eine Beispielausgabe:

Output
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.28-0ubuntu4 (Ubuntu)

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

Um die MySQL-Konsole zu beenden, geben Sie ein:

exit

Beachten Sie, dass Sie kein Passwort angeben müssen, um sich als Root-Benutzer anzumelden, obwohl Sie eines beim Ausführen des Skripts mysql_secure_installation definiert haben. Das liegt daran, dass die Standard-Authentifizierungsmethode für den administrativen MySQL-Benutzer unix_socket und nicht das Passwort ist. Auch wenn dies wie ein Sicherheitsrisiko erscheinen mag, macht es den Datenbankserver sicherer, weil die einzigen Benutzer, die sich als root-MySQL-Benutzer anmelden dürfen, Systembenutzer mit sudo-Rechten sind, die sich von der Konsole aus oder über eine Anwendung mit denselben Rechten anmelden. In der Praxis bedeutet das, dass Sie nicht in der Lage sind, den administrativen Datenbank-Root-Benutzer zu verwenden, um sich von Ihrer PHP-Anwendung aus zu verbinden. Das Festlegen eines Passworts für das MySQL-Root-Konto dient als Schutz, falls die Standard-Authentifizierungsmethode von unix_socket auf Passwort geändert wird.

Um die Sicherheit zu erhöhen, ist es am besten, für jede Datenbank ein eigenes Benutzerkonto mit weniger weitreichenden Rechten einzurichten, vor allem, wenn Sie mehrere Datenbanken auf Ihrem Server hosten lassen wollen.

Ihr MySQL-Server ist nun installiert und gesichert. Als Nächstes werden Sie PHP installieren, die letzte Komponente des LAMP-Stacks.

Schritt 3 – Installation von PHP

Sie haben Apache für die Bereitstellung Ihrer Inhalte und MySQL für die Speicherung und Verwaltung Ihrer Daten installiert. PHP ist die Komponente unserer Installation, die den Code verarbeitet, um dem Endbenutzer dynamische Inhalte anzuzeigen. Zusätzlich zum PHP-Paket benötigen Sie php-mysql, ein PHP-Modul, mit dem PHP mit MySQL-basierten Datenbanken kommunizieren kann. Ausserdem benötigen Sie libapache2-mod-php, damit Apache mit PHP-Dateien umgehen kann. Die wichtigsten PHP-Pakete werden automatisch als Abhängigkeiten installiert.

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

sudo apt install php libapache2-mod-php php-mysql

Sobald die Installation abgeschlossen ist, führen Sie den folgenden Befehl aus, um Ihre PHP-Version zu überprüfen:

php -v
Output
PHP 8.1.2 (cli) (built: Mar  4 2022 18:13:46) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies

Zu diesem Zeitpunkt ist Ihr LAMP-Stack voll einsatzfähig, aber bevor Sie Ihre Einrichtung mit einem PHP-Skript testen, sollten Sie einen geeigneten virtuellen Apache-Host einrichten, auf dem die Dateien und Ordner Ihrer Website gespeichert werden.

Schritt 4 – Einrichten eines virtuellen Hosts für Ihre Website

Wenn Sie den Apache-Webserver verwenden, können Sie virtuelle Hosts erstellen, um Konfigurationsdetails zu kapseln und mehr als eine Domain auf einem einzigen Server zu hosten. In dieser Anleitung richten wir eine Domain mit dem Namen aontech.ch ein, aber Sie sollten diese durch Ihren eigenen Domainnamen ersetzen.

Apache auf Ubuntu 22.04 hat standardmässig einen virtuellen Host aktiviert, der so konfiguriert ist, dass er Dokumente aus dem Verzeichnis /var/www/html bereitstellt. Während dies für eine einzelne Site gut funktioniert, kann es unhandlich werden, wenn Sie mehrere Sites hosten. Anstatt /var/www/html zu ändern, erstellen wir eine Verzeichnisstruktur innerhalb von /var/www für die Site aontech.ch und belassen /var/www/html als Standardverzeichnis, das bedient wird, wenn eine Client-Anfrage keiner anderen Site entspricht.

Erstellen Sie das Verzeichnis für aontech.ch wie folgt:

sudo mkdir /var/www/aontech.ch

Als Nächstes weisen Sie den Besitz des Verzeichnisses mit der Umgebungsvariablen $USER zu, die auf Ihren aktuellen Systembenutzer verweist:

sudo chown -R $USER:$USER /var/www/aontech.ch

Öffnen Sie dann eine neue Konfigurationsdatei im Apache-Verzeichnis sites-available mit Ihrem bevorzugten Kommandozeileneditor. Hier verwenden wir nano:

sudo nano /etc/apache2/sites-available/aontech.ch.conf

Dadurch wird eine neue leere Datei erstellt. Fügen Sie die folgende Basiskonfiguration mit Ihrem eigenen Domainnamen ein:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<VirtualHost *:80>
ServerName aontech.ch
ServerAlias www.aontech.ch
ServerAdmin webmaster@localhost
DocumentRoot /var/www/aontech.ch
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
<VirtualHost *:80> ServerName aontech.ch ServerAlias www.aontech.ch ServerAdmin webmaster@localhost DocumentRoot /var/www/aontech.ch ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
<VirtualHost *:80>
    ServerName aontech.ch
    ServerAlias www.aontech.ch
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/aontech.ch
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Speichern und schliessen Sie die Datei, wenn Sie fertig sind. Wenn Sie nano verwenden, drücken Sie dazu die Tastenkombination STRG+X, dann Y und ENTER.

Mit dieser VirtualHost-Konfiguration weisen wir Apache an, Ihre_Domain mit /var/www/aontech.ch als Web-Root-Verzeichnis zu bedienen. Wenn Sie den Apache ohne Domainnamen testen möchten, können Sie die Optionen ServerName und ServerAlias entfernen oder auskommentieren, indem Sie ein Pfundzeichen (#) an den Anfang der jeweiligen Zeile setzen.

Verwenden Sie nun a2ensite, um den neuen virtuellen Host zu aktivieren:

sudo a2ensite aontech.ch

Möglicherweise möchten Sie die Standard-Website, die mit Apache installiert wird, deaktivieren. Dies ist erforderlich, wenn Sie keinen benutzerdefinierten Domainnamen verwenden, da in diesem Fall die Standardkonfiguration von Apache Ihren virtuellen Host überschreiben würde. Um die Standard-Website von Apache zu deaktivieren, geben Sie ein:

sudo a2dissite 000-default

Um sicherzustellen, dass Ihre Konfigurationsdatei keine Syntaxfehler enthält, führen Sie den folgenden Befehl aus:

sudo apache2ctl configtest

Zum Schluss laden Sie den Apache neu, damit die Änderungen wirksam werden:

sudo systemctl reload apache2

Ihre neue Website ist nun aktiv, aber das Web-Root /var/www/aontech.ch ist noch leer. Erstellen Sie eine index.html-Datei an diesem Ort, um zu testen, ob der virtuelle Host wie erwartet funktioniert:

nano /var/www/aontech.ch/index.html

Fügen Sie den folgenden Inhalt in diese Datei ein:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<html>
<head>
<title>aontech.ch website</title>
</head>
<body>
<h1>Hello World!</h1>
<p>This is the landing page of <strong>aontech.ch</strong>.</p>
</body>
</html>
<html> <head> <title>aontech.ch website</title> </head> <body> <h1>Hello World!</h1> <p>This is the landing page of <strong>aontech.ch</strong>.</p> </body> </html>
<html>
  <head>
    <title>aontech.ch website</title>
  </head>
  <body>
    <h1>Hello World!</h1>

    <p>This is the landing page of <strong>aontech.ch</strong>.</p>
  </body>
</html>

Speichern und schliessen Sie die Datei, rufen Sie dann in Ihrem Browser den Domainnamen oder die IP-Adresse Ihres Servers auf:

http://ip_des_servers

Ihre Webseite sollte den Inhalt der soeben bearbeiteten Datei wiedergeben.

Sie können diese Datei als temporäre Landing Page für Ihre Anwendung belassen, bis Sie eine index.php-Datei einrichten, die sie ersetzt. Denken Sie daran, die Datei index.html aus Ihrem Dokumentenstamm zu entfernen oder umzubenennen, da sie standardmässig Vorrang vor einer index.php-Datei hat.

Ein Hinweis zu DirectoryIndex auf Apache

Bei den Standardeinstellungen von DirectoryIndex auf Apache hat eine Datei namens index.html immer Vorrang vor einer index.php-Datei. Dies ist nützlich für die Einrichtung von Wartungsseiten in PHP-Anwendungen, indem eine temporäre index.html-Datei erstellt wird, die eine informative Nachricht für Besucher enthält. Da diese Seite Vorrang vor der index.php-Seite hat, wird sie dann zur Startseite der Anwendung. Sobald die Wartung abgeschlossen ist, wird die index.html umbenannt oder aus dem Dokumentstamm entfernt, so dass wieder die reguläre Anwendungsseite erscheint.

Wenn Sie dieses Verhalten ändern möchten, müssen Sie die Datei /etc/apache2/mods-enabled/dir.conf bearbeiten und die Reihenfolge ändern, in der die Datei index.php in der DirectoryIndex-Direktive aufgeführt ist:

sudo nano /etc/apache2/mods-enabled/dir.conf
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm </IfModule>
<IfModule mod_dir.c>
        DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Nachdem Sie die Datei gespeichert und geschlossen haben, müssen Sie den Apache neu laden, damit die Änderungen wirksam werden:

sudo systemctl reload apache2

Im nächsten Schritt werden wir ein PHP-Skript erstellen, um zu testen, ob PHP auf Ihrem Server korrekt installiert und konfiguriert ist.

Schritt 5 – Testen der PHP-Verarbeitung auf Ihrem Webserver

Da Sie nun einen benutzerdefinierten Speicherort für die Dateien und Ordner Ihrer Website haben, erstellen Sie ein PHP-Testskript, um zu überprüfen, ob der Apache in der Lage ist, Anfragen für PHP-Dateien zu verarbeiten.

Erstellen Sie eine neue Datei namens info.php in Ihrem benutzerdefinierten Web-Stammverzeichnis:

nano /var/www/aontech.ch/info.php

Dadurch wird eine leere Datei geöffnet. Fügen Sie den folgenden Text, der gültiger PHP-Code ist, in die Datei ein:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
phpinfo();
<?php phpinfo();
<?php
phpinfo();

Wenn Sie fertig sind, speichern und schliessen Sie die Datei.

Um das Skript zu testen, rufen Sie in Ihrem Webbrowser den Domainnamen oder die IP-Adresse Ihres Servers auf, gefolgt von dem Namen des Skripts, in diesem Fall info.php:

http://ip_des_servers/info.php

Diese Seite liefert Informationen über Ihren Server aus der Sicht von PHP. Sie ist nützlich für die Fehlersuche und um sicherzustellen, dass Ihre Einstellungen korrekt angewendet werden.

Wenn Sie diese Seite in Ihrem Browser sehen, dann funktioniert Ihre PHP-Installation wie erwartet.

Nachdem Sie die relevanten Informationen über Ihren PHP-Server auf dieser Seite überprüft haben, ist es am besten, die von Ihnen erstellte Datei zu entfernen, da sie sensible Informationen über Ihre PHP-Umgebung und Ihren Ubuntu-Server enthält. Verwenden Sie dazu rm:

sudo rm /var/www/aontech.ch/info.php

Sie können diese Seite jederzeit neu erstellen, wenn Sie die Informationen später wieder benötigen.

Schritt 6 – Testen der Datenbankverbindung von PHP aus (optional)

Wenn Sie testen möchten, ob PHP in der Lage ist, sich mit MySQL zu verbinden und Datenbankabfragen auszuführen, können Sie eine Testtabelle mit Testdaten erstellen und deren Inhalt von einem PHP-Skript aus abfragen. Bevor Sie das tun, müssen Sie eine Testdatenbank und einen neuen MySQL-Benutzer erstellen, der für den Zugriff auf die Datenbank konfiguriert ist.

Erstellen Sie eine Datenbank mit dem Namen db_beispiel und einen Benutzer mit dem Namen noah. Sie können diese Namen durch andere Werte ersetzen.

Verbinden Sie sich zunächst mit der MySQL-Konsole unter Verwendung des Root-Kontos:

sudo mysql

Um eine neue Datenbank zu erstellen, führen Sie den folgenden Befehl in Ihrer MySQL-Konsole aus:

CREATE DATABASE db_beispiel;

Erstellen Sie nun einen neuen Benutzer und gewähren Sie ihm volle Rechte für die benutzerdefinierte Datenbank, die Sie gerade erstellt haben.

Der folgende Befehl erstellt einen neuen Benutzer namens noah, der sich mit der Methode caching_sha2_password authentifiziert. Wir definieren das Passwort dieses Benutzers als Temp12345!, aber Sie sollten diesen Wert durch ein sicheres Passwort Ihrer Wahl ersetzen.

CREATE USER 'noah'@'%' IDENTIFIED BY 'Temp12345!';

Geben Sie diesem Benutzer nun die Berechtigung für die Datenbank db_beispiel:

GRANT ALL ON db_beispiel.* TO 'noah'@'%';

Dadurch erhält der Benutzer noah volle Rechte für die Datenbank db_beispiel, während dieser Benutzer keine anderen Datenbanken auf Ihrem Server erstellen oder ändern kann.

Beenden Sie nun die MySQL-Shell mit:

exit

Testen Sie, ob der neue Benutzer die richtigen Berechtigungen hat, indem Sie sich erneut bei der MySQL-Konsole anmelden, diesmal mit den benutzerdefinierten Anmeldedaten:

mysql -u noah -p

Beachten Sie das Flag -p in diesem Befehl, das Sie zur Eingabe des Kennworts auffordert, das Sie bei der Erstellung des Benutzers noah verwendet haben. Nachdem Sie sich an der MySQL-Konsole angemeldet haben, bestätigen Sie, dass Sie Zugriff auf die Datenbank db_beispiel haben:

SHOW DATABASES;

Sie erhalten dann die folgende Ausgabe:

Output
+--------------------+
| Database           |
+--------------------+
| db_beispiel        |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)

Herzlichen Glückwunsch, Ihr LAMP Stack wurde erfolgreich installiert und eingerichtet.

php-MySQL Verbindungsbeispiel

Als erstes erstellen Sie eine Testtabelle mit dem Namen tbl_todo. Führen Sie in der MySQL-Konsole die folgende Anweisung aus:

CREATE TABLE db_beispiel.tbl_todo (
	item_id INT AUTO_INCREMENT,
	content VARCHAR(255),
	PRIMARY KEY(item_id)
);

Fügen Sie ein paar Zeilen Inhalt in die Testtabelle ein. Wiederholen Sie den nächsten Befehl ein paar Mal mit unterschiedlichen Werten, um Ihre Testtabelle zu füllen:

INSERT INTO db_beispiel.tbl_todo (content) VALUES ("Meine erste Aufgabe");
INSERT INTO db_beispiel.tbl_todo (content) VALUES ("Meine zweite Aufgabe");
INSERT INTO db_beispiel.tbl_todo (content) VALUES ("Meine letzte Aufgabe");

Um zu bestätigen, dass die Daten erfolgreich in Ihrer Tabelle gespeichert wurden, führen Sie aus:

SELECT * FROM db_beispiel.tbl_todo;

Die Ausgabe sieht wie folgt aus:

Output
+---------+--------------------------+
| item_id | content                  |
+---------+--------------------------+
|       1 | Meine erste Aufgabe      |
|       2 | Meine zweite Aufgabe     |
|       3 | Meine letzte Aufgabe     |
+---------+--------------------------+
3 rows in set (0.000 sec)

Nachdem Sie bestätigt haben, dass Sie gültige Daten in Ihrer Testtabelle haben, beenden Sie die MySQL-Konsole:

exit

Nun können Sie das PHP-Skript erstellen, das eine Verbindung zu MySQL herstellt und Ihre Inhalte abfragt. Erstellen Sie eine neue PHP-Datei in Ihrem benutzerdefinierten Web-Root-Verzeichnis mit Ihrem bevorzugten Editor:

nano /var/www/aontech.ch/todo_list.php

Das folgende PHP-Skript stellt eine Verbindung zur MySQL-Datenbank her und fragt den Inhalt der Tabelle tbl_todo ab, wobei die Ergebnisse in einer Liste angezeigt werden. Wenn es ein Problem mit der Datenbankverbindung gibt, wird eine Ausnahme geworfen.

Fügen Sie diesen Inhalt in Ihr todo_list.php-Skript ein und vergessen Sie nicht, den Benutzer (noah) und das Passwort (Temp12345!) durch Ihre eigenen zu ersetzen:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<?php
$user = "noah";
$password = "Temp12345!";
$database = "db_beispiel";
$table = "tbl_todo";
try {
$db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
echo "<h2>TODO</h2><ol>";
foreach($db->query("SELECT content FROM $table") as $row) {
echo "<li>" . $row['content'] . "</li>";
}
echo "</ol>";
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
<?php $user = "noah"; $password = "Temp12345!"; $database = "db_beispiel"; $table = "tbl_todo"; try { $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password); echo "<h2>TODO</h2><ol>"; foreach($db->query("SELECT content FROM $table") as $row) { echo "<li>" . $row['content'] . "</li>"; } echo "</ol>"; } catch (PDOException $e) { print "Error!: " . $e->getMessage() . "<br/>"; die(); }
<?php
$user = "noah";
$password = "Temp12345!";
$database = "db_beispiel";
$table = "tbl_todo";

try {
  $db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
  echo "<h2>TODO</h2><ol>"; 
  foreach($db->query("SELECT content FROM $table") as $row) {
    echo "<li>" . $row['content'] . "</li>";
  }
  echo "</ol>";
} catch (PDOException $e) {
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}

Speichern und schliessen Sie die Datei, wenn Sie mit der Bearbeitung fertig sind.

Sie können nun auf diese Seite in Ihrem Webbrowser zugreifen, indem Sie den Domainnamen oder die öffentliche IP-Adresse aufrufen, die für Ihre Website konfiguriert wurde, und dann /todo_list.php eingeben:

http://ip_des_servers/todo_list.php

Auf dieser Webseite sollte der Inhalt, den Sie in Ihre Testtabelle eingefügt haben, für Ihre Besucher sichtbar sein.

Das bedeutet, dass Ihre PHP-Umgebung bereit ist, sich mit Ihrem MySQL-Server zu verbinden und mit ihm zu interagieren.