So installieren Sie WordPress mit Nginx unter Debian 12 oder 11

WordPress ist ein leistungsstarkes und weit verbreitetes Content-Management-System (CMS), mit dem Benutzer problemlos Websites erstellen und verwalten können. In Kombination mit dem LEMP-Stack (Linux, NGINX, MariaDB, PHP) wird WordPress zu einer robusten und leistungsstarken Plattform für die Webentwicklung. Der LEMP-Stack ist für seine Effizienz, Geschwindigkeit und Skalierbarkeit bekannt und eignet sich daher ideal zum Hosten von WordPress-Websites. Zu den wichtigsten Funktionen von WordPress gehören eine intuitive Benutzeroberfläche, ein umfangreiches Plugin-Ökosystem, anpassbare Designs und starker Community-Support.

Um WordPress auf Debian 12 oder 11 mit NGINX, MariaDB und PHP zu installieren, folgen Sie diesen Schritten. Diese Anleitung behandelt die Einrichtung des LEMP-Stacks, die Installation von WordPress und wichtige Konfigurationen, damit Ihre Site reibungslos läuft.

Installieren Sie LEMP für WordPress

Aktualisieren Sie Debian, bevor Sie den LEMP-Stack installieren

Bevor Sie WordPress installieren, aktualisieren Sie Ihr Debian-System, um mögliche Konflikte zu vermeiden. Öffnen Sie Ihr Terminal und führen Sie Folgendes aus:

sudo apt update && sudo apt upgrade

Dieser Befehl aktualisiert verfügbare Pakete und aktualisiert Ihr System.

Installieren Sie die erforderlichen Pakete

Auch wenn Sie einige wichtige Pakete für WordPress haben, überprüfen Sie noch einmal, ob Sie keines vergessen haben. Führen Sie den folgenden Befehl aus:

sudo apt install curl git wget unzip zip

Dieser Befehl installiert oder bestätigt die erforderlichen Pakete für WordPress.

Nginx installieren – Teil 1 der LEMP-Installation

Um einen LEMP-Stack einzurichten, müssen Sie Nginx installieren. Führen Sie diesen Befehl aus:

sudo apt install nginx

Überprüfen Sie nach der Installation, ob Nginx ausgeführt wird:

systemctl status nginx

Sollte der Nginx-Dienst nicht aktiv sein, können Sie ihn mit folgendem Befehl in Gang setzen:

sudo systemctl enable nginx --now

Dieser Befehl stellt sicher, dass Nginx bei jedem Serverneustart gestartet wird, was für einen funktionsfähigen LEMP-Stack unerlässlich ist.

Hinweis: Um die Leistung Ihres WordPress zu optimieren, verwenden Sie am besten die neueste Nginx-Hauptversion. Sie können der Anleitung auf folgen Installieren von Nginx Mainline unter Debian Linux um die neueste Version zu installieren. Diese Version bietet zusätzliche Funktionen und Verbesserungen, um die Geschwindigkeit und Gesamtleistung Ihrer Website zu verbessern.

Einrichten der UFW-Firewall für Nginx

Die Konfiguration der UFW-Firewall mit Ihrem Nginx-Server ist aus Sicherheitsgründen und um externen Zugriff auf Standard-Webports zu ermöglichen, von entscheidender Bedeutung. Die gute Nachricht ist, dass Nginx Profile bietet, die den UFW-Einrichtungsprozess vereinfachen.

UFW installieren:

Wenn Sie UFW noch nicht auf Ihrem Debian-System installiert haben, führen Sie den folgenden Befehl aus:

sudo apt install ufw

UFW aktivieren:

Nach der Installation ist es an der Zeit, UFW zu aktivieren. Standardmäßig blockiert UFW alle eingehenden Verbindungen und lässt alle ausgehenden Verbindungen zu. Aktivieren Sie die Firewall mit:

sudo ufw enable

Nginx-Profile anzeigen:

Um die für UFW verfügbaren Nginx-Profile zu überprüfen, führen Sie Folgendes aus:

sudo ufw app list

Anhand der Ausgabe können Sie Folgendes feststellen:

  • Nginx läuft auf Port 80 (HTTP)
  • Nginx Secure läuft auf Port 443 (HTTPS)
  • Nginx Full umfasst beide Ports

UFW für Nginx konfigurieren:

Wenn Sie sowohl HTTP- als auch HTTPS-Zugriff aktivieren möchten, wählen Sie das Nginx-Vollprofil:

sudo ufw allow 'Nginx Full'

Ihre Anforderungen können jedoch abweichen:

Wählen Sie für den ausschließlichen HTTPS-Zugriff das Nginx Secure-Profil:

