So richten Sie eine Remote-Datenbank ein, um die Leistung der Website mit MySQL unter Ubuntu 20.04 zu optimieren

Einführung

Wenn Ihre Anwendung oder Website wächst, kann es einen Punkt geben, an dem Sie Ihre aktuelle Serverkonfiguration überschritten haben. Wenn Sie Ihren Webserver und die Datenbank-Backend auf derselben Maschine hosten, ist es möglicherweise eine gute Idee, diese beiden Funktionen zu trennen, damit jede auf eigener Hardware arbeiten und die Last des Antwortens auf die Anfragen Ihrer Besucher teilen kann.

In diesem Leitfaden konfigurieren Sie einen entfernten MySQL-Datenbankserver, mit dem sich Ihre Webanwendung verbinden kann. WordPress wird als Beispiel verwendet, um etwas zu haben, woran gearbeitet werden kann, aber die Technik ist allgemein auf jede Anwendung anwendbar, die von MySQL unterstützt wird.

Voraussetzungen

Vor Beginn dieses Tutorials benötigen Sie:

Schritt 1 — Konfigurieren von MySQL zum Hören auf Remote-Verbindungen auf dem Datenbankserver

Seine Daten auf einem separaten Server zu speichern, ist eine gute Möglichkeit, sich nach dem Erreichen der Leistungsgrenze einer Ein-Maschinen-Konfiguration gracefully zu erweitern. Es stellt auch die grundlegende Struktur bereit, die erforderlich ist, um Lastenausgleich zu betreiben und Ihre Infrastruktur später noch weiter zu erweitern. Nach der Installation von MySQL gemäß dem Voraussetzungstutorial müssen Sie einige Konfigurationswerte ändern, um Verbindungen von anderen Computern zuzulassen.

Die meisten Konfigurationsänderungen des MySQL-Servers können in der Datei mysqld.cnf vorgenommen werden, die standardmäßig im Verzeichnis /etc/mysql/mysql.conf.d/ gespeichert ist. Öffnen Sie diese Datei auf Ihrem Datenbankserver mit Root-Berechtigungen in Ihrem bevorzugten Editor. In diesem Beispiel wird nano verwendet:

  1. sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Diese Datei ist in Abschnitte unterteilt, die durch Labels in eckigen Klammern ([ und ]) gekennzeichnet sind. Suchen Sie nach dem Abschnitt mit der Bezeichnung mysqld:

/etc/mysql/mysql.conf.d/mysqld.cnf
. . .
[mysqld]
. . .

In diesem Abschnitt suchen Sie nach einem Parameter namens bind-address. Dieser gibt der Datenbanksoftware an, unter welcher Netzwerkadresse Verbindungen gehört werden sollen.

Standardmäßig ist dies auf 127.0.0.1 eingestellt, was bedeutet, dass MySQL so konfiguriert ist, dass es nur nach lokalen Verbindungen sucht. Sie müssen dies ändern, um auf eine externe IP-Adresse zu verweisen, unter der Ihr Server erreichbar ist.

Wenn sich beide Ihrer Server in einem Rechenzentrum mit privaten Netzwerkmöglichkeiten befinden, verwenden Sie die private Netzwerk-IP Ihres Datenbankservers. Andernfalls können Sie seine öffentliche IP-Adresse verwenden:

/etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
. . .
bind-address = db_server_ip

Weil Sie sich über das Internet mit Ihrer Datenbank verbinden werden, wird empfohlen, verschlüsselte Verbindungen zu verwenden, um Ihre Daten sicher zu halten. Wenn Sie Ihre MySQL-Verbindung nicht verschlüsseln, könnte jeder im Netzwerk sensitive Informationen zwischen Ihren Web- und Datenbankservern abfangen. Um MySQL-Verbindungen zu verschlüsseln, fügen Sie die folgende Zeile nach der gerade aktualisierten bind-address-Zeile hinzu:

/etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
. . .
require_secure_transport = on
. . .

Speichern und schließen Sie die Datei, wenn Sie fertig sind. Wenn Sie nano verwenden, tun Sie dies, indem Sie STRG + X, Y und dann ENTER drücken.

Um SSL-Verbindungen zu ermöglichen, müssen Sie einige Schlüssel und Zertifikate erstellen. MySQL wird mit einem Befehl geliefert, der diese automatisch einrichtet. Führen Sie den folgenden Befehl aus, der die erforderlichen Dateien erstellt. Es macht sie auch lesbar für den MySQL-Server, indem es die UID des mysql-Benutzers angibt:

  1. sudo mysql_ssl_rsa_setup --uid=mysql

