Wie man WordPress mit LAMP und kostenlosem Let’s Encrypt SSL auf Rocky Linux installiert

WordPress ist derzeit eines der beliebtesten Content Management Systeme (CMS) und wird von Millionen von Menschen genutzt. Das WordPress Projekt wurde 2003 als Abspaltung des CMS „b2/cafelog“ gestartet, steht unter einer GPLv2 Lizenz und ist somit freie und quelloffene Software.

Mittlerweile nutzen mehr als 34% der Websites im Internet WordPress. Einer der Gründe, warum WordPress so beliebt ist, ist, dass es einfach, leicht zu bedienen und flexibel ist. Mit hunderten/tausenden von Plugins kann WordPress auf verschiedene Arten genutzt werden, wie z.B. als einfache Blogging-Engine, eCommerce-Websites, einfaches Firmenprofil, Online-Foren-Community, etc.

In dieser Anleitung lernst du, wie du das CMS WordPress auf dem Rocky Linux 8.4 installieren kannst. Du wirst WordPress unter dem LAMP Stack (Linux, Apache2/httpd, MySQL/MariaDB, und PHP) installieren.

Voraussetzungen

  • Ein Rocky Linux Server. Stelle sicher, dass alle Pakete auf die neueste Version aktualisiert sind.
  • Ein Benutzer mit Root-Rechten. Dieser Benutzer erhält die Root-Rechte durch den Befehl sudo.

Installation des Apache/Httpd Webservers

Als erstes wirst du den Apache oder httpd Webserver auf dem Rocky Linux Server installieren.

1. Führe den folgenden dnf-Befehl aus, um den httpd-Webserver zu installieren.

sudo dnf install httpd

Tippe„y“ ein und drücke„Enter“ um zu bestätigen und die httpd Pakete zu installieren.

httpd Webserver installieren

2. Wenn die Installation abgeschlossen ist, aktiviere und starte den httpd Dienst mit dem folgenden Befehl.

sudo systemctl enable httpd
sudo systemctl start httpd

Der„systemctl enable“ Befehl wird den Dienst bei jedem Start aktivieren.

3. Danach führe den folgenden Befehl aus, um den httpd Dienst zu überprüfen.

sudo systemctl status httpd

Und du wirst ein ähnliches Ergebnis wie unten erhalten.

Starte die Aktivierung und Überprüfung des httpd Webservers

Wie auf dem oberen Screenshot zu sehen ist, ist der httpd aktiv und läuft.

Installation der PHP Pakete

Bis jetzt benötigt das WordPress CMS PHP 7.4 oder höher für die Installation. Nun wirst du PHP 7.4 aus dem remi Repository installieren.

1. Führe den folgenden Befehl aus, um epel und remi Repository hinzuzufügen

sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm

Gib „y“ ein und drücke „Enter“, um das epel und remi Repository hinzuzufügen.

Wenn die Installation abgeschlossen ist, überprüfe das epel und Remi Repository mit dem folgenden Befehl.

sudo dnf repolist

Du wirst das epel und remi Repository in der Repository Liste sehen.

Prüfen von EPEL und REMI Repository

2. Setze als nächstes das Standard-Repository-Modul PHP zurück. Aktiviere dann das Modul für PHP 7.4 aus dem remi Repository.

Führe den folgenden Befehl aus, um das Standard-Repository für das php-Modul zurückzusetzen.

sudo dnf module reset php

Gib dabei„y“ ein und drücke„Enter„, um den gpg-Schlüssel remi repository hinzuzufügen.

GPG Schlüssel importieren REMI Repository

Danach führe den folgenden Befehl aus, um das php Modul aus dem remi Repository zu aktivieren.

sudo dnf module enable php:remi-7.4

Tippe„y“ zur Bestätigung ein und drücke„Enter„, um fortzufahren. Jetzt bist du bereit, PHP und alle Erweiterungen für die WordPress-Installation zu installieren.

Aktiviere das REMI Repository PHP 7.4

3. Führe den folgenden Befehl aus, um php mit einigen notwendigen Erweiterungen zu installieren.

