GNU/Linux >> LINUX-Kenntnisse >  >> Debian

So installieren Sie WordPress mit LEMP Stack auf Debian 11 Bullseye

WordPress ist das dominanteste Content-Management-System, das in PHP geschrieben ist, kombiniert mit einer MySQL- oder MariaDB-Datenbank. Sie können eine Website ohne Vorkenntnisse in Webentwicklung oder Codierung erstellen und pflegen. Die erste Version von WordPress wurde 2003 von Matt Mullenweg und Mike Little erstellt und wird laut W3Tech heute von 70 % des bekannten Webmarktes verwendet. WordPress gibt es in zwei Versionen:das kostenlose Open Source WordPress.org und WordPress.com, ein kostenpflichtiger Dienst, der bei 5 $ pro Monat bis zu 59 $ beginnt. Die Verwendung dieses Content-Management-Systems ist einfach und wird oft als Sprungbrett für die Erstellung eines Blogs oder einer ähnlichen Website angesehen.

Im folgenden Tutorial erfahren Sie, wie Sie selbst gehostetes WordPress mit den neuesten verfügbaren Nginx-, MariaDB- und PHP-Versionen installieren.

Voraussetzungen

  • Empfohlenes Betriebssystem: Debian 11 Bullseye
  • Benutzerkonto: Ein Benutzerkonto mit Sudo- oder Root-Zugriff.
  • Erforderliche Pakete: im gesamten Tutorial aufgeführt

Betriebssystem aktualisieren

Aktualisieren Sie Ihr Debian Betriebssystem, um sicherzustellen, dass alle vorhandenen Pakete auf dem neuesten Stand sind:

sudo apt update && sudo apt upgrade -y

Das Tutorial verwendet den sudo-Befehl und vorausgesetzt, Sie haben den Sudo-Status .

So überprüfen Sie den Sudo-Status Ihres Kontos:

sudo whoami

Beispielausgabe, die den Sudo-Status zeigt:

[joshua@debian~]$ sudo whoami
root

Um ein bestehendes oder neues Sudo-Konto einzurichten, besuchen Sie unser Tutorial zum Hinzufügen eines Benutzers zu Sudoers unter Debian .

So verwenden Sie das Root-Konto verwenden Sie den folgenden Befehl mit dem Root-Passwort, um sich anzumelden.

su

CURL &UNZIP-Paket installieren

Das Tutorial verwendet den curl and unzip Befehl während bestimmter Teile. Um sicherzustellen, dass dies installiert ist, führen Sie den folgenden Befehl in Ihrem Terminal aus:

sudo apt install curl unzip -y

Neueste Nginx installieren – (LEMP Stack)

Um die Installation des LEMP-Stacks zu starten, müssen Sie Nginx installieren Webserver. Eine Methode besteht darin, die neueste Nginx Mainline oder Stable aus dem Ondřej Surý-Repository zu installieren, um über die aktuellste Software zu verfügen. Viele Ubuntu-Benutzer kennen sein PPA, und Sie können dasselbe in Debian tun.

Um die neueste Version von Nginx Mainline oder Stable zu verwenden, müssen Sie zuerst das Repository importieren.

So importieren Sie das Mainline-Repository:

curl -sSL https://packages.sury.org/nginx-mainline/README.txt | sudo bash -x

So importieren Sie ein stabiles Repository:

curl -sSL https://packages.sury.org/nginx/README.txt | sudo bash -x

Aktualisieren Sie Ihr Repository, um die neue Änderung widerzuspiegeln:

sudo apt update

Nachdem Sie nun das Nginx-Repository installiert haben und die Repository-Liste aktualisiert haben, installieren Sie Nginx wie folgt:

sudo apt install nginx-core nginx-common nginx nginx-full

Beispielausgabe:

Geben Sie Y ein , und drücken Sie dann die EINGABETASTE um fortzufahren und die Installation abzuschließen.