Um MySQL zu zwingen, seine Konfiguration zu aktualisieren und die neuen SSL-Informationen zu lesen, starten Sie die Datenbank neu:

  1. sudo systemctl restart mysql

Um zu bestätigen, dass der Server jetzt auf der externen Schnittstelle hört, führen Sie den folgenden ss-Befehl aus:

  1. sudo ss -plunt | grep mysqld
Output
tcp LISTEN 0 70 127.0.0.1:33060 0.0.0.0:* users:(("mysqld",pid=4053,fd=22)) tcp LISTEN 0 151 db_server_ip:3306 0.0.0.0:* users:(("mysqld",pid=4053,fd=24))

ss gibt Statistiken über das Netzwerksystem Ihres Servers aus. Diese Ausgabe zeigt, dass ein Prozess namens mysqld an die db_server_ip an Port 3306, dem standardmäßigen MySQL-Port, gebunden ist, was bestätigt, dass der Server auf der entsprechenden Schnittstelle lauscht.

Öffnen Sie als nächstes diesen Port in der Firewall, um den Datenverkehr zu ermöglichen:

  1. sudo ufw allow mysql

Das sind alle Konfigurationsänderungen, die Sie an MySQL vornehmen müssen. Als nächstes richten Sie eine Datenbank und einige Benutzerprofile ein, von denen Sie eines verwenden werden, um auf den Server remote zuzugreifen.

Schritt 2 – Einrichten einer WordPress-Datenbank und entfernte Zugangsdaten auf dem Datenbankserver

Auch wenn MySQL selbst jetzt auf einer externen IP-Adresse lauscht, sind derzeit keine remote-fähigen Benutzer oder Datenbanken konfiguriert. Erstellen Sie eine Datenbank für WordPress und ein Paar Benutzer, die darauf zugreifen können.

Beginnen Sie damit, sich als der MySQL-Benutzer root anzumelden:

  1. sudo mysql

Hinweis: Wenn Sie die Passwortauthentifizierung aktiviert haben, wie im Schritt 3 des vorherigen MySQL-Tutorials beschrieben, müssen Sie stattdessen den folgenden Befehl verwenden, um auf die MySQL-Shell zuzugreifen:

  1. mysql -u root -p

Nach Ausführung dieses Befehls werden Sie nach Ihrem MySQL-Root-Passwort gefragt und nach der Eingabe erhalten Sie eine neue mysql>-Aufforderung.

Vom MySQL-Prompt aus erstellen Sie eine Datenbank, die WordPress verwenden wird. Es kann hilfreich sein, dieser Datenbank einen erkennbaren Namen zu geben, damit Sie sie später leicht identifizieren können. Hier wird sie wordpress genannt:

  1. CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Nachdem Sie Ihre Datenbank erstellt haben, müssen Sie als nächstes ein Benutzerpaar erstellen. Erstellen Sie einen lokalen Benutzer sowie einen Remote-Benutzer, der an die IP-Adresse des Webservers gebunden ist.

Zuerst erstellen Sie Ihren lokalen Benutzer local_db_user und stellen sicher, dass dieses Konto nur lokale Verbindungsversuche akzeptiert, indem Sie localhost in der Deklaration verwenden:

  1. CREATE USER 'local_db_user'@'localhost' IDENTIFIED BY 'password';

Dann gewähren Sie diesem Konto vollen Zugriff auf die Datenbank wordpress:

  1. GRANT ALL PRIVILEGES ON wordpress.* TO 'local_db_user'@'localhost';

Dieser Benutzer kann nun beliebige Operationen auf der Datenbank für WordPress durchführen, aber dieses Konto kann nicht remote verwendet werden, da es nur Verbindungen vom lokalen Rechner akzeptiert. Mit diesem Gedanken erstellen Sie ein Begleitkonto, das ausschließlich Verbindungen von Ihrem Webserver akzeptiert. Dazu benötigen Sie die IP-Adresse Ihres Webservers.