sudo ufw allow 'Nginx Secure'

Nur-HTTP-Zugriff, verwenden Sie das Nginx-HTTP-Profil:

sudo ufw allow 'Nginx HTTP'

Sie können andere UFW-Regeln erstellen, um Ihren Server und Ihr LEMP-Setup mit WordPress zu sichern, und Sie sollten Zeit investieren, um Ihren Server zu sperren, wenn er der Öffentlichkeit zugänglich ist.

MariaDB installieren – Teil 2 der LEMP-Installation

MariaDB, bekannt für seine verbesserte Leistung gegenüber MySQL, ist die Datenbankkomponente im LEMP-Stack. Wenn Sie eine bestimmte Version von MariaDB aus den offiziellen Repositories von MariaDB.org installieren möchten, lesen Sie die Anleitungen auf Installieren von MariaDB unter DebianDadurch können Sie die Leistung Ihres WordPress weiter optimieren.

Um MariaDB zu installieren, führen Sie Folgendes aus:

sudo apt install mariadb-server mariadb-client

Überprüfen Sie nach der Installation den Status von MariaDB:

systemctl status mariadb

Dieser Befehl zeigt den Dienststatus von MariaDB und alle möglichen Fehler an.

Wenn MariaDB nicht läuft, starten Sie es mit:

sudo systemctl enable mariadb --now

Dadurch wird sichergestellt, dass MariaDB bei jedem Systemneustart gestartet wird, was für einen stabilen LEMP-Stack und ein stabiles WordPress-Setup von entscheidender Bedeutung ist.

Sichern Sie MariaDB mit einem Sicherheitsskript

Aus Datenschutzgründen müssen Sie Ihre MariaDB-Installation sichern. Neue MariaDB-Installationen haben möglicherweise laxe Sicherheitsstandards und sind daher Bedrohungen ausgesetzt. Das Skript mysql_secure_installation kann jedoch die Abwehr Ihrer Datenbank stärken.

Führen Sie das Sicherheitsskript aus:

sudo mysql_secure_installation

Dieses Skript führt Sie durch mehrere Sicherheitskonfigurationen:

  • Festlegen des Root-Passworts oder Auswählen des Unix-Sockets zum Schutz vor unbefugtem Zugriff.
  • Löschen anonymer Benutzerkonten, um den Datenbankzugriff auf autorisierte Benutzer zu beschränken.
  • Einschränken der Remote-Anmeldung für Root-Benutzerkonten.
  • Entfernen der Testdatenbank, um unbefugten Zugriff und mögliche Datenlecks zu vermeiden.

Beantworten Sie jede Eingabeaufforderung sorgfältig. Diese Einstellungen wirken sich erheblich auf die Sicherheit Ihrer Datenbank aus. Nach Abschluss der Schritte sollte Ihr MariaDB-Setup sicher und betriebsbereit sein.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] Y <---- Type Y then press the ENTER KEY.
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y <---- Type Y then press the ENTER KEY.
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y <---- Type Y then press the ENTER KEY.
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Diese Sicherheitsmaßnahmen gewährleisten, dass Ihre MariaDB-Installation sicher und vor Bedrohungen geschützt ist.

PHP, PHP-FPM installieren – Teil 3 der LEMP-Installation

Für einen vollständigen LEMP-Stack müssen Sie PHP installieren. PHP fungiert als Brücke zwischen Nginx und MariaDB und wird durch PHP-FPM und andere wichtige Module für WordPress unterstützt.

Hinweis: Wenn Sie eine bestimmte, auf Ihre Bedürfnisse zugeschnittene PHP-Version wünschen, konsultieren Sie unsere Anleitung zur Installation von PHP unter Debian. Neue Linux-Benutzer sollten vorerst die Standardeinstellung verwenden, bevor sie benutzerdefinierte Versionen installieren.

Führen Sie den folgenden Befehl aus, um PHP, PHP-FPM und die erforderlichen Module zu installieren:

sudo apt install php php-fpm php-mbstring php-bcmath php-xml php-mysql php-common php-gd php-cli php-curl php-zip php-imagick php-ldap php-intl

Überprüfen Sie nach der Installation den Status des PHP-Dienstes. Dies ist ähnlich wie bei MariaDB und Nginx. Für dieses Beispiel verwenden wir PHP 7.4:

systemctl status php7.4-fpm

Die Ausgabe sollte folgendermaßen aussehen:

Hinweis: Die PHP-FPM-Version variiert mit jeder stabilen Debian-Version. Wenn Sie sich über Ihre Version nicht sicher sind, führen Sie aus php -v herausfinden.

Vorinstallationskonfiguration für WordPress mit LEMP