Überprüfen Sie nun, ob das neueste Nginx aus dem Ondřej Surý-Repository mit dem Befehl apt-cache policy installiert wurde . Beachten Sie das Tutorial-Beispiel installierte Nginx Mainline:

apt-cache policy nginx

Beispielausgabe für Nginx Mainline :

Beachten Sie, dass Sie möglicherweise aufgefordert werden, Ihre vorhandene /etc/nginx/ beizubehalten oder zu ersetzen nginx.conf Konfigurationsdatei während der Installation. Es wird empfohlen, Ihre aktuelle Konfigurationsdatei beizubehalten, indem Sie (n) drücken .

Durch die Installation von Nginx mit dem benutzerdefinierten Repository werden zusätzliche Module kompiliert, eines der am meisten nachgefragten und empfohlenen Module zur Aktivierung ist das Brotli-Modul.

Um brotli zu installieren , öffnen Sie Ihre nginx.conf Konfigurationsdatei:

nano /etc/nginx/nginx.conf

Fügen Sie nun die zusätzlichen Zeilen zuvor im HTTP{} hinzu Abschnitt:

brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types application/atom+xml application/javascript application/json application/rss+xml
   application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype
   application/x-font-ttf application/x-javascript application/xhtml+xml application/xml
   font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon
   image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;

Das brotli_comp_level kann zwischen 1 (niedrigste) eingestellt werden und 11 (höchste) . Normalerweise sitzen die meisten Server in der Mitte, aber wenn Ihr Server ein Monster ist, stellen Sie ihn auf 11 und überwachen Sie die CPU-Auslastung.

Testen Sie als Nächstes, ob die Änderungen richtig funktionieren, bevor Sie sie live schalten:

sudo nginx -t

Wenn die Änderungen korrekt funktionieren, sollten Sie Folgendes sehen:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Machen Sie die Änderungen jetzt live, indem Sie Ihren Server neu starten:

sudo systemctl restart nginx

Als nächstes aktivieren Sie Nginx beim Systemstart:

sudo systemctl enable nginx

Stellen Sie abschließend sicher, dass Nginx ordnungsgemäß ausgeführt wird. Dies sollte problemlos übersprungen werden, wenn Sie den Befehl nginx -t ausgeführt haben und bekam keine Fehler.

systemctl status nginx

Beispielausgabe:

Neueste MariaDB (LEMP STACK) installieren

Das Tutorial empfiehlt, MariaDB ständig über MySQL zu installieren, vor allem wegen der Leistung.

Importieren Sie zuerst das offizielle MariaDB-Repository, 10.6 ist die aktuelle stabile Version, aber 10.7 ist die neue Version, aber möglicherweise nicht so stabil.

Option 1 – MariaDB 10.6 importieren:

curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=10.7 --skip-maxscale --skip-tools

Option 2 – MariaDB 10.7 importieren:

curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=10.7 --skip-maxscale --skip-tools

Sobald Sie eine Version ausgewählt haben, aktualisieren Sie Ihr APT-Repository.

sudo apt update

Installieren Sie MariaDB auf einem Debian-Desktop oder -Server

Um MariaDB zu installieren, müssen Sie die Client- und Serverpakete installieren. Dies kann wie folgt erfolgen:

sudo apt install mariadb-server mariadb-client

Beispielausgabe:

Geben Sie Y ein , und drücken Sie dann die EINGABETASTE um fortzufahren und die Installation abzuschließen.

Bestätigen Sie die Installation von MariaDB, indem Sie die Version und den Build überprüfen:

mariadb --version

Beispielausgabe:

mariadb  Ver 15.1 Distrib 10.6.4-MariaDB, for debian-linux-gnu (x86_64) using readline EditLine wrapper

Starten Sie als Nächstes Ihren MariaDB-Dienst, indem Sie den folgenden Befehl ausführen, um ihn beim Booten zu starten und zu aktivieren:

sudo systemctl start mariadb && sudo systemctl enable mariadb

Beispielausgabe bei Erfolg:

Synchronizing state of mariadb.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mariadb