sudo dnf install php php-common php-mysqlnd php-gd php-imagick php-bcmath

Sobald die Installation abgeschlossen ist, gehe zum nächsten Schritt über.

MariaDB Server installieren und konfigurieren

In diesem Schritt installierst du den MariaDB Datenbankserver, sicherst den MariaDB Einsatz und erstellst eine neue Datenbank und einen neuen Benutzer für WordPress.

1. Um den MariaDB Datenbankserver zu installieren, führe den folgenden Befehl aus.

sudo dnf install mariadb mariadb-server

Warte auf die Installation von mariadb.

MariaDB Datenbank Server installieren

2. Sobald die Installation abgeschlossen ist, aktiviere und starte den MariaDB Dienst mit dem folgenden Befehl.

sudo systemctl enable mariadb
sudo systemctl start mariadb

4. 4. Wenn mariadb aktiv ist und läuft, führe den folgenden Befehl aus, um den MariaDB Dienst zu überprüfen.

sudo systemctl status mariadb

Wenn der mariadb Dienst läuft, wirst du eine ähnliche Ausgabe wie unten erhalten.

Starte enable und cehck MariaDB service stats

5. Als nächstes musst du deinen MariaDB Einsatz absichern, indem du das Root Passwort für MariaDB einrichtest und einige Standardkonfigurationen entfernst. Um das zu tun, kannst du das Kommandozeilen-Tool„mysql_secure_installation“ verwenden, das in der Standard-MariaDB-Installation enthalten ist.

Führe den„mysql_secure_installation“ Befehl unten aus.

mysql_secure_installation

Zu Beginn wirst du aufgefordert, das mariadb root Passwort einzurichten.

Gib dein starkes mariadb root Passwort ein und wiederhole es, dann drücke„Enter„, um fortzufahren.

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
… Success!

Gib nun „Y“ ein und drücke„Enter„, um den standardmäßigen anonymen Benutzer vom mariadb Server zu entfernen.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
… Success!

Danach deaktiviere den Remote Login für den Standardbenutzer‚root‚. Tippe„Y“ und drücke„Enter„, um fortzufahren.

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
… Success!

Tippe erneut„Y“ ein, um die Standarddatenbank„test“ zu entfernen und drücke„Enter„.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!

Und als letztes tippe wieder„Y“ ein, um alle Tabellenrechte neu zu laden und eine neue Konfiguration anzuwenden.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
… Success!

Nun ist der Prozess abgeschlossen und du wirst die folgende Ausgabe sehen.

Cleaning up...

All done!  If you’ve completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

Datenbank und Benutzer für WordPress erstellen

1. Melde dich in der mariadb Shell mit dem unten stehenden mysql Befehl an.

mysql -u root -p

2. Führe nun die folgende mysql-Abfrage aus, um eine neue Datenbank„wordpress_db“ zu erstellen.

CREATE DATABASE wordpress_db;

3. Führe die folgende Abfrage aus, um einen neuen Datenbankbenutzer„wpuser“ zu erstellen. Ändere das„strongpassword“ mit deinem starken Passwort.

CREATE USER wpuser@localhost IDENTIFIED BY 'strongpassword';

4. Erlaube dem Benutzer „wpuser“ den Zugriff und das Schreiben auf die„wordpress_db“ mit der folgenden Abfrage.

GRANT ALL PRIVILEGES ON wordpress_db.* to wpuser@localhost;

5. Lade nun alle Tabellenberechtigungen neu, um die neue Datenbankkonfiguration anzuwenden.

FLUSH PRIVILEGES;

Dann kannst du„quit“ eingeben und„Enter“ drücken, um die mariadb-Shell zu verlassen.

Datenbank und Benutzer für WordPress erstellen

WordPress herunterladen

1. Wechsle das Arbeitsverzeichnis zu „/var/www“ und lade den WordPress-Quellcode mit dem wget-Befehl wie unten beschrieben herunter.

cd /var/www/
wget https://wordpress.org/latest.tar.gz