Erstellen Sie eine WordPress-Verzeichnisstruktur

Um WordPress auf Ihrem Debian LEMP-Stack zu installieren, können Sie entweder herunterladen Laden Sie die neueste Version von der offiziellen Download-Seite von WordPress.org herunter oder verwenden Sie den folgenden Befehl, um sie direkt herunterzuladen:

wget https://wordpress.org/latest.zip

Nach dem Download entpacken Sie das Archiv mit dem folgenden Befehl in das Verzeichnis /var/www/html:

sudo unzip latest.zip -d /var/www/html/

Stellen Sie als Nächstes sicher, dass WordPress über die richtigen Schreibberechtigungen verfügt, indem Sie die Berechtigungen des Verzeichnisbesitzers auf den Webserver-Benutzer festlegen.

Dies kann mit dem folgenden Befehl erfolgen:

sudo chown -R www-data:www-data /var/www/html/wordpress/

Nachdem Sie die Berechtigung des Verzeichnisbesitzers festgelegt haben, müssen Sie mit den folgenden Befehlen die richtigen Berechtigungen für die WordPress-Ordner und -Dateien festlegen:

Für Ordner:

sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;

Und für Dateien:

sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;

Durch das Festlegen der richtigen Ordner- und Dateiberechtigungen wird sichergestellt, dass Ihre WordPress-Installation sicher ist und ordnungsgemäß funktioniert.

Erstellen Sie eine Datenbank für WordPress

Um WordPress auf Ihrem Debian LEMP-Stack auszuführen, müssen Sie eine Datenbank mit MariaDB erstellen. Greifen Sie mit dem folgenden Befehl als Root auf die MariaDB-Shell zu:

sudo mariadb -u root

Erstellen Sie in der MariaDB-Shell mit dem folgenden Befehl eine neue Datenbank:

CREATE DATABASE WORDPRESSDB;

Erstellen Sie als Nächstes mit dem folgenden Befehl ein neues Benutzerkonto für WordPress:

CREATE USER 'WPUSER'@localhost IDENTIFIED BY 'PASSWORD';

Hinweis: Ersetzen Sie „WPUSER“ und „PASSWORT“ durch Ihren gewünschten Benutzernamen und Ihr gewünschtes Passwort.

Weisen Sie dem neu erstellten Benutzerkonto abschließend mit dem folgenden Befehl ausschließlich Zugriff auf die Datenbank der WordPress-Website zu:

GRANT ALL PRIVILEGES ON WORDPRESSDB.* TO WPUSER@localhost IDENTIFIED BY 'PASSWORD';

Nachdem Sie das Benutzerkonto erstellt haben, löschen Sie die Berechtigungen mit dem folgenden Befehl, um sicherzustellen, dass die neuen Änderungen wirksam werden:

FLUSH PRIVILEGES;

Beenden Sie abschließend die MariaDB-Shell, indem Sie Folgendes eingeben:

EXIT;

Festlegen der WordPress-Konfigurationsdateien

Das Einrichten der WordPress-Konfigurationsdateien ist ein wesentlicher Schritt im Installationsprozess. Dazu gehört das Umbenennen der Beispieldatei wp-config.php und das Eingeben der erforderlichen Konfigurationsdetails.

Navigieren Sie mit dem folgenden Befehl zum WordPress-Verzeichnis:

cd /var/www/html/wordpress/

Kopieren Sie die Datei wp-config-sample.php mit dem folgenden Befehl nach wp-config.php:

sudo cp wp-config-sample.php wp-config.php

Rufen Sie mit einem Texteditor die neu kopierte Datei wp-config.php auf:

sudo nano wp-config.php

Geben Sie als Nächstes den Datenbanknamen, das Benutzerkonto (mit Kennwort) und ggf. die Host-IP-Adresse ein.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */ 

define( 'DB_NAME', 'WORDPRESSDB' );                 <--------------- change this

/* MySQL database username */ 

