GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie WordPress mit Nginx unter CentOS 8 / RHEL 8

WordPress ist ein Content-Management-System (CMS), das häufig zum Erstellen von Blogs, Websites, E-Commerce-Portalen und vielem mehr verwendet wird. Es ist in PHP geschrieben und verwendet MariaDB oder MySQL als Datenbank.

WordPress unterstützt mehr als 60 Millionen Websites, darunter 33 % der Top-10-Millionen-Websites.

Hier ist das Tutorial zur Installation von WordPress mit Nginx auf CentOS 8 / RHEL 8.

LEMP-Stack installieren

Bevor Sie fortfahren, richten Sie den LEMP-Stack über den folgenden Link ein.

LEMP Stack (Nginx, MariaDB und PHP) auf CentOS 8 / RHEL 8 installieren

Installieren Sie PHP-Erweiterungen

Die folgenden Erweiterungen sind erforderlich, um WordPress auf CentOS 8 / RHEL 8 zu installieren.

yum install -y php-mysqlnd php-dom php-simplexml php-xml php-xmlreader php-curl php-exif php-ftp php-gd php-iconv  php-json php-mbstring php-posix php-sockets php-tokenizer

Nginx-Serverblock für WordPress konfigurieren

Lassen Sie uns einen Serverblock für die WordPress-Installation erstellen. Konfigurationsdateien für virtuelle Hosts finden Sie im Verzeichnis /etc/nginx/conf.d.

Ich erstelle einen Serverblock für Folgendes:

Domainname: www.itzgeek.net
Port-Nr.: 80
Dokumentstamm: /sites/www.itzgeek.net/public_html
Protokolle: /sites/www.itzgeek.net/logs

Erstellen Sie zunächst eine virtuelle Hostdatei.

vi /etc/nginx/conf.d/www.itzgeek.net.conf

Platzieren Sie den folgenden Inhalt.

server {
	listen 80; 
	server_name www.itzgeek.net;

	root /sites/www.itzgeek.net/public_html/;

	index index.html index.php;

	access_log /sites/www.itzgeek.net/logs/access.log;
	error_log /sites/www.itzgeek.net/logs/error.log;

	# Don't allow pages to be rendered in an iframe on external domains.
	add_header X-Frame-Options "SAMEORIGIN";

	# MIME sniffing prevention
	add_header X-Content-Type-Options "nosniff";

	# Enable cross-site scripting filter in supported browsers.
	add_header X-Xss-Protection "1; mode=block";

	# Prevent access to hidden files
	location ~* /\.(?!well-known\/) {
		deny all;
	}

	# Prevent access to certain file extensions
	location ~\.(ini|log|conf)$ {
		deny all;
	}
        
        # Enable WordPress Permananent Links
	location / {
		try_files $uri $uri/ /index.php?$args;
	}

	location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	}

}

Dokumentstammverzeichnis und Protokollverzeichnis erstellen.

sudo mkdir -p /sites/www.itzgeek.net/public_html/

sudo mkdir -p /sites/www.itzgeek.net/logs/

Überprüfen Sie die Konfigurationsdateien.

nginx -t

Die folgende Ausgabe bestätigt, dass im Serverblock kein Syntaxfehler vorliegt.

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

Starten Sie die Dienste neu.

systemctl restart nginx

systemctl restart php-fpm

Wenn beim Neustart des Nginx-Dienstes ein Fehler auftritt, deaktivieren Sie SELinux auf Ihrem Computer.

setenforce 0

Installieren Sie Let’s Encrypt SSL für WordPress (optional)

Heutzutage verwenden fast alle Websites HTTPS (SSL-Zertifikat) für Authentizität, Sicherheit und um die Benutzerkommunikation privat zu halten. Google hat die Eigentümer letztes Jahr aufgefordert, aus Sicherheitsgründen und zur Verbesserung des Rankings auf HTTPS umzustellen.

Certbot installieren

Sie müssen einen Certbot ACME-Client auf Ihrem System installieren, um Zertifikate ohne Ausfallzeiten ausstellen und installieren zu können.

