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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
3. Nachdem die Installation abgeschlossen ist, erhältst du die folgende Seite.
Klicke auf die Schaltfläche„Anmelden„, um fortzufahren.
4. Nun wirst du auf die WordPress Login-Seite weitergeleitet.
Gib deinen Benutzernamen und dein Passwort ein und klicke dann auf„Anmelden„.
5. Und du wirst die Standard WordPress Index Seite erhalten.
6. Bewege deinen Cursor zum Menü„Mein Blog“ und klicke auf„Dashboard“ oder„Themes„, und du erhältst das WordPress Admin-Dashboard wie unten.
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.
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.