Installation von WordPress mit Nginx und Let’s Encrypt SSL auf CentOS 8
WordPress ist ein freies, quelloffenes und weltweit am häufigsten verwendetes Content-Management-System. Es ist eine sehr leistungsfähige Blogging-Plattform, die für das Hosten von Blogs, Portfolio-Websites und eCommerce-Plattformen verwendet werden kann. WordPress verwendet Apache/Nginx als Webserver, MariaDB/MySQL als Datenbank und PHP-Verarbeitung. WordPress bietet eine große Anzahl von Themen und Plugins, die zur Anpassung der Funktionalität verwendet werden können.
In diesem Tutorial erklären wir, wie man WordPress mit Nginx auf dem CentOS 8 Server installiert und dann den Server mit einem kostenlosen Let’s Encrypt SSL-Zertifikat sichert.
Voraussetzungen
- Ein Server mit CentOS 8.
- Ein Root-Passwort wird auf Ihrem Server konfiguriert.
- Ein gültiger Domainname wird auf Ihre Server-IP-Adresse gezeigt.
Erste Schritte
Standardmäßig ist SELinux in CentOS 8 Server aktiviert. Sie müssen es also zuerst deaktivieren.
Sie können dies tun, indem Sie die Datei /etc/selinux/config bearbeiten:
nano /etc/selinux/config
Nehmen Sie die folgenden Änderungen vor:
SELINUX=disabled
Speichern und schließen Sie die Datei. Starten Sie dann Ihren Server neu, um die Änderungen zu übernehmen.
LEMP-Server installieren
Bevor Sie beginnen, müssen Sie Nginx, MariaDB, PHP und andere erforderliche Pakete auf Ihrem Server installieren. Sie können alle diese Pakete installieren, indem Sie den folgenden Befehl ausführen:
yum install nginx php php-cli php-curl php-zip php-mbstring php-mysqlnd php-fpm curl unzip mariadb-server -y
Sobald alle Pakete installiert sind, starten Sie Nginx, PHP-FPM, MariaDB-Dienst und aktivieren Sie diese nach dem Neustart des Systems:
systemctl start nginx systemctl enable nginx systemctl start mariadb systemctl enable mariadb systemctl start php-fpm systemctl enable php-fpm
Sie können auch den Status des PHP-FPM-Dienstes mit dem folgenden Befehl überprüfen:
systemctl status php-fpm
Sie sollten die folgende Ausgabe erhalten:
? php-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2019-10-17 05:39:11 EDT; 4min 40s ago Main PID: 1475 (php-fpm) Status: "Processes active: 0, idle: 5, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 6 (limit: 5060) Memory: 28.5M CGroup: /system.slice/php-fpm.service ??1475 php-fpm: master process (/etc/php-fpm.conf) ??1478 php-fpm: pool www ??1479 php-fpm: pool www ??1480 php-fpm: pool www ??1481 php-fpm: pool www ??1482 php-fpm: pool www Oct 17 05:39:10 centos8 systemd[1]: Starting The PHP FastCGI Process Manager... Oct 17 05:39:11 centos8 systemd[1]: Started The PHP FastCGI Process Manager.
Danach können Sie mit dem nächsten Schritt fortfahren.
Konfigurieren Sie die WordPress-Datenbank
Standardmäßig ist der MariaDB-Server nicht gesichert. Sie müssen ihn also zuerst sichern. Sie können ihn mit dem folgenden Befehl sichern:
mysql_secure_installation
Beantworten Sie alle Fragen wie unten gezeigt:
Enter current password for root (enter for none): Set root password? [Y/n] n Remove anonymous users? [Y/n] Y Disallow root login remotely? [Y/n] Y Remove test database and access to it? [Y/n] Y Reload privilege tables now? [Y/n] Y
Sobald die Sicherung abgeschlossen ist, sollten Sie die folgende Ausgabe erhalten:
Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB!
Als nächstes melden Sie sich in der MariaDB-Shell mit dem folgenden Befehl an:
mysql -u root -p
Geben Sie Ihr Root-Passwort an, wenn Sie dazu aufgefordert werden, und erstellen Sie dann eine Datenbank und einen Benutzer für WordPress mit den folgenden Befehlen:
MariaDB [(none)]> CREATE DATABASE wpdb; MariaDB [(none)]> GRANT ALL PRIVILEGES on wpdb.* to 'wpuser'@'localhost' identified by 'password';
Als nächstes werden die Privilegien geflushed und die MariaDB-Shell mit dem folgenden Befehl verlassen:
MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> EXIT;
Sobald Ihre Datenbank konfiguriert ist, können Sie mit dem nächsten Schritt fortfahren.
WordPress herunterladen
Sie können die neueste Version von WordPress mit dem folgenden Befehl herunterladen:
cd /var/www/html wget https://wordpress.org/latest.tar.gz
Entpacken Sie die heruntergeladene Datei nach dem Herunterladen mit dem folgenden Befehl:
tar -xvzf latest.tar.gz
Als nächstes ändern Sie den Besitzer des wordpress-Verzeichnisses auf nginx:
chown -R nginx: /var/www/html/wordpress/
Wechseln Sie als nächstes das Verzeichnis in das Verzeichnis wordpress und benennen Sie die WordPress-Standardkonfigurationsdatei um:
cd /var/www/html/wordpress cp wp-config-sample.php wp-config.php
Als nächstes bearbeiten Sie die Datei wp-config.php in Ihrem bevorzugten Texteditor:
nano wp-config.php
Definieren Sie Ihre Datenbankinformationen wie unten gezeigt:
/** The name of the database for WordPress */ define( 'DB_NAME', 'wpdb' ); /** MySQL database username */ define( 'DB_USER', 'wpuser' ); /** MySQL database password */ define( 'DB_PASSWORD', 'password' ); /** MySQL hostname */ define( 'DB_HOST', 'localhost' );
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Konfigurieren Sie Nginx für WordPress
Als nächstes müssen Sie eine Nginx-Konfigurationsdatei für den virtuellen Host erstellen, um WordPress zu bedienen. Sie können diese mit dem folgenden Befehl erstellen:
nano /etc/nginx/conf.d/wordpress.conf
Fügen Sie die folgenden Zeilen hinzu:
server { listen 80; server_name example.com; root /var/www/html/wordpress; index index.php; access_log /var/log/nginx/example.com.access.log; error_log /var/log/nginx/example.com.error.log; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { expires max; log_not_found off; } }
Speichern und schließen Sie die Datei. Überprüfen Sie dann das nginx auf einen Syntaxfehler mit dem folgenden Befehl:
nginx -t
Sie sollten die folgende Ausgabe erhalten:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Schließlich starten Sie den Nginx-Dienst neu, um die Konfigurationsänderungen zu übernehmen:
systemctl restart nginx
Zugriff auf das WordPress-Dashboard
WordPress ist installiert und konfiguriert, jetzt ist es an der Zeit, auf die Web-Schnittstelle zuzugreifen.
Öffnen Sie Ihren Webbrowser und geben Sie die URL http://example.com ein. Sie werden auf die folgende Seite weitergeleitet:
Geben Sie alle erforderlichen Informationen wie den Namen der Website, den Administrator-Benutzernamen, das Passwort und die Administrator-E-Mail ein und klicken Sie auf die Schaltfläche WordPress installieren. Sobald die Installation abgeschlossen ist. Sie sollten die folgende Seite sehen:
Klicken Sie auf die Schaltfläche login. Sie werden auf die WordPress-Anmeldeseite weitergeleitet:
Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein und klicken Sie auf die Schaltfläche Anmelden. Sie sollten das WordPress-Dashboard auf der folgenden Seite sehen:
Sichern Sie WordPress mit Let’s Encrypt
Um Ihre WordPress-Site mit Let’s Encrypt free SSL zu sichern, müssen Sie den Certbot Let’s Encrypt-Client in Ihrem System installieren. Standardmäßig ist Certbot nicht im CentOS 8-Standard-Repository verfügbar. Daher müssen Sie ihn von der offiziellen Certbot-Website herunterladen.
Sie können Certbot mit den folgenden Befehlen herunterladen und installieren:
wget https://dl.eff.org/certbot-auto mv certbot-auto /usr/local/bin/certbot-auto chown root /usr/local/bin/certbot-auto chmod 0755 /usr/local/bin/certbot-auto
Führen Sie nun den folgenden Befehl aus, um ein SSL-Zertifikat für Ihre WordPress-Website zu erhalten und zu installieren.
certbot-auto --apache -d example.com
Sie werden gebeten, eine E-Mail-Adresse anzugeben und den Nutzungsbedingungen zuzustimmen. Sie müssen auch wählen, ob Sie HTTP-Verkehr auf HTTPS umleiten wollen oder nicht. Bitte wählen Sie die entsprechende Option und drücken Sie die Eingabetaste. Sobald die Installation erfolgreich abgeschlossen ist, sollten Sie die folgende Ausgabe erhalten:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2019-08-14. 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" - 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
Einrichten Verschlüsseln wir die automatische Verlängerung
Let’s Encrypt-Zertifikat ist 90 Tage lang gültig. Es wird daher empfohlen, das Zertifikat vor Ablauf der Gültigkeitsdauer zu erneuern. Sie können den Cron-Job so einrichten, dass das Zertifikat automatisch erneuert wird.
Dazu erstellen Sie die crontab mit dem folgenden Befehl:
crontab -e
Fügen Sie die folgende Zeile hinzu:
0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Schlussfolgerung
In der obigen Anleitung haben wir gelernt, wie man WordPress mit Nginx auf dem CentOS-Server installiert und konfiguriert. Wir haben auch gelernt, wie man die WordPress-Site mit Let’s Encrypt free SSL sichert. Ich hoffe, dass Sie nun problemlos Ihre eigene WordPress Website hosten können.