define( 'DB_USER', 'WPUSER );                               <--------------- change this

/* MySQL database password */

define( 'DB_PASSWORD', 'PASSWORD' );             <--------------- change this

/* MySQL hostname, change the IP here if external DB set up */ 

define( 'DB_HOST', 'localhost' );

/* Database Charset to use in creating database tables. */

define( 'DB_CHARSET', 'utf8' );

/* The Database Collate type. Don't change this if in doubt. */

define( 'DB_COLLATE', '' );

Zusätzlich zu diesen Einstellungen können Sie der Datei wp-config.php auch Folgendes hinzufügen, um die WordPress-Verwaltung zu verbessern:

/** ## Save files direct method ## */
define( 'FS_METHOD', 'direct' );

/** ## Increase memory limit, 256MB is recommended ## */
define('WP_MEMORY_LIMIT', '256M');

Das Speicherlimit Ihres dedizierten Servers oder VPS kann je nach Kapazität Ihres Systems variieren. Sie können das Speicherlimit von 256 MB in kleinen Schritten erhöhen oder verringern, z. B. auf 128 MB, 256 MB, 512 MB usw.

Hinweis: Es ist wichtig zu beachten, dass für optimale Leistung und Stabilität nur kleine Anpassungen am Speicherlimit empfohlen werden.

Implementierung von WordPress Security Salt Keys

Die Verbesserung der Sicherheit Ihrer WordPress-Installation ist von größter Bedeutung. Eine effektive Möglichkeit, dies zu erreichen, ist die Einrichtung von WordPress-Sicherheits-Salt-Schlüsseln. Diese Schlüssel fungieren als erweiterter Sicherheitsschild, der Ihre WordPress-Site gegen potenzielle Bedrohungen schützt und die Benutzerauthentifizierung und Datenverschlüsselung verbessert.

Generieren von Sicherheits-Salt-Schlüsseln

Um Ihre Sicherheits-Salt-Schlüssel zu erstellen, navigieren Sie zur WordPress Secret-Key-API: https://api.wordpress.org/secret-key/1.1/salt/. Nachdem Sie diese Schlüssel generiert haben, müssen Sie unbedingt die Platzhalterzeilen in Ihrer Datei wp-config.php durch Ihre eindeutigen Schlüssel ersetzen. Dieser Schritt verstärkt die Benutzerauthentifizierung und Datenverschlüsselung.

Hinweis: Verwenden Sie die hier oder anderswo bereitgestellten Beispielzeilen nicht, da sie nur zu Illustrationszwecken dienen. Die Verwendung voreingestellter Salt-Schlüssel kann Ihre Site anfällig machen. Generieren Sie für jedes WordPress-Setup immer eindeutige Schlüssel, um optimale Sicherheit zu gewährleisten.

Integrieren von Sicherheits-Salt-Schlüsseln

Um die neu generierten Sicherheits-Salt-Schlüssel in Ihre wp-config.php-Datei einzubetten, öffnen Sie die Datei in einem Texteditor:

sudo nano /var/www/html/wordpress/wp-config.php

Identifizieren Sie nun die Zeilen in der Datei wp-config.php, die den Beispielschlüsseln entsprechen. Sobald Sie sie gefunden haben, ersetzen Sie jeden Beispielschlüssel in der Datei wp-config.php durch Ihre neu generierten Schlüssel. Nachdem Sie die erforderlichen Ersetzungen vorgenommen haben, speichern und schließen Sie die Datei.

Wenn Sie den Nano-Editor verwenden, speichern Sie, indem Sie „STRG+X“ und anschließend „Y“ drücken.

Nginx-Serverblockkonfiguration für WordPress LEMP-Setup

Das korrekte Einrichten des Nginx-Serverblocks ist für eine reibungslose WordPress-Installation über die Web-Benutzeroberfläche von entscheidender Bedeutung. Es ist wichtig, die Anweisung „try_files $uri $uri/ /index.php?$args;“ richtig zu verwenden. Das Weglassen von „?$args“ kann die REST-API von WordPress beeinträchtigen. Befolgen Sie diese Anweisungen genau, um mögliche Probleme während der Installation zu vermeiden.

Erstellen Sie eine neue Serverkonfigurationsdatei für Ihre WordPress-Installation auf Nginx. Ersetzen Sie im folgenden Befehl „example.com“ durch Ihren tatsächlichen Domänennamen:

sudo nano /etc/nginx/sites-available/example.com.conf

Damit Nginx mit PHP funktioniert, müssen Sie „location ~ .php$“ in die Serverblock-Konfigurationsdatei aufnehmen. Hier ist eine Beispielkonfiguration, die Sie als Referenz verwenden können.

Stellen Sie sicher, dass Sie den Stammpfad und die Domänennamen an Ihr Setup anpassen:

server {
  listen 80;
  listen [::]:80;
  server_name www.example.com example.com;
  root /var/www/html/wordpress;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php?$args;
  }

  location ~* /wp-sitemap.*\.xml {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  client_max_body_size 100M;

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 128k;
    fastcgi_intercept_errors on;
  }

  gzip on;
  gzip_comp_level 6;
  gzip_min_length 1000;
  gzip_proxied any;
  gzip_disable "msie6";
  gzip_types application/atom+xml application/geo+json application/javascript application/x-javascript application/json application/ld+json application/manifest+json application/rdf+xml application/rss+xml application/xhtml+xml application/xml font/eot font/otf font/ttf image/svg+xml text/css text/javascript text/plain text/xml;

  location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
    expires 90d;
    access_log off;
  }

  location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
    add_header Access-Control-Allow-Origin "*";
    expires 90d;
    access_log off;
  }

  location ~ /\.ht {
    access_log off;
    log_not_found off;
    deny all;
  }
}