Der Certbot-Client ist in Red Hat-Repositories nicht verfügbar. Daher müssen wir einen Certbot-Client von seiner offiziellen Website herunterladen.

curl -O https://dl.eff.org/certbot-auto

mv certbot-auto /usr/local/bin/certbot-auto

chmod 0755 /usr/local/bin/certbot-auto

DNS-Eintrag aktualisieren / ändern

Gehen Sie zu Ihrem Domain-Registrar und erstellen/aktualisieren Sie den A/CNAME-Eintrag für Ihre Domain.

Warten Sie einige Zeit, bis sich der DNS-Eintrag verbreitet hat, und fahren Sie dann mit der Installation von Let’s Encrypt SSL fort.

Installieren Sie das SSL-Zertifikat von Let’s Encrypt

Verwenden Sie den Befehl certbot, um ein Let’s Encrypt-Zertifikat zu erstellen und zu installieren.

/usr/local/bin/certbot-auto --nginx

Bei der ersten Ausführung installiert der Certbot-Client die erforderlichen RPM-Pakete zum Einrichten einer virtuellen Python-Umgebung zum Generieren von Zertifikaten.

Ausgabe:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]  << Enter email id to receive notification

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A  << Accept Terms of Service

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y  << Subscribe to newsletter

Which names would you like to activate HTTPS for?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: www.itzgeek.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate numbers separated by commas and/or spaces, or leave input
blank to select all options shown (Enter 'c' to cancel): 1  << Install SSL certificate for www.itzgeek.net
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for www.itzgeek.net
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/wordpress.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2  << Redirect HTTP traffic to HTTPS site
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/wordpress.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://www.itzgeek.net

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=www.itzgeek.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/www.itzgeek.net/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/www.itzgeek.net/privkey.pem
   Your cert will expire on 2019-12-17. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again with the "certonly" option. To non-interactively renew *all*
   of your certificates, run "certbot-auto renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Nicht-www-HTTP-Anfragen mit Nginx an www-HTTPS weiterleiten

Wir müssen den Datenverkehr, der von einer Nicht-www-HTTP-Site kommt, auf die www-HTTPS-Site umleiten. Für meine Website ist es http://itzgeek.net>> https://www.itzgeek.net .

vi /etc/nginx/conf.d/www.itzgeek.net.conf

Fügen Sie den Weiterleitungsblock unten am Ende der Datei hinzu.

# Redirect NON-WWW HTTP to WWW HTTPS
server {
    if ($host = itzgeek.net) {
        return 301 https://www.itzgeek.net$request_uri;
    }


   server_name itzgeek.net;
    listen 80;
    return 404;

}

Starten Sie den Nginx-Dienst neu.

systemctl restart nginx

Datenbank für WordPress erstellen

Melden Sie sich bei MariaDB an.

mysql -u root -p

Erstellen Sie die gewünschte Datenbank für die WordPress-Installation.

CREATE DATABASE wordpress;

Erstellen Sie einen Benutzer.

CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'wppassword';

Gewähren Sie dem erstellten Benutzer die volle Berechtigung, auf die neu erstellte WordPress-Datenbank zuzugreifen.

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

Verlassen Sie die MariaDB-Shell.

exit

WordPress herunterladen

Laden Sie das neueste WordPress herunter.

curl -O https://wordpress.org/latest.tar.gz

Extrahieren Sie es.

tar -zxvf latest.tar.gz

Verschieben Sie es in unser Dokumentenstammverzeichnis.

mv wordpress/* /sites/www.itzgeek.net/public_html/

Kopieren Sie die Datei wp-sample-config.php und machen Sie sie zur Datei wp-config.php.

cp /sites/www.itzgeek.net/public_html/wp-config-sample.php /sites/www.itzgeek.net/public_html/wp-config.php

Bearbeiten Sie die Konfigurationsdatei und aktualisieren Sie die Datenbankinformationen.

vi /sites/www.itzgeek.net/public_html/wp-config.php

Einträge entsprechend der erstellten Datenbank, dem Benutzer und dem Passwort ändern.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress' );

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

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

/** MySQL hostname */
define( 'DB_HOST', 'localhost' );

