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:

WordPress-Installationsassistent

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:

WordPress erfolgreich installiert

Klicken Sie auf die Schaltfläche login. Sie werden auf die WordPress-Anmeldeseite weitergeleitet:

WordPress-Anmeldung

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:

WordPress Admin Dashboard

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.

Das könnte Dich auch interessieren …