Bitte beachten Sie, dass Sie eine IP-Adresse verwenden müssen, die das gleiche Netzwerk verwendet, das Sie in Ihrer mysqld.cnf-Datei konfiguriert haben. Dies bedeutet, dass Sie, wenn Sie eine private Netzwerk-IP in der mysqld.cnf-Datei angegeben haben, die private IP Ihres Webservers in den folgenden beiden Befehlen verwenden müssen. Wenn Sie MySQL konfiguriert haben, um das öffentliche Internet zu verwenden, sollten Sie das mit der öffentlichen IP-Adresse Ihres Webservers abstimmen.

  1. CREATE USER 'remote_user'@'web_server_ip' IDENTIFIED BY 'password';

Nachdem Sie Ihr Remote-Konto erstellt haben, geben Sie ihm dieselben Berechtigungen wie Ihrem lokalen Benutzer:

  1. GRANT ALL PRIVILEGES ON wordpress.* TO 'remote_user'@'web_server_ip';

Zuletzt müssen Sie die Berechtigungen aktualisieren, damit MySQL weiß, dass sie verwendet werden sollen:

  1. FLUSH PRIVILEGES;

Dann beenden Sie die MySQL-Eingabeaufforderung, indem Sie Folgendes eingeben:

  1. exit

Nun, da Sie eine neue Datenbank und einen benutzeraktivierten Benutzer eingerichtet haben, können Sie damit fortfahren, zu testen, ob Sie eine Verbindung zur Datenbank von Ihrem Webserver aus herstellen können.

Schritt 3 — Testen von Remote- und lokalen Verbindungen

Bevor Sie fortfahren, ist es am besten, zu überprüfen, ob Sie eine Verbindung zu Ihrer Datenbank sowohl von der lokalen Maschine — Ihrem Datenbankserver — als auch von Ihrem Webserver herstellen können.

Zuerst testen Sie die lokale Verbindung von Ihrem Datenbankserver, indem Sie versuchen, sich mit Ihrem neuen Konto anzumelden:

  1. mysql -u local_db_user -p

Wenn Sie dazu aufgefordert werden, geben Sie das Passwort ein, das Sie für dieses Konto eingerichtet haben.

Wenn Ihnen eine MySQL-Eingabeaufforderung angezeigt wird, war die lokale Verbindung erfolgreich. Sie können erneut aussteigen, indem Sie Folgendes eingeben:

  1. exit

Melden Sie sich anschließend auf Ihrem Webserver an, um Remoteverbindungen zu testen:

  1. ssh remote_user@web_server_ip

Sie müssen einige Client-Tools für MySQL auf Ihrem Webserver installieren, um auf die Remote-Datenbank zugreifen zu können. Aktualisieren Sie zuerst Ihren lokalen Paket-Cache, wenn Sie dies nicht kürzlich getan haben:

  1. sudo apt update

Dann installieren Sie die MySQL-Client-Dienstprogramme:

  1. sudo apt install mysql-client

Anschließend stellen Sie eine Verbindung zu Ihrem Datenbankserver her, indem Sie die folgende Syntax verwenden:

  1. mysql -u remote_user -h db_server_ip -p

Erstellen Sie sicher, dass Sie die richtige IP-Adresse für den Datenbankserver verwenden. Wenn Sie MySQL so konfiguriert haben, dass es im privaten Netzwerk lauscht, geben Sie die private IP-Adresse Ihrer Datenbank ein. Andernfalls geben Sie die öffentliche IP-Adresse Ihres Datenbankservers ein.

Sie werden nach dem Passwort für Ihr Benutzerkonto remote_user gefragt. Nach der Eingabe und wenn alles wie erwartet funktioniert, gelangen Sie zum MySQL-Prompt. Überprüfen Sie, ob die Verbindung SSL verwendet, mit folgendem Befehl:

  1. status

Wenn die Verbindung tatsächlich SSL verwendet, wird dies in der Zeile SSL: angezeigt, wie hier gezeigt:

Output
-------------- mysql Ver 8.0.29-0ubuntu0.20.04.2 for Linux on x86_64 ((Ubuntu)) Connection id: 14 Current database: Current user: remote_user@web_server_ip SSL: Cipher in use is TLS_AES_256_GCM_SHA384 Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 8.0.29-0ubuntu0.20.04.2 (Ubuntu) Protocol version: 10 Connection: db_server_ip via TCP/IP Server characterset: utf8mb4 Db characterset: utf8mb4 Client characterset: utf8mb4 Conn. characterset: utf8mb4 TCP port: 3306 Binary data as: Hexadecimal Uptime: 1 hour 8 min 28 sec Threads: 2 Questions: 69 Slow queries: 0 Opens: 206 Flush tables: 3 Open tables: 125 Queries per second avg: 0.016 --------------