2. Entpacke den WordPress-Quellcode„latest.tar.gz“ und du erhältst ein neues Verzeichnis„wordpress„, dann ändere den Besitzer des „wordpress“-Verzeichnisses auf den Benutzer „apache“.

tar -xzvf latest.tar.gz
sudo chown -R apache:apache wordpress/

Jetzt kannst du die WordPress Installation konfigurieren.

WordPress einstellen

In diesem Schritt bearbeitest du die WordPress Konfiguration „wp-config.php“, richtest die Datenbankdetails ein und fügst den Authentifizierungsschlüssel und die Salts (für zusätzlichen Sicherheitsschutz) hinzu.

1. Ändere zunächst das Arbeitsverzeichnis in„/var/www/wordpress„.

cd /var/www/wordpress/

2. Kopiere die Beispielkonfiguration„wp-config-sample.php“ nach„wp-config.php„, dann bearbeite die Konfigurationsdatei mit dem nano-Editor.

cp wp-config-sample.php wp-config.php
nano wp-config.php

3. Ändere die Datenbankdetails (DB_NAME, DB_USER und DB_PASSWORD) mit deinen Datenbankinformationen.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define( 'DB_NAME', 'wordpress_db' );

/** MySQL database username */
define( ‚DB_USER‘, ‚wpuser‘ );

/** MySQL database password */
define( ‚DB_PASSWORD‘, ’strongpassword‘ );

/** MySQL hostname */
define( ‚DB_HOST‘, ‚localhost‘ );

/** Database charset to use in creating database tables. */
define( ‚DB_CHARSET‘, ‚utf8‘ );

/** The database collate type. Don’t change this if in doubt. */
define( ‚DB_COLLATE‘, “ );

4. Besuche diesen Link, um die Authentifizierungsschlüssel und -salze zu generieren und füge dann die Konfiguration in deine „wp-config.php“-Datei wie unten beschrieben ein.

/**#@+
 * Authentication unique keys and salts.
 *
 * Change these to different unique phrases! You can generate these using
 * the {@link https://api.wordpress.org/secret-key/1.1/salt/ WordPress.org secret-key service}.
 *
 * You can change these at any point in time to invalidate all existing cookies.
 * This will force all users to have to log in again.
 *
 * @since 2.6.0
 */
define('AUTH_KEY',         'v$4/xyGF7t!^(-Xr~lUKT,1oBxOpxzXPAs)kPE_C%Oc^~^%JN]C-y(k>~Wj+JZRM');
define('SECURE_AUTH_KEY',  'y<|#/jfYs,Y_l;{[`2uNp9SMNH8zNGK[eb&RYqb-+bd<a,Fi<9z9rj2_#=R(5O&s');
define('LOGGED_IN_KEY',    '&U8Z{I~,xV%D>FDq+Qx{7@?ZD|_GgYby)z,l5jZDVqLC#&#+]#/6zh1-JQf6n6+X');
define('NONCE_KEY',        'pQv#Z_;q$4E: `AV.0eu-L7JA_BN-dvHV#W|;#s7>PTA<Vfs13S|-pE7RYV8+LX)');
define('AUTH_SALT',        '?;-?bWr%zTbx7lphp&]=IQ-P8D?ItOzs?4rGtaNI,kypb4xj$&X|ueIDA}5v?sj|');
define('SECURE_AUTH_SALT', 'mn<t0DVAfMX*SpqKC7NE}xFNZ|4c_N{s7|s-iKR4Jvc#GPc.9H:aW9%k2r?nAe;Z');
define('LOGGED_IN_SALT',   'ni D0H;5wrM3NQLWe<R-Y$j-_{)4{v*abQ(kAbhNrmi&+EXFMW-Gv7SQb6ya[)!s');
define('NONCE_SALT',       '=BMV@@hmv:~G/<+_8fPvQ(m%oR.A)%ZPtp``sZWK! !G6C%UYPrKU{xQJD.<bd45');
/**#@-*/

Drücke„Strg+x“ und tippe „y“ zum Speichern und Beenden.

Aktiviere httpd mod_ssl auf Rocky Linux

