Developer Advocate
Ein „LAMP“-Stack ist eine Gruppe von Open-Source-Software, die normalerweise zusammenhängend installiert wird, damit ein Server dynamische Websites und in PHP geschriebene Web-Apps hosten kann. Dieser Begriff ist ein Akronym, das für das Linux-Betriebssystem mit dem Webserver Apache steht. Die Daten dieser Site werden in einer MySQL-Datenbank gespeichert, und der dynamische Inhalt wird von PHP verarbeitet.
In diesem Leitfaden installieren wir einen LAMP Stack auf einem Ubuntu 20.04-Server.
Zum Absolvieren dieses Tutorials benötigen Sie einen Ubuntu 20.04 Server mit einem Nicht-root sudo
-aktivierten Benutzerkonto und einer einfachen Firewall. Dieser kann mit unserem Leitfaden zur Ersteinrichtung eines Servers für Ubuntu 20.04 konfiguriert werden.
Der Apache-Webserver gehört zu den weltweit beliebtesten Webservern. Er ist gut dokumentiert, verfügt über eine aktive Benutzergemeinschaft und ist seit den Anfängen des Webs weit verbreitet. Dadurch eignet sich der Server gut für das Hosten von Websites.
Installieren Sie Apache mit Ubuntus Paketmanager apt
:
- sudo apt update
- sudo apt install apache2
Wenn Sie sudo
in dieser Sitzung zum ersten Mal verwenden, werden Sie dazu aufgefordert, das Passwort Ihres Benutzers anzugeben, um zu bestätigen, dass Sie über die richtigen Berechtigungen zur Verwaltung von Systempaketen mit apt
verfügen. Außerdem werden Sie zur Bestätigung der Installation von Apache aufgefordert, indem Sie Y
und dann ENTER
drücken.
Sobald die Installation abgeschlossen ist, müssen Sie Ihre Firewalleinstellungen so anpassen, dass HTTP- und HTTPS-Verkehr erlaubt ist. UFW verfügt über verschiedene Anwendungsprofile, die Sie dafür verwenden können. Um alle aktuell verfügbaren UFW-Anwendungsprofile aufzulisten, können Sie Folgendes ausführen:
- sudo ufw app list
Die Ausgabe sieht dann so aus:
OutputAvailable applications:
Apache
Apache Full
Apache Secure
OpenSSH
Das bedeuten die einzelnen Profile:
80
(normaler, unverschlüsselter Webverkehr).443
(mit TLS/SSL verschlüsselter Verkehr).Erst einmal ist es am besten, nur Verbindungen an Port 80
zuzulassen, da es sich um eine neue Apache-Installation handelt und Sie noch kein TLS/SSL-Zertifikat konfiguriert haben, um HTTPS-Verkehr auf Ihrem Server zuzulassen.
Um Verkehr nur auf Port 80
zuzulassen, verwenden Sie das Apache
-Profil:
- sudo ufw allow in "Apache"
Sie können die Änderung überprüfen mit:
- sudo ufw status
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
Datenverkehr auf Port 80
ist nun über die Firewall zugelassen.
Sie können eine Stichprobenkontrolle vornehmen, um zu verifizieren, dass alles wie geplant vorgenommen wurde, indem Sie die öffentliche IP-Adresse Ihres Servers im Webbrowser aufrufen (siehe Anmerkung unter der nächsten Rubrik, um zu erfahren, wie die öffentliche IP-Adresse lautet, sofern Sie diese Informationen noch nicht haben):
http://your_server_ip
Es wird die Standard-Webseite für Ubuntu 20.04 Apache angezeigt, die Informations- und Testzwecken dient. Sie sollte ungefähr wie folgt aussehen:
Wenn Sie diese Seite sehen, ist Ihr Webserver korrekt installiert und über Ihre Firewall zugänglich.
Wenn Sie die öffentliche IP-Adresse Ihres Servers nicht kennen, haben Sie mehrere Möglichkeiten, sie zu finden. Es ist normalerweise die Adresse, die Sie zur Verbindung mit Ihrem Server über SSH verwenden.
Dies kann auf unterschiedliche Weise über die Befehlszeile erfolgen. Sie können zunächst die iproute2
-Tools verwenden, um Ihre IP-Adresse zu erhalten, indem Sie Folgendes eingeben:
- ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Damit erhalten Sie zwei oder drei Zeilen. Das sind alle korrekte Adressen, aber Ihr Computer kann ggf. nur eine davon verwenden. Probieren Sie daher jede aus.
Eine alternative Methode ist die Verwendung des Dienstprogramms curl
, um einen Dritten zu kontaktieren, der Ihnen sagt, wie ihm Ihr Server angezeigt wird. Dazu wird ein bestimmter Server nach Ihrer IP-Adresse gefragt:
- curl http://icanhazip.com
Unabhängig davon, wie Sie Ihre IP-Adresse in Erfahrung bringen, geben Sie sie in die Adressleiste Ihres Webbrowsers ein, um die Standard-Apache-Seite zu sehen.
Nachdem Sie nun einen funktionierenden Webserver eingerichtet haben, müssen Sie das Datenbanksystem installieren, um Daten für Ihre Website speichern und verwalten zu können. MySQL ist ein beliebtes Datenbank-Managementsystem, das in PHP-Umgebungen zum Einsatz kommt.
Verwenden Sie auch hier wieder apt
zur Beschaffung und Installation der Software:
- sudo apt install mysql-server
Wenn Sie dazu aufgefordert werden, bestätigen Sie die Installation, indem Sie Y
eingeben und dann ENTER
drücken.
Sobald die Installation abgeschlossen ist, empfehlen wir, ein Sicherheitsskript auszuführen, das in MySQL vorinstalliert ist. Dieses Skript entfernt einige unsichere Standardeinstellungen und sperrt den Zugriff auf Ihr Datenbanksystem. Starten Sie das interaktive Skript, indem Sie Folgendes ausführen:
- sudo mysql_secure_installation
Sie werden gefragt, ob Sie das VALIDATE PASSWORD PLUGIN
konfigurieren möchten.
Anmerkung: Die Aktivierung dieser Funktion bleibt Ihnen überlassen. Sollten Sie sie aktivieren, werden Passwörter, die nicht den angegebenen Kriterien entsprechen, als Fehler von MySQL abgelehnt. Sie können die Validierung deaktiviert lassen, aber sollten immer starke, eindeutige Passwörter für die Datenbankinformationen verwenden.
Geben Sie Y
für Ja oder etwas Anderes ein, um ohne Aktivierung weiterzumachen.
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 dazu aufgefordert, eine Stufe der Passwortvalidierung zu wählen. Denken Sie daran, dass die Auswahl von 2
als stärkste Validierungsstufe Fehler ergibt, wenn Sie ein Passwort ohne Zahlen, Buchstaben, Klein- oder Großbuchstaben und Sonderzeichen einrichten oder eines aus geläufigen Wörtern aus einem Wörterbuch.
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 der Server Sie als nächstes auffordern, ein Passwort für den MySQL-Benutzer root zu wählen und zu bestätigen. Verwechseln Sie dies nicht mit dem Benutzer system root. Der database root-Benutzer ist ein administrativer Benutzer mit vollen Berechtigungen über das Datenbank-System. Zwar entbindet die Standardauthentifizierungsmethode für den MySQL-Benutzer root von der Verwendung eines Passworts, selbst wenn eines festgelegt ist, doch sollten Sie hier als zusätzliche Sicherheitsmaßnahme ein starkes Passwort definieren. Darüber werden wir in einem Moment sprechen.
Wenn Sie Passwortvalidierung aktiviert haben, wird Ihnen die Passwortstärke des soeben eingegebenen root-Passworts angezeigt und Sie werden gefragt, ob Sie das Passwort beibehalten möchten. Wenn Sie mit Ihrem aktuellen Passwort zufrieden sind, geben Sie in der Eingabeaufforderung 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
Drücken Sie bei den restlichen Fragen auf Y
und bei jeder Eingabeaufforderung die ENTER
. Damit werden einige anonyme Benutzer und die Testdatenbank entfernt, Remote-root-Logins deaktiviert und diese neuen Regeln geladen, damit MySQL die Änderungen, die Sie gerade vorgenommen haben, unverzüglich anwendet.
Wenn Sie damit fertig sind, testen Sie, ob Sie sich bei der MySQL-Konsole anmelden können, indem Sie Folgendes eingeben:
- sudo mysql
Damit wird eine Verbindung zum MySQL-Server als administrativer Datenbank-Benutzer root hergestellt, was durch Nutzung von sudo
abgeleitet wird, wenn dieser Befehl ausgeführt wird. Sie sollten eine Ausgabe wie diese sehen:
OutputWelcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 22
Server version: 8.0.19-0ubuntu5 (Ubuntu)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
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 Folgendes ein:
- exit
Beachten Sie, dass Sie kein Passwort angeben mussten, um als root-Benutzer eine Verbindung herzustellen, obwohl Sie bei der Ausführung des Skripts mysql_secure_installation
ein Passwort festgelegt haben. Das liegt daran, dass die standardmäßige Authentifizierungsmethode für den administrativen MySQL-Benutzer unix_socket
lautet und nicht password
. Auch wenn es zunächst wie ein Sicherheitsproblem aussehen mag, wird der Datenbankserver dadurch sicherer, da sich nur die Systembenutzer mit sudo-Berechtigungen über die Konsole oder über eine Anwendung, die mit den gleichen Berechtigungen ausgeführt wird, als root-MySQL-Benutzer anmelden dürfen. Praktisch bedeutet dies, dass Sie den administrativer Datenbank-root-Benutzer nicht verwenden können, um sich von Ihrer PHP-Anwendung zu verbinden. Das Einrichten eines Passworts für das root-MySQL-Konto funktioniert als Schutz für den Fall, dass die Standardauthentifizierungsmethode von unix_socket
in passwort
geändert wird.
Um die Sicherheit zu erhöhen, richten Sie am besten für jede Datenbank zugeordnete Benutzerkonten mit weniger expansiven Berechtigungen ein, insbesondere dann, wenn Sie mehrere Datenbanken auf Ihrem Server hosten möchten.
Anmerkung: Zum Zeitpunkt der Verfassung dieses Dokuments unterstützt die native MySQL-PHP-Bibliothek mysqlnd
keine caching_sha2_authentication
, die standardmäßige Authentifizierungsmethode für MySQL 8. Wenn Sie Datenbankbenutzer für PHP-Anwendungen unter MySQL 8 erstellen, müssen Sie sie daher so konfigurieren, dass sie stattdessen mysql_native_password
verwenden. In Schritt 6 zeigen wir, wie das geht.
Ihr MySQL-Server ist nun installiert und gesichert. Als Nächstes installieren wir PHP, die letzte Komponente im LAMP-Stack.
Sie haben Apache zur Bereitstellung Ihrer Inhalte und MySQL zur Speicherung und Verwaltung Ihrer Daten installiert. PHP ist die Komponente unserer Einrichtung, die Code verarbeitet, um dynamische Inhalte für den Endbenutzer anzuzeigen. Zusätzlich zum php
-Paket benötigen Sie php-mysql
, ein PHP-Modul, das PHP die Kommunikation mit MySQL-basierten Datenbanken ermöglicht. Außerdem benötigen Sie libapache2-mod-php
, damit Apache PHP-Dateien verarbeiten kann. Core-PHP-Pakete werden automatisch als Abhängigkeiten installiert.
Um diese Pakete zu installieren, führen Sie Folgendes aus:
- sudo apt install php libapache2-mod-php php-mysql
Sobald die Installation abgeschlossen ist, können Sie folgenden Befehl ausführen, um Ihre PHP-Version zu prüfen:
- php -v
OutputPHP 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
Nun ist Ihr LAMP-Stack voll einsatzbereit. Bevor Sie aber Ihre Einrichtung mit einem PHP-Skript testen können, ist es am besten, einen richtigen virtuellen Apache-Host für die Speicherung der Dateien und Ordner Ihrer Website einzurichten. Das tun wir im nächsten Schritt.
Wenn Sie den Apache-Webserver verwenden, können Sie virtuelle Hosts (ähnlich wie Serverblocks in Nginx) einrichten, um Konfigurationsdaten einzuschließen und mehr als eine Domäne auf einem Server zu hosten. In diesem Leitfaden richten wir eine Domäne namens your_domain ein, aber Sie sollten diesen Namen durch Ihren eigenen Domänenamen ersetzen.
Anmerkung: Falls Sie DigitalOcean als DNS-Hosting-Anbieter verwenden, konsultieren Sie unsere Produktdokumente für detaillierte Anweisungen, wie Sie einen neuen Domänenamen einrichten und ihn auf Ihren Server verweisen.
Apache unter Ubuntu 20.04 hat einen Serverblock, der standardmäßig aktiviert und so konfiguriert ist, dass er Dokumente aus dem /var/www/html
-Verzeichnis bereitstellt. Das eignet sich gut für eine Site, kann aber umständlich werden, wenn Sie mehrere Sites hosten. Statt /var/www/html
zu ändern, erstellen wir eine Verzeichnisstruktur innerhalb von /var/www
für die Site your_domain und belassen dabei /var/www/html
als Standardverzeichnis, das genutzt wird, wenn eine Clientanfrage keine übereinstimmenden Sites ergibt.
Erstellen Sie das Verzeichnis für your_domain wie folgt:
- sudo mkdir /var/www/your_domain
Als Nächstes weisen Sie die Eigentumsrechte des Verzeichnisses mit der Umgebungsvariablen $USER
zu, die auf Ihren aktuellen Systembenutzer verweisen wird:
- sudo chown -R $USER:$USER /var/www/your_domain
Öffnen Sie dann mit Ihrem bevorzugten Befehlszeileneditor eine neue Konfigurationsdatei im Verzeichnis sites-available
von Apache. Wir verwenden hier nano
:
- sudo nano /etc/apache2/sites-available/your_domain.conf
Dadurch wird eine neue Leerdatei erstellt. Fügen Sie die folgende Basiskonfiguration ein:
<VirtualHost *:80>
ServerName your_domain
ServerAlias www.your_domain
ServerAdmin webmaster@localhost
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Mit dieser VirtualHost
-Konfiguration weisen wir Apache an, your_domain
mit /var/www/your_domain
als Web-Stammverzeichnis bereitzustellen. Wenn Sie Apache ohne Domänennamen testen möchten, können Sie die Optionen ServerName
und ServerAlias
entfernen oder auskommentieren, indem Sie am Anfang der Zeilen jeder Option ein #
-Zeichen hinzufügen.
Sie können nun a2ensite
verwenden, um den neuen virtuellen Host zu aktivieren:
- sudo a2ensite your_domain
Vielleicht möchten Sie die Standard-Website, die mit Apache installiert wird, deaktivieren. Das ist erforderlich, wenn Sie keinen benutzerdefinierten Domänennamen verwenden, da in dem Fall die Standardkonfiguration von Apache Ihren virtuellen Host überschreiben würde. Um die Standard-Website von Apache zu deaktivieren, geben Sie Folgendes ein:
- sudo a2dissite 000-default
Um sicherzustellen, dass Ihre Konfigurationsdatei keine Syntaxfehler enthält, führen Sie Folgendes aus:
- sudo apache2ctl configtest
Schließlich laden Sie Apache neu, damit diese Änderungen wirksam werden:
- sudo systemctl reload apache2
Ihre neue Website ist nun aktiv, aber der Web-Stamm /var/www/your_domain
ist immer noch leer. Erstellen Sie an diesem Ort eine index.html
-Datei, damit wir testen können, ob der virtuelle Host wie erwartet funktioniert:
- nano /var/www/your_domain/index.html
Fügen Sie in die Datei folgenden Inhalt ein:
<h1>It works!</h1>
<p>This is the landing page of <strong>your_domain</strong>.</p>
Greifen Sie jetzt über Ihren Browser erneut auf den Domänenamen oder die IP-Adresse Ihres Servers zu:
http://server_domain_or_IP
Sie sehen in etwa folgende Seite:
Wenn Sie diese Seite sehen, bedeutet das, dass Ihr virtueller Apache-Host wie erwartet funktioniert.
Sie können diese Datei als temporäre Zielseite für Ihre Anwendung so lange belassen, bis Sie sie durch eine index.php
-Datei ersetzen. Vergessen Sie in dem Fall nicht, die Datei index.html
aus Ihrem Dokumentstamm zu entfernen oder umzubenennen, da sie standardmäßig Vorrang gegenüber einer index.php
-Datei erhalten würde.
DirectoryIndex
in ApacheMit den Standardeinstellungen von DirectoryIndex
in Apache wird eine Datei namens index.html
immer Vorrang gegenüber einer index.php
-Datei erhalten. Das ist für die Einrichtung von Wartungsseiten in PHP-Anwendungen nützlich, da eine temporäre Datei index.html
erstellt wird, die eine Informationsmeldung für Besucher enthält. Da diese Seite Vorrang gegenüber der Seite index.php
hat, wird sie dann zur Zielseite für die Anwendung. Sobald die Wartung abgeschlossen ist, wird die Datei index.html
umbenannt oder aus dem Dokumentenstamm entfernt. Damit kehrt die regelmäßige Anwendungsseite zurück.
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 Anweisung DirectoryIndex
aufgeführt ist:
- sudo nano /etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Nach dem Speichern und Schließen der Datei müssen Sie Apache neu laden, damit die Änderungen wirksam werden:
- sudo systemctl reload apache2
Im nächsten Schritt erstellen wir ein PHP-Skript, um zu testen, ob PHP auf Ihrem Server korrekt installiert und konfiguriert wurde.
Nachdem Sie nun über einen benutzerdefinierten Speicherort zum Hosten der Dateien und Ordner Ihrer Website verfügen, erstellen wir ein PHP-Testskript, um zu prüfen, ob Apache Anfragen nach PHP-Dateien bewältigen und verarbeiten kann.
Erstellen Sie eine neue Datei namens info.php
in Ihrem benutzerdefinierten Web-Stammordner:
- nano /var/www/your_domain/info.php
Damit wird eine leere Datei geöffnet. Fügen Sie der Datei den folgenden Text, d. h. den gültigen PHP-Code, hinzu:
<?php
phpinfo();
Wenn Sie dies abgeschlossen haben, speichern und schließen Sie die Datei.
Um das Skript zu testen, rufen Sie in Ihrem Webbrowser den Domänenamen oder die IP-Adresse Ihres Servers auf, gefolgt vom Skriptnamen (in diesem Fall info.php
):
http://server_domain_or_IP/info.php
Sie sehen eine Seite, die so ähnlich wie die folgende aussieht:
Diese Seite liefert Informationen über Ihren Server aus der Sicht von PHP. Sie ist zum Debuggen nützlich und um sicherzustellen, dass Ihre Einstellungen korrekt angewendet werden.
Wenn Sie diese Seite in Ihrem Browser sehen können, funktioniert Ihre PHP-Installation wie erwartet.
Nachdem Sie über diese Seite die relevanten Informationen zu Ihrem PHP-Server ü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. Sie können dazu rm
verwenden:
- sudo rm /var/www/your_domain/info.php
Sie können diese Seite immer wieder neu erstellen, wenn Sie später auf die Informationen zugreifen müssen.
Wenn Sie testen möchten, ob PHP eine Verbindung mit MySQL herstellen und Datenbankabfragen ausführen kann, können Sie eine Testtabelle mit Pseudodaten erstellen und die Inhalte mit einem PHP-Skript abfragen. Zuvor müssen wir eine Testdatenbank und einen neuen MySQL-Benutzer erstellen, der für den Zugriff richtig konfiguriert ist.
Zum Zeitpunkt der Verfassung dieses Dokuments unterstützt die native MySQL-PHP-Bibliothek mysqlnd
nicht caching_sha2_authentication
, die standardmäßige Authentifizierungsmethode für MySQL 8. Wir müssen einen neuen Benutzer mit der Authentifizierungsmethode mysql_native_password
erstellen, um über PHP eine Verbindung zur MySQL-Datenbank herzustellen.
Wir erstellen eine Datenbank namens example_database und einen Benutzer namens example_user. Sie können diese Namen jedoch durch andere Werte ersetzen.
Stellen Sie zuerst unter Verwendung des root-Kontos eine Verbindung zur MySQL-Konsole her:
- sudo mysql
Um eine neue Datenbank zu erstellen, führen Sie den folgenden Befehl über Ihre MySQL-Konsole aus:
- CREATE DATABASE example_database;
Jetzt können Sie einen neuen Benutzer erstellen und ihm volle Berechtigungen auf der benutzerdefinierten Datenbank gewähren, die Sie gerade erstellt haben:
Der folgende Befehl erstellt einen neuen Benutzer namens example_user
, wobei mysql_native_password
als standardmäßige Authentifizierungsmethode dient. Wir definieren das Passwort dieses Benutzers als password
, aber Sie sollten diesen Wert durch ein sicheres Passwort Ihrer Wahl ersetzen:
- CREATE USER 'example_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
Nun müssen wir diesem Benutzer eine Berechtigung für die Datenbank example_database
erteilen:
- GRANT ALL ON example_database.* TO 'example_user'@'%';
Damit werden dem Benutzer example_user volle Berechtigungen über die Datenbank example_database gewährt, während dieser Benutzer gleichzeitig daran gehindert wird, andere Datenbanken auf Ihrem Server zu erstellen oder zu ändern.
Beenden Sie nun die MySQL-Shell mit:
- exit
Sie können testen, ob der neue Benutzer die richtigen Berechtigungen hat, indem Sie sich erneut bei der MySQL-Konsole anmelden, diesmal mit den benutzerdefinierten Anmeldedaten:
- mysql -u example_user -p
Beachten Sie das -p
-Flag in diesem Befehl, das Sie nach dem Passwort fragt, das Sie bei der Erstellung des Benutzers example_user gewählt haben. Nach der Anmeldung bei der MySQL-Konsole bestätigen Sie, dass Sie Zugriff auf die Datenbank example_database haben:
- SHOW DATABASES;
Damit erhalten Sie die folgende Ausgabe:
Output+--------------------+
| Database |
+--------------------+
| example_database |
| information_schema |
+--------------------+
2 rows in set (0.000 sec)
Als Nächstes erstellen wir eine Testtabelle namens todo_list. Führen Sie die folgende Anweisung in der MySQL-Konsole aus:
- CREATE TABLE example_database.todo_list (
- item_id INT AUTO_INCREMENT,
- content VARCHAR(255),
- PRIMARY KEY(item_id)
- );
Geben Sie einige Zeilen an Inhalt in die Testtabelle ein. Sie können den nächsten Befehl ein paar Mal wiederholen, indem Sie verschiedene Werte verwenden:
- INSERT INTO example_database.todo_list (content) VALUES ("My first important item");
Um zu bestätigen, dass die Daten erfolgreich in Ihrer Tabelle gespeichert wurden, führen Sie Folgendes aus:
- SELECT * FROM example_database.todo_list;
Sie sehen die folgende Ausgabe:
Output+---------+--------------------------+
| item_id | content |
+---------+--------------------------+
| 1 | My first important item |
| 2 | My second important item |
| 3 | My third important item |
| 4 | and this one more thing |
+---------+--------------------------+
4 rows in set (0.000 sec)
Nachdem Sie bestätigt haben, dass Sie gültige Daten in Ihrer Testtabelle haben, können Sie die MySQL-Konsole verlassen:
- exit
Sie können nun das PHP-Skript erstellen, das sich mit MySQL verbindet, und Ihre Inhalte abfragen. Erstellen Sie mit Ihrem bevorzugten Editor eine neue PHP-Datei in Ihrem benutzerdefinierten Web-Stammverzeichnis. Verwenden Sie hierzu nano
:
- nano /var/www/your_domain/todo_list.php
Das folgende PHP-Skript verbindet sich mit der MySQL-Datenbank und fragt den Inhalt der Tabelle todo_list ab, wobei die Ergebnisse in einer Liste angezeigt werden. Wenn ein Problem mit der Datenbankverbindung besteht, wird eine Ausnahme ausgelöst. Kopieren Sie diesen Inhalt in Ihr todo_list.php
-Skript:
<?php
$user = "example_user";
$password = "password";
$database = "example_database";
$table = "todo_list";
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 schließen Sie die Datei, wenn die Bearbeitung abgeschlossen ist.
Sie können diese Seite nun in Ihrem Webbrowser aufrufen, indem Sie den Domänenamen oder die öffentliche IP-Adresse für Ihre Website aufrufen, gefolgt von /todo_list.php
:
http://your_domain/todo_list.php
Sie sollten nun eine Seite ähnlich wie diese sehen, die den Inhalt anzeigt, den Sie in Ihre Testtabelle eingefügt haben:
Das bedeutet, dass Ihre PHP-Umgebung bereit dazu ist, sich mit Ihrem MySQL-Server zu verbinden und zu interagieren.
In diesem Leitfaden haben wir eine flexible Basis für die Bereitstellung von PHP-Webseiten und -Anwendungen für Ihre Besucher eingerichtet, wobei Apache als Webserver und MySQL als Datenbanksystem dienen.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Emin is Fettsack
Hamid Genauso
Lg
Dero el Mero
Hi,
When I try to setup a root password for the MySQL server following this guide I always get the following error message:
… Failed! Error: SET PASSWORD has no significance for user ‘root’@‘localhost’ as the authentication method used doesn’t store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.
So I can´t proceed with the installation. It would be good if this guideline could be changed and explained, what has to be done exactly to solve this problem. Thanks!