Machen Sie Nginx-Benutzer zum Eigentümer des WordPress-Verzeichnisses.

chown -R apache:apache /sites/www.itzgeek.net/public_html/

WordPress installieren

Öffnen Sie Ihren Browser und besuchen Sie

http://ihre-website-url

Wählen Sie eine Sprache für Ihre WordPress-Installation.

Geben Sie Ihre Site-Informationen ein und klicken Sie auf WordPress installieren.

Sie sehen die nächste Seite, wie unten.

Wenn Sie auf „Anmelden“ klicken, werden Sie aufgefordert, das Passwort für den Zugriff auf den WordPress-Administrator einzugeben.

WordPress-Admin-Dashboard:

WordPress-Frontend:

Wenige zusätzliche Konfigurationen

Konfigurieren Sie den Upload der maximalen Dateigröße für WordPress

Standardmäßig erlaubt PHP keine Datei-Uploads über 2 MB. Um das Hochladen größerer Dateien zuzulassen, konfigurieren Sie die Einstellung upload_max_filesize in php.ini.

vi /etc/php.ini

Ändern Sie die Größe des Datei-Uploads gemäß Ihren Anforderungen

; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 256M

Starten Sie den php-fpm-Dienst neu.

systemctl restart php-fpm

Setzen Sie client_max_body_size auf Nginx für WordPress

Sie erhalten möglicherweise die folgende Fehlermeldung, selbst wenn Sie die maximale Upload-Dateigröße im vorherigen Schritt geändert haben.

2019/09/18 03:37:17 [error] 11773#11773: *121 client intended to send too large body: 9872781 bytes, client: 49.207.143.143, server: www.itzgeek.net, request: "POST /wp-admin/update.php?action=upload-theme HTTP/1.1", host: "www.itzgeek.net", referrer: "https://www.itzgeek.net/wp-admin/theme-install.php?browse=featured"

Fügen Sie das Kernmodul client_max_body_size in der Nginx-Konfigurationsdatei hinzu.

vi /etc/nginx/nginx.conf

Die Anweisung kann dem http-Block (für alle Sites), einem bestimmten Serverblock oder im Standortkontext hinzugefügt werden.

Hier füge ich die Direktive zum http-Block hinzu, der den Wert für alle Sites festlegt, die auf diesem Server laufen.

http {
....

    client_max_body_size 256M;

....
}

Außerdem müssen wir den Wert von post_max_size in der Datei php.ini ändern.

vi /etc/php.ini

Ändern Sie die Upload-Größe gemäß Ihren Anforderungen.

post_max_size = 256M

Starten Sie die Dienste neu.

systemctl restart php-fpm

systemctl restart nginx

Schlussfolgerung

Das ist alles. Ich hoffe, Sie können jetzt Ihr WordPress mit Nginx auf CentOS 8 / RHEL 8 ausführen. Bitte teilen Sie uns Ihr Feedback im Kommentarbereich mit.


Cent OS
  1. So installieren Sie WordPress unter RHEL 8 / CentOS 8 Linux

  2. So installieren Sie WordPress mit Nginx unter CentOS 7

  3. So installieren Sie phpMyAdmin mit Nginx unter CentOS 7 / RHEL 7

  4. So installieren Sie WordPress Multisite auf Centos VPS mit Nginx

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

So installieren Sie phpMyAdmin mit Apache unter CentOS 7 / RHEL 7

Installieren Sie WordPress mit Nginx auf CentOS 7 / RHEL 7

So installieren Sie phpMyAdmin mit Nginx unter CentOS 8 / RHEL 8

So installieren Sie Nginx mit ngx_pagespeed unter CentOS

So installieren Sie Nginx mit PHP-FastCGI unter CentOS 6

So installieren Sie Magento mit Nginx unter CentOS 7