Nachdem Sie die Remote-Verbindung überprüft haben, verlassen Sie den Prompt:

  1. exit

Sie haben den lokalen Zugriff und den Zugriff vom Webserver überprüft, aber Sie haben nicht überprüft, ob andere Verbindungen abgelehnt werden. Zur zusätzlichen Überprüfung versuchen Sie, dasselbe von einem dritten Server aus zu tun, für den Sie kein spezifisches Benutzerkonto konfiguriert haben, um sicherzustellen, dass diesem anderen Server kein Zugriff nicht gewährt wird.

Beachten Sie, dass Sie möglicherweise die MySQL-Client-Dienstprogramme installieren müssen, bevor Sie den folgenden Befehl ausführen, um die Verbindung zu versuchen, wie Sie es zuvor getan haben:

  1. mysql -u wordpressuser -h db_server_ip -p

Dies sollte nicht erfolgreich abgeschlossen werden und einen Fehler zurückgeben, der ähnlich wie dieser ist:

Output
ERROR 1130 (HY000): Host '203.0.113.12' is not allowed to connect to this MySQL server

Dies ist zu erwarten, da Sie keinen MySQL-Benutzer erstellt haben, der von diesem Server aus eine Verbindung herstellen darf, und auch erwünscht ist, da Sie sicherstellen möchten, dass Ihr Datenbankserver nicht autorisierten Benutzern den Zugriff auf Ihren MySQL-Server verweigert.

Nach erfolgreicher Prüfung Ihrer Remote-Verbindung können Sie mit der Installation von WordPress auf Ihrem Webserver fortfahren.

Schritt 4 — Vorbereitung des Webservers für die WordPress-Installation

Wenn Sie den vorherigen Anleitungen gefolgt sind, sollten Sie sowohl Nginx als auch PHP installiert haben. WordPress und viele seiner Plugins nutzen viele zusätzliche PHP-Erweiterungen. Bevor Sie WordPress auf Ihrem Webserver installieren, bereiten Sie Ihren Server vor, indem Sie einige dieser PHP-Erweiterungen für die Verwendung mit WordPress installieren:

  1. sudo apt install php-curl php-gd php-intl php-mbstring php-soap php-xml php-xmlrpc php-zip

Hinweis: Jedes WordPress-Plugin hat seine eigenen Anforderungen. Einige erfordern möglicherweise zusätzliche PHP-Erweiterungspakete. Überprüfen Sie die Dokumentation Ihres Plugins, um seine PHP-Anforderungen zu erfahren. Wenn sie verfügbar sind, können sie wie im vorherigen Beispiel mit apt installiert werden.

Nachdem Sie die Erweiterungen installiert haben, starten Sie den PHP-FPM-Prozess neu, damit der laufende PHP-Prozessor die neu installierten Funktionen nutzen kann:

  1. sudo systemctl restart php7.4-fpm

Als nächstes nehmen Sie einige Anpassungen an Ihren Nginx-Serverblockdateien vor. Basierend auf den vorherigen Anleitungen sollten Sie eine Konfigurationsdatei für Ihre Website im Verzeichnis /etc/nginx/sites-available/ haben. Sie sollte auch so konfiguriert sein, dass sie auf den Domainnamen oder die IP-Adresse Ihres Servers antwortet und durch ein TLS/SSL-Zertifikat geschützt ist. /etc/nginx/sites-available/Ihre_Domain wird hier als Beispielverzeichnis verwendet. Ersetzen Sie den Pfad zur Konfigurationsdatei entsprechend.

Zusätzlich wird /var/www/your_domain als Stammverzeichnis bei dieser WordPress-Installation verwendet. Verwenden Sie erneut das im eigenen Konfiguration festgelegte Dokumentenstammverzeichnis.

Hinweis: Es ist möglich, dass Sie die Standardkonfiguration /etc/nginx/sites-available/default mit /var/www/html als Dokumentenstammverzeichnis verwenden. Dies ist in Ordnung, wenn Sie nur eine Website auf diesem Server hosten möchten. Andernfalls ist es am besten, die erforderliche Konfiguration in logische Blöcke aufzuteilen, eine Datei pro Website.