Überprüfen Sie den Status des MariaDB-Servers

Jetzt haben Sie MariaDB installiert und können den Status der Datenbanksoftware mit dem folgenden systemctl-Befehl überprüfen:

systemctl status mariadb

Standardmäßig ist der MariaDB-Status deaktiviert. Um MariaDB zu starten, verwenden Sie den folgenden Befehl:

sudo systemctl start mariadb

Überprüfen Sie nun den Status erneut, und Sie sollten Folgendes erhalten:

So stoppen Sie MariaDB:

sudo systemctl stop mariadb

So aktivieren Sie MariaDB beim Systemstart:

sudo systemctl enable mariadb

So deaktivieren Sie MariaDB beim Systemstart:

sudo systemctl disable mariadb

So starten Sie den MariaDB-Dienst neu:

sudo systemctl restart mariadb

MariaDB mit Sicherheitsskript sichern

Als Nächstes werden Sie aufgefordert, Ihr (MariaDB-Root-Passwort) einzugeben . Drücken Sie vorerst die (ENTER) Schlüssel, da das Root-Passwort noch nicht wie folgt festgelegt ist:

sudo mysql_secure_installation

Geben Sie als Nächstes (Y) ein und drücken Sie die Eingabetaste, um (root) einzurichten Passwort wie folgt:

Die nächste Reihe von Fragen können Sie getrost (ENTER) drücken , was mit (Y) antwortet auf alle nachfolgenden Fragen, in denen Sie aufgefordert werden, (entfernen Sie anonyme Benutzer, deaktivieren Sie die Remote-Root-Anmeldung und entfernen Sie die Testdatenbank) . Beachten Sie das (Y) wird groß geschrieben, was bedeutet, dass dies die Standardantwort ist, wenn Sie (ENTER) drücken Schlüssel.

Beispiel unten:

[joshua@debian-11 ~]$ sudo mariadb-secure-installation

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!

Übersicht darüber, was oben hätte getan werden müssen:

  • Festlegen des Passworts für root Konten.
  • Entfernen von Root-Konten, auf die von außerhalb des lokalen Hosts zugegriffen werden kann.
  • Anonyme Benutzerkonten entfernen.
  • Entfernen der Testdatenbank, auf die standardmäßig anonyme Benutzer zugreifen können.

Dieser Schritt ist für die Sicherheit der MariaDB-Datenbank unerlässlich und sollte nicht geändert oder übersprungen werden, es sei denn, Sie wissen, was Sie tun.

Installieren Sie das neueste PHP (LEMP STACK)

Der letzte Teil des Tutorials besteht darin, PHP zu installieren, das das Backend ist, das zwischen Apache und MariaDB, dem Mittelsmann, kommuniziert. PHP 8.0 wird relativ stabil und die neueren Versionen von PHP 8.1 sind jetzt verfügbar.

Das Tutorial konzentriert sich auf den Import der neuesten PHP-Version von Ondřej Surý, dem Betreuer für Debian PHP. Dies ist immer aktuell, auch wenn neue PHP-Versionen fallengelassen werden.

Ondřej Surý PHP-Repository importieren

Der erste Schritt besteht darin, GPG und das Repository zu importieren und zu installieren.

Verwenden Sie in Ihrem Terminal den folgenden Befehl.

curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x

Dieser Befehl installiert das PHP-Repository und aktualisiert Ihr APT-Repository.

Aktualisieren Sie als Nächstes die Repository-Liste, da für das neue Repository einige vorhandene Pakete aktualisiert werden müssen und dies vor der Installation von PHP-Versionen empfohlen wird.

sudo apt upgrade

Option 1. Installieren Sie PHP 7.4

Jetzt können Sie mit der Installation von PHP 7.4 für Ihre speziellen Anforderungen wie folgt fortfahren:

sudo apt install php7.4-fpm php7.4-cli php7.4-common php7.4-mbstring php7.4-xmlrpc php7.4-soap php7.4-gd php7.4-xml php7.4-intl php7.4-mysql php7.4-cli php7.4-ldap php7.4-zip php7.4-mcrypt php7.4-curl php7.4-json php7.4-opcache php7.4-readline php7.4-xml php7.4-gd -y