In diesem Tutorial wirst du WordPress installieren und mit SSL von Letsencrypt absichern. Also musst du mod_ssl für den httpd Server auf dem Rocky Linux aktivieren.

1. Installiere das Paket„mod_ssl“ mit dem unten stehenden dnf Befehl.

sudo dnf install mod_ssl mod_http2

2. Danach generiere das Standard-SSL für localhost mit dem untenstehenden openssl-Befehl.

openssl req -newkey rsa:2048 -nodes -keyout /etc/pki/tls/private/localhost.key -x509 -days 365 -out /etc/pki/tls/certs/localhost.crt

Du kannst bei allen Fragen einfach die Eingabetaste drücken, da dieses Zertifikat nur für localhost verwendet wird, nicht für die WordPress Domain.

SSL für localhost generieren

3. Führe nun den folgenden Befehl aus, um sicherzustellen, dass mod_ssl auf dem httpd Webserver verfügbar ist.

apachectl -M | grep ssl

Wenn du eine Ausgabe wie„ssl“ erhältst, dann ist mod_ssl aktiviert. Ansonsten bekommst du eine leere Ausgabe.

Aktiviere mod_ssl httpd Rocky Linux

SSL Letsencrypt auf Rocky Linux generieren

In diesem Schritt installierst du das cerbot Tool und generierst die SSL Zertifikate für die WordPress Installation. Du wirst SSL Letsencrypts mit dem webroot Plugin generieren.

1. Führe den folgenden Befehl aus, um das certbot-Tool zur Generierung von SSL Letsencrypt zu installieren.

sudo dnf install certbot

Warte den Installationsprozess ab.

2. Sobald die Installation abgeschlossen ist, erstelle mit den folgenden Befehlen ein neues Verzeichnis für die Letsencrypt-Autorisierung.

sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp apache /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt

3. Wechsle als nächstes in das Arbeitsverzeichnis „/etc/httpd/conf.d/“ und erstelle eine neue Konfiguration „well-known.conf“ mit dem Editor nano.

cd /etc/httpd/conf.d/
nano well-known.conf

Füge die folgenden Konfigurationen hinzu.

Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/"
<Directory "/var/lib/letsencrypt/">
    AllowOverride None
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>

Drücke„Strg+x“ und tippe„y“ zum Speichern und Beenden.

4. Führe nun die folgenden Befehle aus, um die httpd-Konfiguration zu überprüfen und starte den httpd-Dienst neu.

apachectl configtest
sudo systemctl restart httpd

Wenn du keine Fehlermeldung erhältst, bist du bereit, SSL Letsencrypt mit dem webroot Plugin zu erzeugen.

Certbot Webroot Plugin einrichten

5. Bevor du SSL Letsencrypt generierst, stelle sicher, dass dein Domainname in die Server-IP-Adresse aufgelöst ist. Danach kannst du SSL Letsencrypt mit dem webroot-Plugin generieren, indem du den certbot-Befehl unten ausführst. Ändere auch die E-Mail-Adresse und den Domainnamen in deinen eigenen.

sudo certbot certonly --agree-tos --email user@email.com --webroot -w /var/lib/letsencrypt/ -d domain.com -d www.domain.com

Wenn der Prozess abgeschlossen ist, werden deine SSL-Zertifikate im Verzeichnis„/etc/letsencrypt/live/domain.com/“ verfügbar sein.

Einrichten des virtuellen Hosts für WordPress

In diesem Schritt fügst du eine neue apache/httpd Virtual-Host-Konfiguration für WordPress hinzu.

1. Ändere das Arbeitsverzeichnis in„/etc/httpd/conf.d“ und erstelle eine neue Konfiguration„wordpress.conf“ mit dem nano Editor.

cd /etc/httpd/conf.d/
nano wordpress.conf

Ändere den detaillierten Domainnamen und das SSL-Pfadverzeichnis in dein eigenes und füge die Konfiguration in die „wordpress.conf“ Datei ein.

# httpd port 80
<VirtualHost *:80>
  ServerName domain.com
  ServerAlias www.domain.com

