GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie WordPress 5.x mit Nginx auf Ubuntu 18.04 / Ubuntu 16.04

WordPress ist die am weitesten verbreitete Open-Source-Webblogging- und Content-Management-Software, die rund 60 Millionen Websites unterstützt. Es ist in PHP geschrieben und verwendet MariaDB / MySQL als Datenbank.

Dieses Tutorial hilft Ihnen, WordPress 5.x mit Nginx auf Ubuntu 18.04 / Ubuntu 16.04 zu installieren.

Wir werden auch sehen, wie Sie Let’s Encrypt SSL für WordPress installieren, um die Website sicher bereitzustellen.

LEMP-Stack installieren

Bevor Sie fortfahren, sollten Sie sich ansehen, wie der LEMP-Stack installiert wird.

LEMP (Nginx, MariaDB und PHP) Stack auf Ubuntu 18.04 installieren

LEMP (Nginx, MariaDB und PHP) Stack auf Ubuntu 16.04 installieren

Installieren Sie PHP-Erweiterungen

Die folgenden Erweiterungen sind erforderlich, um WordPress unter Ubuntu OS zu installieren und auszuführen.

sudo apt install -y php-mysql php-dom php-simplexml php-ssh2 php-xml php-xmlreader php-curl php-exif php-ftp php-gd php-iconv php-imagick php-json php-mbstring php-posix php-sockets php-tokenizer

Nginx-Serverblock für WordPress konfigurieren

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

Der Serverblock erfordert einen Domänennamen, eine Portnummer, einen Dokumentenstamm, einen Protokollspeicherort, schnelles CGI usw.

Nehmen Sie Folgendes an,

Domainname: www.itzgeek.net
Dokumentstamm: /sites/www.itzgeek.net/public_html/
Protokolle: /sites/www.itzgeek.net/logs/

Erstellen Sie einen virtuellen Host.

Wenn Sie Nginx aus dem Ubuntu-Repository installiert haben, befinden sich die Konfigurationsdateien des virtuellen Hosts in /etc/nginx/sites-enabled, und der Dateipfad lautet wie folgt:/etc/nginx/sites-enabled/www.itzgeek.net.conf.
sudo nano /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.

sudo nginx -t

Wenn Sie Folgendes erhalten, bedeutet dies, dass die Einträge für virtuelle Hosts korrekt sind.

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.

sudo systemctl restart nginx

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

In der aktuellen Situation verwenden fast alle Websites HTTPS (SSL-Zertifikat) für Authentizität, sichere Konten, um die Benutzerkommunikation privat zu halten. Google fordert Eigentümer auf, für mehr Sicherheit und bessere Rankings auf HTTPS umzustellen.

Certbot installieren

Um ein SSL-Zertifikat zu generieren, installieren Sie den Certbot ACME-Client auf Ihrem System. Es handhabt die Ausstellung und Installation von Zertifikaten ohne Ausfallzeiten.

Der Certbot-Client ist in Ubuntu-Repositories nicht verfügbar. Also müssen wir Certbot PPA auf Ubuntu konfigurieren.

sudo apt update

sudo apt install -y software-properties-common

sudo add-apt-repository universe

sudo add-apt-repository ppa:certbot/certbot

sudo apt update

Installieren Sie jetzt den Certbot-Client.

sudo apt install -y certbot python-certbot-nginx

DNS-Eintrag aktualisieren / ändern

Greifen Sie auf Ihren Domain-Registrar zu und erstellen Sie einen A/CNAME-Eintrag für Ihre Domain.

Warten Sie einige Zeit, bis der Datensatz weitergegeben wird.

Installieren Sie das SSL-Zertifikat von Let’s Encrypt

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

sudo certbot --nginx

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
Deploying Certificate to VirtualHost /etc/nginx/conf.d/www.itzgeek.net.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/www.itzgeek.net.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-12. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot 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 werden jetzt einen neuen Serverblock erstellen, um den Datenverkehr für Nicht-www-HTTP-Sites auf die www-HTTPS-Site umzuleiten. Das heißt, http://itzgeek.net>> https://www.itzgeek.net .

sudo nano /etc/nginx/conf.d/www.itzgeek.net.conf

Fügen Sie den folgenden Block 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.

sudo systemctl restart nginx

Datenbank für WordPress erstellen