Überprüfen Sie die Installation und überprüfen Sie die Version und den Build:

php -v

Beispielausgabe:

Als nächstes starten und aktivieren Sie PHP 7.4-FPM, damit es beim Booten automatisch gestartet wird.

sudo systemctl start php7.4-fpm && sudo systemctl enable php7.4-fpm

Jetzt sollte standardmäßig PHP-FPM ausgeführt werden. Um dies zu bestätigen, verwenden Sie den folgenden systemctl-Befehl:

sudo systemctl status php7.4fpm

Beispielausgabe:

Option 2. Installieren Sie PHP 8.0

Jetzt können Sie mit der Installation von PHP 8.0 für Ihre speziellen Anforderungen wie folgt fortfahren:

sudo apt install php8.0-fpm php8.0-cli php8.0-common php8.0-mbstring php8.0-xmlrpc php8.0-soap php8.0-gd php8.0-xml php8.0-intl php8.0-mysql php8.0-cli php8.0-ldap php8.0-zip php8.0-mcrypt php8.0-curl php8.0-opcache php8.0-readline php8.0-xml php8.0-gd unzip -y

Überprüfen Sie die Installation und überprüfen Sie die Version und den Build:

php -v

Beispielausgabe:

Jetzt sollte standardmäßig PHP-FPM ausgeführt werden. Um dies zu bestätigen, verwenden Sie den folgenden systemctl-Befehl:

sudo systemctl status php8.0-fpm

Beispielausgabe:

WordPress-Backend installieren

WordPress herunterladen

Besuchen Sie die Download-Seite von WordPress.org und scrollen Sie nach unten, um die latest.zip zu finden „ Download-Link. Verwenden Sie dann den wget-Befehl Laden Sie die Datei herunter.

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

Ordnerstruktur für WordPress erstellen

Jetzt haben Sie das Archiv heruntergeladen, entpacken Sie es und verschieben Sie es in Ihr www-Verzeichnis.

Erstellen Sie das Verzeichnis für WordPress:

sudo mkdir -p /var/www/html/wordpress

WordPress in das www-Verzeichnis entpacken:

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

Sie müssen die Verzeichniseigentümerberechtigungen auf WWW, setzen andernfalls haben Sie Probleme mit den Schreibberechtigungen von WordPress.

Chown-Berechtigung festlegen (wichtig):

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

Chmod-Berechtigung festlegen (wichtig):

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

Datenbank für WordPress erstellen

WordPress benötigt eine Datenbank, um ausgeführt zu werden, weshalb Sie MariaDB installieren mussten. Bevor Sie fortfahren, müssen Sie mit MariaDB eine Datenbank für WordPress erstellen. Rufen Sie zuerst die Terminalkonsole auf und geben Sie Folgendes ein.

MariaDB-Shell als root aufrufen:

sudo mariadb -u root

Zweiter alternativer Befehl:

sudo mysql -u root

Als nächstes erstellen Sie die Datenbank. Dies kann ein beliebiger Name sein. Für die Anleitung nennen Sie sie "WORDPRESSDB."

WordPress-Datenbank erstellen:

CREATE DATABASE WORDPRESSDB;

Nachdem die Datenbank erstellt wurde, sollten Sie einen neuen Benutzer für die neue WordPress-Site erstellen.

Dies geschieht als Sicherheitsmaßnahme, sodass jede Datenbank einen anderen Benutzer hat. Wenn ein Benutzername kompromittiert wird, greift der Angreifer nicht auf alle Datenbanken der anderen Website zu.

Erstellen Sie den WordPress-Datenbankbenutzer:

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

WPUSER und PASSWORD ersetzen mit dem gewünschten Benutzernamen oder Passwort. Kopieren und fügen Sie aus Sicherheitsgründen nicht den Standardbenutzer/pass oben ein.