Öffnen Sie die Serverblockdatei Ihrer Website mit Ihrem bevorzugten Editor. In diesem Beispiel wird nano verwendet:

  1. sudo nano /etc/nginx/sites-available/your_domain

Fügen Sie innerhalb dieses Serverblocks einige Standortblöcke hinzu. Beginnen Sie mit der Erstellung von exakt übereinstimmenden Standortblöcken für Anfragen an /favicon.ico und /robots.txt, für die keine Anfragen protokolliert werden sollen.

Dies wird durch Verwendung eines regulären Ausdrucksstandorts zum Übereinstimmen mit allen Anfragen nach statischen Dateien erreicht, die Protokollierung für diese Anfragen wird deaktiviert und sie werden als stark zwischenspeicherbar markiert, da dies typischerweise ressourcenintensive Ressourcen sind, die bereitgestellt werden müssen. Sie können diese Liste der statischen Dateien anpassen, um andere Dateierweiterungen zu enthalten, die Ihre Website möglicherweise verwendet:

/etc/nginx/sites-available/your_domain
server {
    server_name your_domain www.your_domain;
    root /var/www/your_domain;

    index index.html index.htm index.php;

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }
    . . .
}

Innerhalb des vorhandenen location /-Blocks können Sie die try_files-Liste anpassen. Kommentieren Sie zunächst die Standardeinstellung aus, indem Sie die erste Zeile mit einem Rautezeichen (#) versehen. Fügen Sie dann die folgenden Zeilen hinzu:

/etc/nginx/sites-available/your_domain
server {
    . . .
    location / {
        #try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }
    . . .
}

Mit dieser neuen Zeile in Ihrer Konfiguration wird anstelle eines 404-Fehlers als Standardoption die Steuerung an die Datei index.php mit den Anforderungsargumenten übergeben.

Insgesamt sollte der obere Teil Ihrer Datei ähnlich wie folgt aussehen:

/etc/nginx/sites-available/your_domain
server {
    server_name your_domain www.your_domain;
    root /var/www/your_domain;

    index index.html index.htm index.php;

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt { log_not_found off; access_log off; allow all; }
    location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
        expires max;
        log_not_found off;
    }

    location / {
       # try_files $uri $uri/ =404;
        try_files $uri $uri/ /index.php$is_args$args;
    }

  ...
}

Wenn Sie fertig sind, speichern Sie die Datei und schließen Sie sie.

Überprüfen Sie Ihre Konfiguration auf Syntaxfehler, indem Sie Folgendes eingeben:

  1. sudo nginx -t

Wenn keine Fehler gemeldet werden, laden Sie Nginx neu, indem Sie Folgendes eingeben:

  1. sudo systemctl reload nginx

Nachdem Sie Ihren Webserver vorbereitet haben, sind Sie nun bereit, WordPress zu installieren.

Schritt 5 – WordPress auf dem Webserver installieren

Um die Möglichkeiten Ihres neuen fernsteuerbaren MySQL-Servers zu demonstrieren, werden Sie den Prozess der Installation und Konfiguration von WordPress – dem beliebten Content Management System – auf Ihrem Webserverdurchführen. Mit Ihrer Serversoftware konfiguriert, können Sie WordPress herunterladen. Aus Sicherheitsgründen wird immer empfohlen, die neueste Version von WordPress direkt von der Website des Projekts herunterzuladen.

Zuerst wechseln Sie in ein beschreibbares Verzeichnis (ein temporäres wie /tmp wird empfohlen):

  1. cd /tmp

Dies ändert Ihr Arbeitsverzeichnis in den temporären Ordner. Geben Sie dann den folgenden Befehl ein, um die neueste Version von WordPress als komprimierte Datei herunterzuladen:

  1. curl -LO https://wordpress.org/latest.tar.gz

Entpacken Sie die komprimierte Datei, um die Verzeichnisstruktur von WordPress zu erstellen:

  1. tar xzvf latest.tar.gz

Sie werden diese Dateien in Kürze in Ihr Dokumentenstammverzeichnis verschieben, aber bevor Sie dies tun, kopieren Sie die Beispieldatei-Konfiguration in die Datei, die WordPress liest:

  1. cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php

Kopieren Sie den gesamten Inhalt des Verzeichnisses in Ihr Dokumentenstammverzeichnis. Das -a-Flag stellt sicher, dass Ihre Berechtigungen beibehalten werden, und ein Punkt am Ende Ihres Quellverzeichnisses zeigt an, dass alles innerhalb des Verzeichnisses kopiert werden soll (einschließlich versteckter Dateien):

  1. sudo cp -a /tmp/wordpress/. /var/www/your_domain

Mit Ihren Dateien an Ort und Stelle, weisen Sie dem Benutzer und der Gruppe www-data Besitz zu. Dies ist der Benutzer und die Gruppe, unter der Nginx ausgeführt wird, und Nginx muss in der Lage sein, WordPress-Dateien zu lesen und zu schreiben, um die Website zu bedienen und automatische Updates durchzuführen:

  1. sudo chown -R www-data:www-data /var/www/your_domain

Ihre WordPress-Dateien befinden sich jetzt im Dokumentenstamm des Servers und haben den richtigen Besitz. Jetzt sind Sie bereit, WordPress zu konfigurieren.

Schritt 6 — Einrichten der WordPress-Konfigurationsdatei

Wenn Sie die WordPress-Konfigurationsdatei öffnen, beginnen Sie damit, einige Geheimschlüssel anzupassen, um etwas Sicherheit für Ihre Installation bereitzustellen. WordPress bietet einen sicheren Generator für diese Werte an, sodass Sie keine Werte selbst erstellen müssen. Diese werden nur intern verwendet, daher beeinträchtigt es die Benutzerfreundlichkeit nicht, hier komplexe, sichere Werte zu haben.

Um sichere Werte vom WordPress-Schlüsselgenerator abzurufen, geben Sie Folgendes ein:

  1. curl -s https://api.wordpress.org/secret-key/1.1/salt/

Sie erhalten eindeutige Werte, die einer Ausgabe ähneln, die wie folgt aussieht:

Achtung! Es ist wichtig, dass Sie jedes Mal Ihre eigenen eindeutigen Werte anfordern. Kopieren Sie nicht die hier angezeigten Werte!

Output
define('AUTH_KEY', 'L4|2Yh(giOtMLHg3#] DO NOT COPY THESE VALUES %G00o|te^5YG@)'); define('SECURE_AUTH_KEY', 'DCs-k+MwB90/-E(=!/ DO NOT COPY THESE VALUES +WBzDq:7U[#Wn9'); define('LOGGED_IN_KEY', '*0kP!|VS.K=;#fPMlO DO NOT COPY THESE VALUES +&[%8xF*,18c @'); define('NONCE_KEY', 'fmFPF?UJi&(j-{8=$- DO NOT COPY THESE VALUES CCZ?Q+_~1ZU~;G'); define('AUTH_SALT', '@qA7f}2utTEFNdnbEa DO NOT COPY THESE VALUES t}Vw+8=K%20s=a'); define('SECURE_AUTH_SALT', '%BW6s+d:7K?-`C%zw4 DO NOT COPY THESE VALUES 70U}PO1ejW+7|8'); define('LOGGED_IN_SALT', '-l>F:-dbcWof%4kKmj DO NOT COPY THESE VALUES 8Ypslin3~d|wLD'); define('NONCE_SALT', '4J(<`4&&F (WiK9K#] DO NOT COPY THESE VALUES ^ZikS`es#Fo:V6');

Dies sind Konfigurationszeilen, die Sie direkt in Ihre Konfigurationsdatei einfügen können, um sichere Schlüssel festzulegen. Kopieren Sie jetzt die Ausgabe, die Sie erhalten haben.

Öffnen Sie die WordPress-Konfigurationsdatei:

  1. sudo nano /var/www/your_domain/wp-config.php

Finden Sie den Abschnitt, der die Beispielwerte für diese Einstellungen enthält:

/var/www/your_domain/wp-config.php
. . .
define('AUTH_KEY',         'put your unique phrase here');
define('SECURE_AUTH_KEY',  'put your unique phrase here');
define('LOGGED_IN_KEY',    'put your unique phrase here');
define('NONCE_KEY',        'put your unique phrase here');
define('AUTH_SALT',        'put your unique phrase here');
define('SECURE_AUTH_SALT', 'put your unique phrase here');
define('LOGGED_IN_SALT',   'put your unique phrase here');
define('NONCE_SALT',       'put your unique phrase here');
. . .

Löschen Sie diese Zeilen und fügen Sie die Werte ein, die Sie von der Befehlszeile kopiert haben:

/var/www/your_domain/wp-config.php
. . .
define('AUTH_KEY',         'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_KEY',  'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_KEY',    'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_KEY',        'VALUES COPIED FROM THE COMMAND LINE');
define('AUTH_SALT',        'VALUES COPIED FROM THE COMMAND LINE');
define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE');
define('LOGGED_IN_SALT',   'VALUES COPIED FROM THE COMMAND LINE');
define('NONCE_SALT',       'VALUES COPIED FROM THE COMMAND LINE');
. . .

Ändern Sie als nächstes einige der Datenbankverbindungseinstellungen am Anfang der Datei. Sie müssen den Datenbanknamen, den Datenbankbenutzer und das zugehörige Passwort anpassen, das in MySQL konfiguriert wurde.

Geben Sie die Verbindungsinformationen für Ihre Remote-Datenbank ein. Denken Sie daran, dieselbe IP-Adresse und dieselben Anmeldeinformationen zu verwenden, die Sie beim Testen Ihrer Remote-Datenbank verwendet haben:

/var/www/your_domain/wp-config.php
. . .
/** The name of the database for WordPress */
define('DB_NAME', 'wordpress');

/** MySQL database username */
define('DB_USER', 'remote_user');

/** MySQL database password */
define('DB_PASSWORD', 'remote_user_password');

/** MySQL hostname */
define('DB_HOST', 'db_server_ip');
. . .

Und schließlich fügen Sie nach der Zeile define( 'DB_COLLATE', '' ); diese hervorgehobene Zeile hinzu, die WordPress mitteilt, eine SSL-Verbindung zu Ihrer MySQL-Datenbank zu verwenden:

var/www/your_domain/wp-config.php
...
define( 'DB_COLLATE', '' );

define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);
...