Denken Sie daran, die Nginx-Konfigurationsdatei entsprechend anzupassen, wenn Sie eine andere PHP- oder PHP-FPM-Version installiert haben oder Ihre Debian-Version standardmäßig eine andere PHP-Version verwendet.

Ändern Sie beispielsweise für PHP-FPM 8.2 die Zeile fastcgi_pass unix:/run/php/php8.1-fpm.sock; in fastcgi_pass unix:/run/php/php8.2-fpm.sock;. Für eine reibungslose Funktionalität ist es wichtig, dass die Version in der Konfiguration mit der Version auf Ihrem System übereinstimmt.

Den WordPress Nginx-Serverblock verstehen

Für diejenigen, die noch keine Erfahrung mit der Einrichtung von Nginx und WordPress haben, folgt hier eine Aufschlüsselung des Serverblockbeispiels:

Grundlegende Servereinstellungen:

  • Diese Einstellungen definieren die grundlegenden Aspekte des Serverblocks, wie etwa die IP-Adresse, den Port, auf dem Nginx lauscht, und Servernamen.
  • Die Root-Direktive verweist auf das primäre Verzeichnis, das die Website-Dateien enthält.
  • Die Index-Direktive weist Nginx an, beim Bereitstellen der Site Indexdateien zu identifizieren.

Ortseinstellungen:

  • Diese Einstellungen umfassen verschiedene Standortblöcke, die bestimmen, wie Nginx Anfragen für verschiedene URLs verarbeitet.
  • Der anfängliche Standortblock verwaltet Anfragen an die Stamm-URL der Site unter Verwendung der Direktive „try_files“.
  • Der nachfolgende Standortblock verarbeitet Anfragen speziell für die WordPress-Sitemap.xml-Datei.

PHP-Handling-Einstellungen:

  • Diese Einstellungen bestimmen, wie Nginx PHP-Dateien verarbeitet.
  • Die Direktive fastcgi_pass verweist auf den Speicherort der PHP-FPM-Socket-Datei.
  • Die Direktive fastcgi_param weist den Wert des Parameters SCRIPT_FILENAME dem Speicherort der angeforderten PHP-Datei zu.
  • Die Include-Direktiven ziehen zusätzliche Konfigurationsdateien für das FastCGI-Modul ein.
  • Anweisungen wie fastcgi_buffer_size und fastcgi_buffers legen die Puffergröße für den Datentransfer zwischen Nginx und PHP-FPM fest.
  • Die Direktive fastcgi_intercept_errors ermöglicht Nginx, PHP-Fehler zu erfassen und zu verwalten.

Gzip-Komprimierungseinstellungen:

  • Diese Einstellungen konfigurieren die Gzip-Komprimierung und reduzieren so die an den Client übermittelte Dateigröße.
  • Die gzip-Direktive aktiviert die Gzip-Komprimierung.
  • Anweisungen wie gzip_comp_level und gzip_min_length bestimmen den Komprimierungsgrad bzw. die minimale Dateigröße für die Komprimierung.
  • Die Direktive gzip_proxied gibt an, welche Anforderungstypen komprimiert werden.
  • Die Direktive gzip_types listet die für die Komprimierung in Frage kommenden MIME-Typen auf.

Einstellungen für das Zwischenspeichern von Dateien:

  • Diese Einstellungen optimieren das Caching für statische Dateien und verbessern die Website-Geschwindigkeit.
  • Der anfängliche Standortblock legt die Ablaufdauer für Asset- und Mediendateien fest.
  • Der nachfolgende Standortblock legt das Ablaufdatum für Schriftart- und SVG-Dateien fest.
  • Anweisungen wie access_log und log_not_found regeln die Anforderungsprotokollierung.
  • Die Direktive „add_header“ hängt den Header „Access-Control-Allow-Origin“ an und ermöglicht das Laden von Schriftarten und SVGs aus externen Domänen.

Blockieren von .htaccess-Dateien:

  • Diese Einstellung beschränkt den Zugriff auf Dateien, die mit .ht beginnen. Dabei handelt es sich normalerweise um vertrauliche Serverkonfigurationsdateien.

Einrichten des Nginx-Serverblocks mit einem symbolischen Link

