Übersicht
Der folgende Beitrag zeigt die Schritte zur Installation von WordPress mit Nginx auf Debian 10 und auch auf Debian 11. Auf einem einzelnen Debian-Server werden wir den LEMP-Stack (Nginx, PHP und MariaDB) installieren und konfigurieren und am Ende WordPress installieren und ausführen. Mit anderen Worten, unser einzelner Debian-Server wird den Nginx-Webserver, den MariaDB-Server und WordPress insgesamt ausführen.
WordPress kann auch auf mehreren separaten Servern (separater Webserver und separater Datenbankserver) eingerichtet und ausgeführt werden. Wenn Sie eine solche Einrichtung (mit einer entfernten Datenbank) benötigen, können Sie in diesem Beitrag nachlesen, wie Sie sie einrichten. Eine andere Methode zum Installieren und Ausführen von WordPress ist Docker, das in diesem Beitrag behandelt wird.
Installieren Sie notwendige Bibliotheken und Pakete
sudo apt install nginx php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl mariadb-server
Sobald die Installation abgeschlossen ist, starten Sie Nginx und MariaDB, wenn sie nicht ausgeführt werden, und aktivieren Sie sie für den automatischen Start beim Booten.
sudo systemctl start nginx.service sudo systemctl enable nginx.service sudo systemctl start mariadb.service sydo systemctl enable mariadb.service
Datenbank konfigurieren
Starten und konfigurieren Sie den Mariadb-Server mit einer Datenbank, Benutzer- und Gewährungsberechtigungen.
Davor empfiehlt es sich, zunächst die sichere Installation durchzuführen:
sudo mysq_secure_installation
Wenn Sie zur Änderung des Root-Passworts aufgefordert werden, können Sie es überspringen, aber das hängt davon ab, ob Sie das Root-Passwort ändern müssen oder nicht. Mit den restlichen Fragen können Sie fortfahren und mit der Option Ja fortfahren. Ähnlich wie im Bild unten:
Greifen Sie dann auf den Datenbankserver zu und erstellen Sie die Datenbank, einen Benutzer und legen Sie Berechtigungen fest
sudo mysql -u root -p CREATE DATABASE sampledbwp; GRANT ALL ON sampledbwp.* TO 'sample-admin'@'localhost' IDENTIFIED BY 'SamplePassword1'; quit
Mit diesen Befehlen haben wir die Datenbank – sampledbwp – erstellt, den Benutzer sample-admin auf localhost erstellt und alle Berechtigungen zum Lesen und Schreiben der gerade erstellten Datenbank erteilt.
WordPress installieren und konfigurieren
Navigieren Sie zum folgenden Verzeichnis und laden Sie die WordPress-Installation herunter und extrahieren Sie sie:
cd /var/www/html/ sudo wget https://wordpress.org/latest.tar.gz sudo tar -xzfv latest.tar.gz
Wechseln Sie in das WordPress-Verzeichnis und benennen Sie die Datei wp-config-sample.php in wp-config.php
umcd wordpress mv wp-config-sample.php wp-config.php
Jetzt werden wir die WordPress-Konfigurationsdatei bearbeiten:
sudo nano wp-config.php
In der Konfigurationsdatei müssen wir den Datenbankbenutzer, den Datenbanknamen und das Passwort hinzufügen, das wir auf dem MariaDB-Server erstellt haben, und Salzschlüssel von – https://api.wordpress.org/secret-key/1.1/salt/ hinzufügen. Siehe Beispielbild unten:
Speichern und beenden.
Stellen Sie die richtigen Berechtigungen für die WordPress-Installation ein, um über das Internet zugänglich zu sein:
sudo chown -R www-data:www-data /var/www/html/wordpress sudo chmod -R 755 /var/www/html/wordpress
Nginx konfigurieren
Fahren Sie mit der Konfiguration des nginx-Webservers fort. Der erste Schritt besteht darin, die Konfigurationsdatei für unsere WordPress-Website zu erstellen. Führen Sie den folgenden Befehl aus, um den Texteditor zu starten:
sudo nano /etc/nginx/sites-available/wordpress.conf
Nachfolgend finden Sie die Beispielkonfiguration:
server { listen 80; listen [::]:80; root /var/www/html/wordpress; index index.php index.html index.htm; server_name mysite.com www.mysite.com; error_log /var/log/nginx/mysite.com_error.log; access_log /var/log/nginx/mysite.com_access.log; client_max_body_size 100M; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.3-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
Speichern und beenden.
Hinweis – Überprüfen und bestätigen Sie das Stammverzeichnis Ihrer WordPress-Installation und die php-fpm-Version, die auf Ihrem Server ausgeführt wird. Diese müssen in der Konfigurationsdatei übereinstimmen.
Am Ende sollte es etwa so aussehen:
Die Standardkonfiguration verbleibt weiterhin in Nginx und ist aktiv. Bis zum Entfernen findet Ihre Konfiguration nicht statt, was bedeutet, dass Ihre WordPress-Website nicht erreichbar ist, daher müssen wir die Standardkonfiguration entfernen:
sudo rm /etc/nginx/sites-available/default sudo rm /etc/nginx/sites-enabled/default
Erstellen Sie den Symlink für unsere neue Nginx-Wordpress-Konfiguration:
sudo ln -s /etc/nginx/sites-available/wordpress.conf /etc/nginx/sites-enabled/
Überprüfen Sie danach die Konfiguration mit:
sudo nginx -t
und starten Sie Nginx neu
sudo systemctl restart nginx
Testen Sie, ob WordPress im Browser aktiv ist, indem Sie entweder mit der Server-IP-Adresse oder mit der URL (wenn Sie den Domainnamen zugewiesen haben) darauf zugreifen und die Installation abschließen:
Und das ist alles. Sie haben jetzt eine WordPress-Website am Laufen.
Einige Vorschläge und Sicherheitstipps
Hier möchte ich auf einige Vorschläge für eine sicherere WordPress-Installation und deren Wartung hinweisen.
- Der erste Vorschlag ist, die Datei xmlrpc.php zu löschen
Diese Datei ist kein entscheidender Punkt von WordPress und WordPress kann problemlos ohne diese Datei funktionieren. Die Xmlrpc-Datei wurde in den frühen Stadien von WordPress als Dienst verwendet, wo Blog-Clients sich über xmlrpc mit WordPress verbinden, um (kurz) neue Inhalte zu veröffentlichen. Diese Datei ist jetzt eine Ursache für viele und verschiedene böswillige Angriffe (DDoS, Brute Force usw.).
In diesem Beispiel können wir diese Datei mit dem Befehl löschen:
sudo rm /var/www/html/wordpress/xmlrpc.php
Eine Anmerkung auch – mit jedem Update/Upgrade von WordPress wird diese Datei wieder angezeigt, daher ist es notwendig, jedes Mal, wenn WordPress aktualisiert wird, erneut zu handeln.
- Lösche wp-config-sample.php
In diesem Beitrag haben wir diese Datei in die wp-config.php umbenannt. Wir sind auf diese Weise vorgegangen, da wir die Datenbankanmeldeinformationen für WordPress manuell hinzugefügt haben, um eine Verbindung zum Datenbankserver herzustellen, und auch die Salt-Schlüssel hinzugefügt haben. Diese Datei taucht auch bei jedem WordPress-Update/Upgrade wieder auf und es wird empfohlen, sie zu löschen, da sie vielen böswilligen Angriffen ausgesetzt ist, die dazu führen können, dass Ihre Website heruntergefahren wird.
- Wp-Login-URL ausblenden und 2FA-Login hinzufügen
Es wird dringend empfohlen, die Standard-URL-Anmeldung zu ändern, um Brute-Force-Angriffe zu verhindern, und eine Anmeldung mit Zwei-Faktor-Authentifizierung hinzuzufügen. Sie können dies ganz einfach mit Plugins wie – WPS Hide Login und miniOrange 2-Factor tun. Auch WordPress hat jetzt standardmäßig seinen 2FA-Login.
- Firewall-Plug-in hinzufügen und kein Konto mit dem Benutzernamen admin verwenden
Eines der ersten Plug-ins, dessen Installation dringend empfohlen wird, ist ein Firewall-Plug-in wie Wordfence oder Sucuri
Zusammenfassung
Wir haben die Schritte zur Installation von WordPress mit Nginx auf Debian 10 und auch auf Debian 11 behandelt. Dieses Szenario, in dem WordPress mit seiner Datenbank auf einem einzelnen Servercomputer bereitgestellt wird, ist eine gute Option, wenn Sie jetzt auch anfangen und keine haben zusätzliches Budget für die Infrastruktur oder wenn Sie ein Anfänger sind, der WordPress zum ersten Mal auf einem Cloud-/dedizierten/VM-/VPS-Hosting oder nur zu Testzwecken ausprobiert.
Aber ein Nachteil, den es im Laufe der Zeit verursachen kann, ist, wenn Sie dieses Szenario immer noch in der Produktion haben, kann es ziemlich schwierig werden, den Server zu warten, wenn Upgrades angewendet werden müssen, da es zu Ausfallzeiten kommen kann. Aus diesem Grund ist es üblich, mindestens zwei Server zu haben und die WordPress-Installation zu trennen, indem auf einem Server nur der Webserver (Nginx oder Apache) und die WordPress-Installation und auf dem anderen der Datenbankserver (MariaDB, MySQL) liegen. Den Einrichtungsprozess für diese Art von Umgebung können Sie sich in diesem Beitrag ansehen.
Vielen Dank für Ihre Zeit…