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-urlSie 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.