Um die Konfiguration des Nginx-Serverblocks abzuschließen, müssen Sie die Konfigurationsdatei aus dem Verzeichnis „sites-available“ aktivieren. Dies wird erreicht, indem ein symbolischer Link zum Verzeichnis „sites-enabled“ erstellt wird.

Führen Sie den folgenden Befehl aus und ersetzen Sie dabei „example.com.conf“ durch den Namen Ihrer Konfigurationsdatei:

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

Dieser Befehl erstellt einen symbolischen Link zwischen den Verzeichnissen und gewährt Nginx Zugriff auf die Konfigurationsdatei. Nachdem Sie dies eingerichtet haben, validieren Sie die Konfiguration mit:

sudo nginx -t

Wenn der Test keine Fehler zurückgibt, starten Sie Nginx neu, um die Serverblockänderungen anzuwenden:

sudo systemctl restart nginx

Wenn Sie diese Schritte abgeschlossen haben, sollte Ihre WordPress-Site jetzt über Nginx zugänglich sein.

Konfigurieren von PHP.ini für optimale WordPress-Leistung

Die Optimierung Ihrer PHP-Einstellungen ist entscheidend, um die beste Leistung mit WordPress zu erzielen. Um Mediendateien in WordPress effizient zu verarbeiten, sollten Sie die maximale Upload-Größe, die Post-Größe und das Speicherlimit erhöhen. Möglicherweise müssen Sie auch die maximale Ausführungszeit und die Eingabevariablen anpassen, um potenzielle Probleme zu vermeiden.

Um auf Ihre php.ini-Datei zuzugreifen, verwenden Sie das Terminal. Denken Sie daran, dass der Speicherort der Datei je nach Ihrer PHP-Version unterschiedlich sein kann:

sudo nano /etc/php/8.0/fpm/php.ini
sudo nano /etc/php/8.1/fpm/php.ini
sudo nano /etc/php/8.2/fpm/php.ini
sudo nano /etc/php/8.3/fpm/php.ini

Um die PHP-Einstellungen anzupassen, suchen und passen Sie die folgenden Zeilen in Ihrer php.ini-Datei an:

##increase this to the maximum file size you want to upload, recommended 50 to 100MB## 
 upload_max_filesize = 100M

##increase this to the maximum post size you want to allow, recommended 50 to 100MB##
 post_max_size = 100M

##increase this to the maximum execution time, recommended 150 to 300 seconds##
 max_execution_time = 300

##increase this to the maximum GET/POST/COOKIE input variables, recommended 5000 to 10000##
max_input_vars = 5000

##increase this to the maximum memory limit, recommended 256MB or 512MB. Note that you should ensure your system has enough RAM before raising this.##
memory_limit = 256M

Nach der Änderung Ihrer PHP-Einstellungen müssen Sie den PHP-FPM-Server unbedingt neu starten. Dadurch wird sichergestellt, dass die neuen Konfigurationen aktiv sind und Ihre WordPress-Site optimal funktioniert.

Erhöhen Sie die maximale Textgröße des Nginx-Server-Clients

Um größere Datei-Uploads auf Ihrer WordPress-Site zu ermöglichen, müssen Sie den Nginx-Serverblock optimieren. Dadurch wird sichergestellt, dass Nginx größere HTTP-Anforderungstexte verarbeiten kann, was bei umfangreichen Datei-Uploads unerlässlich ist.

Ändern des Nginx-Serverblocks

Öffnen Sie Ihre Serverblock-Konfigurationsdatei und fügen Sie die folgende Zeile ein:

##set to the maximum upload size you set in upload_max_filesize.##
client_max_body_size – <size>

Stellen Sie sicher, dass der Wert für client_max_body_size mit der upload_max_filesize übereinstimmt, die Sie in Ihren PHP-Einstellungen konfiguriert haben.

PHP-FPM neu starten

Nachdem Sie die PHP-Einstellungen für eine optimale WordPress-Leistung angepasst haben, einschließlich Upload-Größe, Post-Größe und Speicherlimit, ist es wichtig, den PHP-FPM-Server neu zu starten, damit die Änderungen wirksam werden. Der genaue Befehl zum Neustarten des Servers hängt von Ihrer PHP-Version ab. Wenn Sie sich über Ihre PHP-Version nicht sicher sind, konsultieren Sie die Dokumentation Ihres Systems.

Verwenden Sie für verschiedene PHP-Versionen die entsprechenden Befehle, um PHP-FPM neu zu starten:

sudo systemctl restart php8.0-fpm
sudo systemctl restart php8.1-fpm
sudo systemctl restart php8.2-fpm
sudo systemctl restart php8.3-fpm

WordPress-Frontend installieren