# automatic redirect http to https
Redirect permanent / https://domain.com/
</VirtualHost>

# httpd port 443/ssl
<VirtualHost *:443>
ServerName domain.com
ServerAlias www.domain.com

# WordPress path directory
DocumentRoot /var/www/wordpress

Protocols h2 http:/1.1

<If „%{HTTP_HOST} == ‚www.domain.com'“>
Redirect permanent / https://domain.com/
</If>

ErrorLog /var/log/httpd/domain.com-error.log
CustomLog /var/log/httpd/domain.com-access.log combined

SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/domain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem

SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCompression off

<Directory /var/www/wordpress/>
Options FollowSymlinks
AllowOverride All
Require all granted
</Directory>

<Directory /var/www/wordpress/>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*) index.php [PT,L]
</Directory>
</VirtualHost>

Drücke„Strg+x“ und gib„Y“ ein, um die Konfiguration zu speichern und zu beenden.

3. Führe als nächstes den folgenden Befehl aus, um die httpd-Konfiguration zu überprüfen.

sudo apachectl configtest

Wenn du keine Fehlermeldung erhältst, starte den httpd-Dienst mit dem folgenden Befehl neu.

sudo systemctl restart httpd

Jetzt bist du bereit für die WordPress Installation über den Webbrowser.

Apache Virtual Host einrichten

WordPress installieren

Wenn alle relevanten Serverkonfigurationen abgeschlossen sind, kannst du mit dem Webbrowser auf deine WordPress-Installation zugreifen.

1. Öffne deinen Webbrowser und gib die URL-Adresse deiner WordPress-Installation ein.

http://domain.com

Nun wirst du auf die sichere HTTPS-Verbindung umgeleitet und du erhältst die folgende Seite.

Sprache wählen WordPress Installation

Wähle die Sprache für deine WordPress-Installation aus, die Voreinstellung ist„English (united states)„, dann klicke auf„Weiter„.

2. Gib nun deinen„Site Title“ ein und gib einen neuen Benutzernamen, eine E-Mail und ein Passwort für deine WordPress Installation ein.

Klicke dann auf den Button„WordPress installieren„, um die Installation zu starten.

WordPress installieren

3. Nachdem die Installation abgeschlossen ist, erhältst du die folgende Seite.

WordPress Installation erfolgreich

Klicke auf die Schaltfläche„Anmelden„, um fortzufahren.

4. Nun wirst du auf die WordPress Login-Seite weitergeleitet.

WordPress Login Seite

Gib deinen Benutzernamen und dein Passwort ein und klicke dann auf„Anmelden„.

5. Und du wirst die Standard WordPress Index Seite erhalten.

WordPress Standard Index

6. Bewege deinen Cursor zum Menü„Mein Blog“ und klicke auf„Dashboard“ oder„Themes„, und du erhältst das WordPress Admin-Dashboard wie unten.

WordPress Admin Dashboard

7. Um das WordPress Plugin zu installieren, bewege deinen Mauszeiger zum Menü„Plugin“ und klicke auf„Neu hinzufügen„, dann wirst du zur Plugin-Seite weitergeleitet.

WordPress installieren Plugin Test

Wähle das Plugin aus, das du installieren möchtest und klicke auf„Jetzt installieren„, dann kannst du auf den„Aktivieren“ Button klicken, um das Plugin zu aktivieren.

Fazit

Herzlichen Glückwunsch! Du hast das WordPress CMS mit LAMP Stack erfolgreich auf dem Rocky Linux Server installiert. Im Folgenden findest du alles, was du in diesem Tutorial gelernt hast:

  • LAMP Stack installieren
  • Absicherung der MariaDB Installation
  • Anlegen der mysql Datenbank und des Benutzers aus der mysql/mariadb Shell
  • Einrichten des apache/httpd Webservers für das certbot webroot Plugin
  • SSL Letsencrypt generieren
  • Und der letzte ist eine WordPress Installation

Für den nächsten Schritt kannst du Themes auswählen oder kaufen und diese auf deinem WordPress installieren.

Das könnte dich auch interessieren …