Melden Sie sich bei MySQL an.

sudo mysql -u root -p

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

CREATE DATABASE wordpress;

Erstellen Sie einen Benutzer.

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

Erteilen Sie dem erstellten Benutzer die Berechtigung, auf die Datenbank zuzugreifen.

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

Beenden Sie die MariaDB-Shell.

quit

WordPress herunterladen

Laden Sie das neueste WordPress-Paket herunter.

wget http://wordpress.org/latest.tar.gz

WordPress-Paket extrahieren.

tar -zxvf latest.tar.gz

Verschieben Sie die WordPress-Dateien in das Dokumentenstammverzeichnis.

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

Machen Sie den Apache-Benutzer (www-data) zum Eigentümer der WordPress-Site.

sudo chown -R www-data:www-data /sites/www.itzgeek.net/public_html/

sudo chown -R www-data:www-data /sites/www.itzgeek.net/logs/

WordPress installieren

Öffnen Sie Ihren Browser und besuchen Sie:

http://ihre-website-url

Sie erhalten den WordPress-Installationsassistenten.

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

Stellen Sie sicher, dass Sie den Namen der WordPress-Datenbank, den Datenbankbenutzer und das Passwort des Datenbankbenutzers haben. Wenn Sie bereit sind, klicken Sie auf Los geht's!.

Geben Sie auf dieser Seite die Datenbankinformationen ein, damit sich WordPress mit der Datenbank verbinden kann.

Wenn die Verbindung zur Datenbank erfolgreich ist, erhalten Sie die folgende Seite. Klicken Sie auf Installation ausführen.

Geben Sie auf dieser Seite den Seitentitel, den WordPress-Administrator und das Passwort (Ihrer Wahl) und dann die E-Mail-Adresse ein. Klicken Sie dann auf WordPress installieren.

Die WordPress-Installation ist nun abgeschlossen. Sie können auf Login klicken, um zur WordPress-Admin-Seite zu gelangen.

Geben Sie den WordPress-Admin-Benutzer und sein Passwort ein, um auf die WordPress-Admin-Seite zuzugreifen.

WordPress-Admin:

WordPress-Frontend:

WordPress-Serverinformationen (YLD-Serverinformationen-Plugin):

Wenige zusätzliche Konfigurationen

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

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

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

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

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

Starten Sie den php7.2-fpm-Dienst neu.

sudo systemctl restart php7.2-fpm

Client_max_body_size auf Nginx für WordPress konfigurieren

Der folgende Fehler kann auch dann auftreten, wenn Sie im vorherigen Schritt die maximale Upload-Dateigröße geändert haben.

2019/09/13 04:40:08 [error] 3803#3803: *517 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 Konfigurationsdatei des Nginx-Servers hinzu.

sudo nano /etc/nginx/nginx.conf

Die Anweisung kann zum http-Block (für alle Sites), zu einem bestimmten Serverblock oder im Standortkontext hinzugefügt werden. Ich füge 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 php7.2-fpm ändern.

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

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

post_max_size = 256M

Starten Sie die Dienste neu.

sudo systemctl restart php7.2-fpm

sudo systemctl restart nginx

Schlussfolgerung

Das ist alles. Ich hoffe, Sie haben gelernt, wie man WordPress 5.x mit Nginx auf Ubuntu 18.04 / Ubuntu 16.04 installiert. Bitte teilen Sie uns Ihr Feedback im Kommentarbereich mit.


Ubuntu
  1. So installieren Sie Nginx unter Ubuntu 16.04

  2. So installieren Sie WordPress mit Nginx unter Ubuntu 18.04

  3. So installieren Sie Elgg mit Nginx unter Ubuntu 14.04

  4. So installieren Sie Nginx unter Ubuntu 16.04

  5. So installieren Sie Joomla mit Nginx unter Ubuntu 18.04

So installieren Sie WordPress mit Nginx auf Ubuntu

So installieren Sie SuiteCRM auf Ubuntu 20.04 mit Apache/Nginx

So installieren Sie MediaWiki auf Ubuntu 20.04 mit Apache/Nginx

So installieren Sie WordPress mit Nginx in Ubuntu 20.04

Installieren Sie WordPress mit Nginx auf Ubuntu 18.04

So installieren Sie Nginx unter Ubuntu 22.04