Nachdem Sie die Einrichtung und Konfiguration des Backends abgeschlossen haben, ist es an der Zeit, das WordPress-Frontend auf Ihrer Domain zu starten. Starten Sie die Installation, indem Sie zu Ihrer Domain gehen, der das Präfix „https://“ oder „http://“ vorangestellt ist. Alternativ können Sie direkt auf „https://www.yoursite.com/wp-admin/install.php“ zugreifen.

Diese URL leitet Sie zum Front-End-Installationsassistenten weiter.

Schritt 1: WordPress-Sprache auswählen

Wählen Sie die gewünschte Sprache aus und klicken Sie auf "Weitermachen."

Schritt 2: Administratorbenutzer für WordPress erstellen

Als Nächstes gelangen Sie auf eine Seite, auf der Sie aufgefordert werden, Ihren Site-Titel, Benutzernamen, Ihr Passwort und die E-Mail-Adresse des Hauptadministrators für die WordPress-Site einzugeben.

Wählen Sie aus Sicherheitsgründen ein sicheres Passwort und geben Sie eine gültige E-Mail-Adresse an. Denken Sie daran, dass Sie später im WordPress-Einstellungsfenster weitere Einstellungen ändern können.

Für diejenigen, die ihre Site entwickeln und sie vor Suchmaschinen wie Google oder Bing geheim halten möchten, gibt es die Option, „Suchmaschinen dringend von der Indizierung abzuhalten“.

Schritt 3: Fahren Sie fort und klicken Sie auf die Schaltfläche WordPress installieren

Nachdem Sie Ihre Daten und Präferenzen eingegeben haben, klicken Sie auf „WordPress installieren“ Schaltfläche. Nach einer erfolgreichen Installation werden Sie zur Anmeldeseite weitergeleitet.

Schritt 4: Melden Sie sich auf der WordPress-Admin-Seite an

Geben Sie Ihre Anmeldedaten ein und klicken Sie auf „Anmelden“. Dadurch gelangen Sie zum WordPress-Dashboard, wo Sie Ihre Website erstellen oder importieren können.

Schritt 5: Anzeigen und Anpassen der WordPress-Site über den WordPress-Administrator

Das WordPress-Dashboard ist Ihre Kommandozentrale. Hier können Sie neue Beiträge verfassen, Seiten gestalten, Designs und Plugins verwalten und das Aussehen, den Inhalt und die Funktionen Ihrer Site anpassen.

Das Dashboard mit seiner benutzerfreundlichen Oberfläche ermöglicht Ihnen die schnelle Erstellung Ihrer Website und ermöglicht Ihnen die Gestaltung einer ansprechenden und professionellen Site mit minimalem Aufwand.

Zusätzliche Tipps für WordPress mit Nginx

Sichern von WordPress und Nginx mit dem SSL-Zertifikat von Let’s Encrypt

Die Verbesserung der Sicherheit Ihres Webservers ist von größter Bedeutung. Eine effektive Möglichkeit, dies zu erreichen, besteht darin, Nginx unter Verwendung eines SSL-Zertifikats auf HTTPS auszuführen. Let’s Encrypt bietet eine kostenlose, automatisierte und offene Zertifizierungsstelle, die das Einrichten von SSL-Zertifikaten für Ihren Nginx-Server vereinfacht.

Certbot installieren

Beginnen Sie mit der Installation des Certbot-Pakets mit dem folgenden Befehl:

sudo apt install python3-certbot-nginx

Generieren des SSL-Zertifikats

Nachdem Sie das Certbot-Paket installiert haben, generieren Sie Ihr SSL-Zertifikat mit Folgendem:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Certbot fordert Sie während dieses Vorgangs auf, Ihre E-Mail-Adresse und Ihren Domänennamen einzugeben. Sie haben auch die Möglichkeit, E-Mails von der EFF zu erhalten. Entscheiden Sie je nach Ihren Präferenzen, ob Sie sich dafür entscheiden möchten.

Nach der Installation des Zertifikats wird die URL Ihrer Website von HTTP auf HTTPS umgestellt. Besucher, die auf die alte HTTP-URL zugreifen, werden automatisch auf die neue HTTPS-URL umgeleitet. Diese Konfiguration gewährleistet HTTPS 301-Umleitungen, einen Strict-Transport-Security-Header und OCSP-Stapling für höchste Sicherheit.

Einrichten der automatischen Zertifikatserneuerung

Um Ihr SSL-Zertifikat gültig zu halten, richten Sie einen Cron-Job für die automatische Erneuerung ein. Certbot bietet hierfür ein Skript an. Führen Sie vor der Fertigstellung der Einrichtung einen Probelauf durch:

sudo certbot renew --dry-run