Weisen Sie nun dem neu erstellten Benutzer nur unten Zugriff auf die Datenbank der WordPress-Website zu.

Datenbank dem erstellten WordPress-Benutzerkonto zuweisen:

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

Wenn alle Datenbankkonfigurationseinstellungen abgeschlossen sind, müssen Sie die Berechtigungen leeren, damit sie wirksam werden und beendet werden.

Flush-Berechtigungen:

FLUSH PRIVILEGES;

MariaDB beenden:

EXIT;

WordPress-Konfigurationsdateien festlegen

Du musst einige Einstellungen in der wp-config-sample.php vornehmen „ Datei. Unten sehen Sie, wie Sie die Beispieldatei umbenennen und die erforderlichen Informationen eingeben.

Benennen Sie zuerst die Konfigurationsdatei um.

Gehen Sie zum WordPress-Verzeichnis:

cd /var/www/html/wordpress/

Konfigurationsdatei umbenennen:

sudo mv wp-config-sample.php wp-config.php

Rufen Sie mit einem Texteditor die neu umbenannte Datei wp-config.php auf. In unserem Beispiel verwenden wir nano.

sudo nano wp-config.php

Als nächstes geben Sie den Datenbanknamen, das Benutzerkonto mit einem Passwort und die Host-IP-Adresse ein, falls sie sich von localhost unterscheidet.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */ 
define( 'DB_NAME', 'wordpressdb' );
/* MySQL database username */ 
define( 'DB_USER', 'wpuser1' );
/* MySQL database password */
define( 'DB_PASSWORD', 'YOUR PASSWORD' );
/* 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', '' );

Während Sie sich in dieser Datei befinden, erleichtert das Hinzufügen zusätzlicher Einstellungen die Verwaltung Ihres WordPress, z. B. direktes Speichern von Dateien anstelle von FTP und erhöhte Speichergrößenbeschränkungen.

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

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

##change Wordpress database table prefix if wanted##
 $table_prefix = 'wp_';

WordPress-Sicherheits-Salt-Keys festlegen

Am besten besuchen Sie die WordPress-Secret-Key-API, um Ihre eigene zu generieren. Den Adress-Salt-Key-Generator finden Sie unter https://api.wordpress.org/secret-key/1.1/salt/ . Ersetzen Sie die Beispielzeilen durch die Codes aus dem Generator.

KOPIEREN SIE NICHT DAS UNTENSTEHENDE BEISPIEL, UND ES DIENT NUR ZUR REFERENZ.

define('AUTH_KEY',         '<3yfS7/>%m.Tl^8Wx-Y8-|T77WRK[p>(PtH6V]Dl69^<8|K86[_Z},+THZ25+nJG');
define('SECURE_AUTH_KEY',  'bN#Qy#ChBX#Y`PE/_0N42zxgLD|5XpU[mu.n&:t4q~hg<UP/b8+xFTly_b}f]M;!');
define('LOGGED_IN_KEY',    'owpvIO-+WLG|,1)CQl*%gP1uDp}s(jUbYQ[Wm){O(x@sJ#T}tOTP&UOfk|wYsj5$');
define('NONCE_KEY',        '8=Vh|V{D<>`CLoP0$H!Z3gEqf@])){L+6eGi`GAjV(Mu0YULL@sagx&cgb.QVCbi');
define('AUTH_SALT',        '%TX*X$GE-;|?<-^(+K1Un!_Y<hk-Ne2;&{c[-v!{q4&OiJjQon /SHcc/:MB}y#(');
define('SECURE_AUTH_SALT', '=zkDT_%}J4ivjjN+F}:A+s6e64[^uQ<qNO]TfHS>G0elz2B~7Nk.vRcL00cJoo7*');
define('LOGGED_IN_SALT',   '{$-o_ull4|qQ?f=8vP>Vvq8~v>g(2w12`h65ztPM(xo!Fr()5xrqy^k[E~TwI!xn');
define('NONCE_SALT',       'a1G(Q|X`eX$p%6>K:Cba!]/5MAqX+L<A4yU_&CI)*w+#ZB+*yK*u-|]X_9V;:++6');

Nginx-Server-Blockkonfiguration

Jetzt sind Sie fast bereit, WordPress über die Web-Benutzeroberfläche zu installieren. Sie müssen jedoch Ihren Nginx-Serverblock konfigurieren. Die folgenden Einstellungen sind ziemlich wichtig. Es sollte beachtet werden, die Wichtigkeit von „try_files $uri $uri/ /index.php?$args;“ zu betonen da es oft ein Problem mit anderen Tutorials ist, die die Endung ?$args verlassen weggelassen, was zu schwerwiegenden Problemen mit der Website-Gesundheit führt, kommt zur REST-API von WordPress.

Erstellen Sie zunächst eine neue Serverkonfigurationsdatei mit dem folgenden Befehl, der das Beispiel durch Ihren Domänennamen ersetzt,

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

Unten ist ein Beispiel; Sie können die Teile auswählen; jedoch die „location ~ \.php$“ muss in der Nginx-Konfigurationsdatei enthalten sein.

HINWEIS:Achten Sie darauf, www.example.com und example.com sowie den Stammpfad zu ändern.

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;

  # assets, media
  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;
  }
  
  # svg, fonts
  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;
  }
}

Beachten Sie, wenn Sie PHP 8.0 verwenden Suchen und ersetzen Sie die obige Zeile “fastcgi_pass unix:/run/php/php7.4-fpm.sock;” zu “fastcgi_pass unix:/run/php/php8.0-fpm.sock;“ .

Als Nächstes müssen Sie die Nginx-Konfigurationsdatei unter „sites-available“ aktivieren . Dazu erstellen Sie einen Symlink zu „sites-enabled“ wie folgt.

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

Stellen Sie sicher, dass Sie "example.conf" ersetzen mit Ihrem Konfigurationsdateinamen.

Sie können jetzt einen Probelauf durchführen und dann Ihren Nginx-Server neu starten, wenn alles in Ordnung ist.

sudo nginx -t

Nachdem Sie überprüft haben und alles mit Ihrem Nginx-Probelauftest in Ordnung ist, starten Sie den Nginx-Dienst neu.

sudo systemctl restart nginx

PHP.ini-Konfiguration

Bevor Sie mit dem Installationsteil der Web-Benutzeroberfläche fortfahren, sollten Sie Ihr PHP für die optimale Verwendung für WordPress anpassen. Diese Einstellungen sind eher eine Richtlinie, und Sie können sie nach Belieben erhöhen oder verringern.

Rufen Sie zuerst Ihre php.ini auf. Beachten Sie, dass Ihr Standort je nach Ihrer PHP-Versionsnummer unterschiedlich sein kann.

PHP 7.4:

sudo nano /etc/php/7.4/fpm/php.ini

PHP 8.0:

sudo nano /etc/php/8.0/fpm/php.ini

WordPress-Mediendateien können ziemlich wichtig sein, und die Standardeinstellung kann zu niedrig sein. Sie können dies ungefähr auf die Ihrer Meinung nach umfangreichste Dateigröße erhöhen. Suchen Sie die folgenden Zeilen unten und passen Sie sie an Ihre Bedürfnisse an.

##increase upload max size recommend 50 to 100mb## 
 upload_max_filesize = 100MB

##increase post max size recommend 50 to 100mb##
 post_max_size = 100MB

## increase max execution time recommend 150 to 300##
 max_execution_time = 300

## increase GET/POST/COOKIE input variables recommend 5000 to 10000##
max_input_vars = 10000

## increase memory limit recommend 256mb or 512mb##
memory_limit = 256M

Starten Sie nun Ihren PHP-FPM-Server neu.

PHP 7.4:

sudo systemctl restart php7.4-fpm

PHP 8.0:

sudo systemctl restart php8.0-fpm

Die von Ihnen angepassten PHP-Einstellungen gelten für das PHP-Backend. Sie müssen auch den Nginx-Serverblock ändern, um große Körpergrößen zuzulassen. Öffnen Sie dazu Ihren Serverblock erneut und fügen Sie die folgende Zeile hinzu.

Öffnen Sie Ihren Serverblock.

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

Passen Sie diese Linie an, um die Körpergröße zu erhöhen.

client_max_body_size 100M;

Denken Sie daran, dass die maximale Größe des Clients der Ihrer Einstellung für die maximale Größe der PHP-Datei entspricht .

Testen Sie als Nächstes die Änderungen und starten Sie dann Ihren Nginx-Server neu, wenn alles in Ordnung ist.

sudo nginx -t

Nachdem Sie überprüft haben und alles mit Ihrem Nginx-Probelauftest in Ordnung ist, starten Sie den Nginx-Dienst neu.

sudo systemctl restart nginx

Installieren Sie das WordPress-Frontend

Jetzt, da alle Back-End-Einrichtungen und -Konfigurationen abgeschlossen sind, können Sie zu Ihrer Domain gehen und mit der Installation beginnen.

##go to installation address##
 https://www.yoursite.com
##alternative url##
 https://www.yoursite.com/wp-admin/install.php

Auf der ersten Seite, die Sie sehen werden, erstellen Sie einen Benutzernamen und ein Passwort zusammen mit einigen Site-Details. Dies wird Ihr zukünftiges Admin-Login-Konto sein, und Sie können dies auch später ändern.

Wenn Sie eine Website erstellen, aktivieren Sie „Suchmaschinen dringend von der Indexierung abhalten“ verhindert Google oder Bing oder andere „gute/anerkannte Suchmaschinen-Bots“ von der Indizierung einer WIP-Website. Sobald Sie fertig sind, gelangen Sie zum nächsten Bildschirm mit einem Login.

Herzlichen Glückwunsch, Sie haben die neueste Version von WordPress auf Nginx mit dem LEMP-Stack erfolgreich installiert.

Nginx mit Let’s Encrypt SSL Free Certificate sichern

Idealerweise möchten Sie Ihr Nginx auf HTTPS mit einem SSL-Zertifikat ausführen . Verwenden Sie dazu am besten Let’s Encrypt eine kostenlose, automatisierte und offene Zertifizierungsstelle, die von der gemeinnützigen Internet Security Research Group (ISRG) betrieben wird .

Installieren Sie zuerst das certbot-Paket wie folgt:

sudo apt install python3-certbot-nginx -y

Führen Sie nach der Installation den folgenden Befehl aus, um die Erstellung Ihres Zertifikats zu starten:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d www.example.com

Dieses ideale Setup umfasst erzwungene HTTPS-301-Umleitungen, einen Strict-Transport-Security-Header und OCSP-Stapling. Passen Sie einfach E-Mail und Domainnamen an Ihre Anforderungen an.

Jetzt lautet Ihre URL HTTPS://www.example.com statt HTTP://www.example.com .

Wenn Sie die alte HTTP-URL verwenden , wird automatisch auf HTTPS umgeleitet .


Debian
  1. Installieren Sie WordPress mit Nginx auf Debian 10/11

  2. So installieren Sie WordPress mit LEMP Stack auf CentOS 8

  3. So installieren Sie WordPress mit Nginx unter Debian 10

  4. So installieren Sie MERN Stack mit Nginx unter Debian 11

  5. So installieren Sie den LEMP-Stack auf Debian 10 Buster

So installieren Sie phpMyAdmin mit Nginx unter Debian 11 Bullseye

So installieren Sie WonderCMS mit Nginx auf Debian 11 Bullseye

So installieren Sie phpBB mit LEMP (Nginx, MariaDB und PHP) unter Debian 11 Bullseye

So installieren Sie WordPress mit LAMP Stack auf Debian 11 Bullseye

So installieren Sie Nginx Google Pagespeed unter Debian 11 Bullseye

So installieren Sie den LEMP-Stack unter Debian 11