Speichern und schließen Sie die Datei.

Mit Ihrer Konfiguration eingerichtet, ist WordPress installiert und Sie sind bereit, den webbasierten Einrichtungsassistenten auszuführen.

Schritt 7 — Einrichten von WordPress über die Webschnittstelle

WordPress verfügt über einen webbasierten Einrichtungsprozess. Während Sie ihn durchlaufen, wird er einige Fragen stellen und alle Tabellen, die er in Ihrer Datenbank benötigt, installieren. Hier führen Sie die ersten Schritte zur Einrichtung von WordPress durch, die Sie als Ausgangspunkt für den Aufbau Ihrer eigenen benutzerdefinierten Website verwenden können, die eine entfernte Datenbank im Hintergrund verwendet.

Navigieren Sie zur Domain (oder öffentlichen IP-Adresse), die mit Ihrem Webserver verknüpft ist, zusammen mit einem abschließenden /wp-admin:

http://your_domain.com/wp-admin

Es wird Sie aufgefordert, die Sprache auszuwählen, die Sie verwenden möchten:

Anschließend gelangen Sie zur Hauptsetup-Seite.

Wählen Sie einen Namen für Ihre WordPress-Website und wählen Sie einen Benutzernamen aus. Es wird empfohlen, etwas Einzigartiges zu wählen und gebräuchliche Benutzernamen wie „admin“ aus Sicherheitsgründen zu vermeiden. Ein starkes Passwort wird automatisch generiert. Speichern Sie dieses Passwort oder wählen Sie ein alternatives starkes Passwort aus.

Geben Sie Ihre E-Mail-Adresse ein und wählen Sie aus, ob Sie möchten, dass Suchmaschinen das Indizieren Ihrer Website verhindern:

Nachdem Sie Ihre Informationen übermittelt haben, müssen Sie sich in die WordPress-Administrationsoberfläche mit dem gerade erstellten Konto einloggen. Anschließend gelangen Sie zu einem Dashboard, auf dem Sie Ihre neue WordPress-Website anpassen können.

Fazit

Durch das Befolgen dieses Tutorials haben Sie eine MySQL-Datenbank eingerichtet, um SSL-geschützte Verbindungen von einer entfernten WordPress-Installation zu akzeptieren. Die Befehle und Techniken, die in dieser Anleitung verwendet werden, sind auf jede Webanwendung anwendbar, die in jeder Programmiersprache geschrieben ist, aber die spezifischen Implementierungsdetails werden sich unterscheiden. Konsultieren Sie die Dokumentation Ihrer Anwendung oder Sprache für weitere Informationen.

Source:
https://www.digitalocean.com/community/tutorials/how-to-set-up-a-remote-database-to-optimize-site-performance-with-mysql-on-ubuntu-20-04