Greifen Sie auf die Crontab-Konfiguration zu und geben Sie ein:

sudo crontab -e

Um Ihr SSL-Zertifikat automatisch zu erneuern, planen Sie es mithilfe eines Cron-Jobs mit dem folgenden Befehl:

00 00 */1 * * /usr/sbin/certbot-auto renew

Dadurch wird jeden Tag um Mitternacht versucht, das Zertifikat zu erneuern.

Beheben von PHP-Sitzungsfehlern

Sie haben Probleme beim Speichern von Sitzungen, insbesondere bei der Verwendung bestimmter Plugins? Die Ursache des Problems könnten falsche Benutzerberechtigungen im Verzeichnis /var/lib/php/sessions/ sein. Aber keine Sorge, Sie können dies mit einem einfachen Befehl beheben.

Anpassen der Verzeichnisberechtigungen

Führen Sie den folgenden Befehl aus, um die richtigen Berechtigungen festzulegen:

sudo chown -R www-data:www-data /var/lib/php/sessions/

Dieser Befehl legt den Benutzer und die Gruppe www-data als Eigentümer des Sitzungsverzeichnisses fest. Dadurch kann WordPress Sitzungsdaten ohne Probleme schreiben. Diese Anpassung ist für den reibungslosen Betrieb Ihrer WordPress-Site von entscheidender Bedeutung, insbesondere wenn Sie Plugins verwenden, die automatisierte Aufgaben wie das Posten in sozialen Medien übernehmen.

Die Behebung von PHP-Sitzungsfehlern ist der Schlüssel zur Steigerung der Leistung Ihrer Website und zur Verbesserung des Benutzererlebnisses.

Auflösen der HTTPS-Umleitungsschleife in WordPress

Wenn Ihre WordPress-Site nach der Aktivierung von HTTPS in einer Weiterleitungsschleife gefangen ist, liegt dies wahrscheinlich daran, dass WordPress weiterhin versucht, auf die sichere HTTPS-Version umzuleiten, die Schleife jedoch nie abgeschlossen wird. Um dies zu beheben, können Sie Ihre Datei wp-config.php mit bestimmten Codezeilen ändern.

Ändern der Datei wp-config.php

Fügen Sie die folgenden Zeilen in Ihre wp-config.php ein:

define('FORCE_SSL_ADMIN', true);

if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
    $_SERVER['HTTPS'] = 'on';
}

Hier ist eine Aufschlüsselung der Funktion jeder Zeile:

  • Die erste Zeile setzt die Konstante FORCE_SSL_ADMIN auf „true“ und stellt sicher, dass alle Administratorseiten HTTPS verwenden.
  • Der nachfolgende Code prüft, ob der Header HTTP_X_FORWARDED_PROTO den Begriff „https“ enthält. Wenn eine Übereinstimmung gefunden wird, wird die HTTPS-Servervariable auf „on“ gesetzt. Diese Aktion informiert WordPress darüber, dass die Verbindung sicher ist.

Durch die Integration dieser Zeilen in Ihre Datei wp-config.php sollten Sie in der Lage sein, aus der HTTPS-Umleitungsschleife auszubrechen und sicherzustellen, dass Ihre WordPress-Site mit ihrer neuen sicheren Verbindung reibungslos funktioniert.

Schleife der Domänennamen-Umleitung beheben

Eine Weiterleitungsschleife auf Ihrer WordPress-Site kann manchmal auf eine Nichtübereinstimmung zwischen dem in Ihrer wp-config.php-Datei angegebenen Domänennamen und dem Domänennamen Ihrer Website zurückzuführen sein. Um dies zu beheben, müssen Sie den Domänennamen in der Konfiguration überprüfen und ggf. anpassen.

Überprüfen der Datei wp-config.php

Überprüfen Sie die folgenden Zeilen in Ihrer wp-config.php:

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

Wenn der Domänenname nicht mit der Domäne Ihrer Website übereinstimmt, korrigieren Sie ihn entsprechend.

Abschluss

Wenn WordPress mithilfe des LEMP-Stacks erfolgreich auf Ihrem Debian-System installiert wurde, können Sie dessen leistungsstarke Funktionen und robuste Leistung nutzen. Aktualisieren Sie Ihre WordPress-Installation und die Komponenten des LEMP-Stacks regelmäßig, um optimale Sicherheit und Funktionalität zu gewährleisten. Genießen Sie die Flexibilität und die umfangreichen Funktionen, die WordPress und der LEMP-Stack zum Erstellen und Verwalten Ihrer Website bieten.

Joshua James
Folgen Sie mir
Letzte Artikel von Joshua James (Alle anzeigen)

Hinterlasse einen Kommentar