0x00 Einführung WordPress ist das beliebteste CMS-System der Welt. Es basiert auf dem PHP- und MySQL-Technologie-Stack und verfügt über zahlreiche Plug-Ins, wodurch es sehr erweiterbar ist. Ich hatte vor kurzem zufällig ein ECS übrig und habe zum Spaß eines gebaut. Dieses Tutorial basiert auf dem LEMP-Technologie-Stack. Die Versionen sind wie folgt:
Darüber hinaus ist vollständiges https jetzt ein Trend, und natürlich können wir nicht zurückfallen, also werden wir auch Let's Encrypt verwenden, um kostenlose SSL-Zertifikate für die Konfiguration zu generieren 0x01 Voraussetzungen
0x02 Installieren Sie nginx
0x03Mariadb installieren Mariadb ist als Open-Source-Zweig von MySQL zur Standarddatenbank geworden, die von CentOS als Ersatz für MySQL verwendet wird. Daher verwende ich hier auch Mariadb als Datenbank.
Darüber hinaus muss die Adresse, auf der MariaDB lauscht, a. b. Fügen Sie c. Führen Sie d. Führen Sie 0x04 Erstellen einer Datenbank Nachdem wir die MariaDB-Datenbank installiert und gehärtet haben, müssen wir natürlich eine neue Datenbank zum Speichern von Daten erstellen. Hier verwenden wir zunächst das zuvor festgelegte Root-Kontokennwort, um uns bei der Datenbank DATENBANK ERSTELLEN wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; # Datenbank erstellen GRANT ALL ON wordpress.* TO 'wordpress'@'localhost' IDENTIFIED BY 'Ihr Passwort'; # Benutzer erstellen FLUSH PRIVILEGES; # Datenbankberechtigungen aktualisieren EXIT; 0x05 PHP installieren Die Standard-PHP-Version von CentOS ist 5.4, aber die empfohlene Version von WordPress ist 7.2, daher installieren wir hier die PHP-Version 7.2. Führen Sie den folgenden Befehl aus, um PHP und alle erforderlichen PHP-Erweiterungen zu installieren sudo yum installiere yum-utils sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum-config-manager --enable remi-php72 sudo yum installiere php-cli php-fpm php-mysql php-json php-opcache php-mbstring php-xml php-gd php-curl Wir installieren PHP FPM, weil wir Nginx als unseren Webserver verwenden und Nginx nicht mit dieser Komponente geliefert wird. Darüber hinaus läuft PHP FPM standardmäßig als Apache-Benutzer auf Port 9000. Wir ändern diesen Benutzer in WordPress und ändern ihn von TCP-Socket in Unix-Socket. Einzelheiten zur Änderung finden Sie in den folgenden Schritten. Öffnen Sie ... Benutzer = WordPress ... Gruppe = WordPress ... listen = /run/php-fpm/www.sock ... listen.owner = WordPress listen.group = WordPress Verwenden Sie den Befehl PHP FPM neu starten und automatisch starten a. 0x06 Kostenloses Zertifikat beantragen Als Technikfreak würde ich auf jeden Fall ein kostenloses Zertifikat nutzen, wenn eines verfügbar ist. Daher können wir ein kostenloses Let’s Encrypt-Zertifikat beantragen, das nicht nur kostenlos, sondern auch sehr einfach zu verwenden ist. Obwohl es jeweils nur 90 Tage gültig ist, kann es regelmäßig über die Skriptkonfiguration crontab aktualisiert werden. a. Das Verzeichnis b. c. d. Wir wissen, dass eine Zertifizierungsstelle bei der Ausstellung eines DV-Zertifikats (Domain Validation) den Besitz des Domänennamens überprüfen muss. Die herkömmliche CA-Verifizierungsmethode besteht im Allgemeinen darin, eine Bestätigungs-E-Mail an [email protected] zu senden, während Let’s Encrypt eine zufällige Verifizierungsdatei auf Ihrem Server generiert und dann über den beim Erstellen des CSR angegebenen Domänennamen darauf zugreift. Wenn darauf zugegriffen werden kann, bedeutet dies, dass Sie die Kontrolle über den Domänennamen haben. Erstellen Sie daher zunächst ein Verzeichnis zum Speichern der Überprüfungsdateien, zum Beispiel: Konfigurieren Sie dann einen HTTP-Dienst am Beispiel von Nginx: Server { Servername www.nomansky.xyz nomansky.xyz; Standort ^~ /.well-known/acme-challenge/ { Alias /home/wordpress/challenges/; versuche_dateien $uri =404; } Standort / { umschreiben ^/(.*)$ https://nomansky.xyz/$1 permanent; } } Die obige Konfiguration bedeutet, dass im Verzeichnis /home/wordpress/challenges/ nach Dateien gesucht wird und, falls diese nicht gefunden werden, eine Weiterleitung zur HTTPS-Adresse erfolgt. Dieser Prüfdienst wird bei zukünftigen Aktualisierungen des Zertifikats erneut verwendet und muss daher stets aufbewahrt werden. Als nächstes speichern Sie acme-tiny im SSL-Verzeichnis Geben Sie dann den privaten Schlüssel des Kontos, die CSR und das Bestätigungsverzeichnis an und führen Sie das Skript Zum Schluss müssen Sie noch das Zwischenzertifikat von Let’s Encrypt herunterladen. Achten Sie beim Konfigurieren des HTTPS-Zertifikats darauf, das Zwischenzertifikat nicht wegzulassen und das Stammzertifikat nicht mit einzuschließen. In der Nginx-Konfiguration müssen Sie das Zwischenzertifikat und das Website-Zertifikat kombinieren: wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > intermediate.pem Katze signiert.crt Zwischenprodukt.pem > verkettet.pem Um OCSP Stapling später reibungslos zu ermöglichen, werden wir das Stammzertifikat und das Zwischenzertifikat zusammenführen (dieser Schritt kann auch weggelassen werden) wget -O - https://letsencrypt.org/certs/isrgrootx1.pem > root.pem Katze intermediate.pem root.pem > full_chained.pem Das von Let’s Encrypt ausgestellte Zertifikat ist nur 90 Tage gültig. Es wird empfohlen, es mithilfe von Skripten regelmäßig zu erneuern. Erstellen Sie eine #!/bin/bash cd /etc/nginx/ssl/ python acme_tiny.py --account-key account.key --csr domain.csr --acme-dir /home/wordpress/challenges/ > signiert.crt || beenden wget -O - https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem > intermediate.pem Katze signiert.crt Zwischenprodukt.pem > verkettet.pem systemctl startet nginx neu Konfigurieren Sie die geplante Aufgabe in Crontabl 0x07 WordPress herunterladen und Nginx konfigurieren Laden Sie WordPress in Öffnen Sie als nächstes ··· Benutzer WordPress; Arbeiterprozesse automatisch; ··· Dann kommentiere ich hier den Serverkonfigurationsblock in der Hauptkonfigurationsdatei nginx.conf zwecks Entkopplung aus. Erstellen Sie ein neues Verzeichnis Standort ^~ /.well-known/acme-challenge/ { Alias /home/wordpress/challenges/; versuche_dateien $uri =404; } Erstellen Sie als Nächstes eine neue # Umleitung HTTP -> HTTPS Server { hören Sie 80; Servername www.nomansky.xyz nomansky.xyz; snippets/letsencrypt.conf einschließen; Rückgabewert 301 https://nomansky.xyz$request_uri; } # Umleitung WWW -> NICHT WWW Server { hören Sie 443 SSL http2; Servername www.nomansky.xyz; SSL-Zertifikat /etc/nginx/ssl/chained.pem; SSL-Zertifikatsschlüssel /etc/nginx/ssl/domain.key; gibt 301 https://nomansky.com$request_uri zurück; } Server { hören Sie 443 SSL http2; Servername nomansky.com; Stammverzeichnis /home/wordpress/wordpress; Indexierung index.php; # SSL-Parameter SSL-Zertifikat /etc/nginx/ssl/chained.pem; SSL-Zertifikatsschlüssel /etc/nginx/ssl/domain.key; # Protokolldateien Zugriffsprotokoll /home/wordpress/log/nomansky.xyz.access.log; Fehlerprotokoll /home/wordpress/log/nomansky.xyz.error.log; Standort = /favicon.ico { log_not_found aus; Zugriff_Abmeldung; } Standort = /robots.txt { alles erlauben; log_not_found aus; Zugriff_Abmeldung; } Standort / { versuche_dateien $uri $uri/ /index.php?$args; } Standort ~ \.php$ { versuche_dateien $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $Dokumentstammsatz$fastcgi_script_name; fastcgi_params einschließen; } Standort ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { läuft maximal ab; log_not_found aus; } Erstellen Sie ein Protokollverzeichnis Als Nächstes sehen Sie, dass die WordPress-Seite erfolgreich geöffnet wurde und Sie fertig sind. Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
>>: Javascript Frontend Optimierungscode
1. Installieren Sie zabbix-agent auf web01 Zabbix...
In MySQL gibt es eine Funktion namens „group_conc...
Inhaltsverzeichnis Vorwort Gespeicherte Prozedur:...
Als Frontend-Entwickler komme ich an den Tücken d...
Alle vorherigen Projekte wurden in der Windows-Sy...
Inhaltsverzeichnis 1. Wir haben festgestellt, das...
MySQL 5.7.8 und höher unterstützt nun einen nativ...
Inhaltsverzeichnis 1. Was bedeutet „Shallow Copy“...
Hier ist eine kurze Zusammenfassung der Installat...
Transaktionen stellen die Atomarität mehrerer SQL...
1. Der Unterschied zwischen Forward-Proxy und Rev...
Kürzlich habe ich im Internet den Artikel „Build ...
Nachdem ich diese sechs Artikel geschrieben hatte,...
Brotli ist ein neues Datenformat, das eine um 20 ...
Vorwort Immer noch in Bezug auf das zuvor erwähnt...