Installation der Abhängigkeiten
# apt update && apt upgrade
WordPress
ist ein in PHP
geschriebenes Content Management System (CMS
) und basiert auf eine MySQL
oder MariaDB
Datenbank. Die folgenden Pakete sind auf einem Out of the box Debian 11 mit bereits vorhandenem Apache2 Webserver noch zu installieren.
# apt install mariadb-server php libapache2-mod-php php-mysql wget
MySQL und MariaDB installieren auf UNIX System ein Skript, welches dem Administrator die Möglichkeit die Datenbank mit grundsätzlichen Einstellungen abszusichern. mysql_secure_installation
bietet die Möglichkeit ein Root-Passwort (für die Datenbank) zu setzen, Remotezugänge zu deaktivieren, Test-Benutzer und -Datenbanken zu entfernen etc:
# mysql_secure_installation
Datenbank und Datenbank-Benutzer für WordPress erstellen
Die folgenden vier SQL-Statements richten eine Datenbank wordpress
ein, erstellen einen Datenbankbenutzer wpuser
mit dem Passwort wppasswd
und erteilen diesem Benutzer die Rechte ALL PRIVILEGES
an der Datenbank:
# mysql -u root
MariaDB [(none)]> CREATE DATABASE wordpress;
Query OK, 1 row affected (0.001 sec)
MariaDB [(none)]> CREATE USER 'wpuser'@'localhost' IDENTIFIED BY 'wppasswd';
Query OK, 0 rows affected (0.003 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress.* TO 'wpuser'@'localhost';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> ^DBye
Document-Root und VirtualHost im Apache Webserver erstellen. WordPress Instanz installieren
Die in der Infobox oben verlinkte Grundkonfiguration des Apache Webservers für die Verwendung virtueller Hosts wird nun für diese WordPress-Instanz erweitert.
Das Document-Root Verzeichnis wp.prontosystems.de
wird für den gleichnamigen FQDN
angelegt. WordPress herunterladen und im Document Root entpacken und abschließend die Berechtigungen für die WordPress Instanz setzen:
# cd /var/www/
/var/www# mkdir wp.prontosystems.de
/var/www# cd wp.prontosystems.de/
/var/www/wp.prontosystems.de# wget http://wordpress.org/latest.tar.gz
/var/www/wp.prontosystems.de# tar xfv latest.tar.gz
/var/www/wp.prontosystems.de# rm latest.tar.gz
/var/www/wp.prontosystems.de# chown -R www-data:www-data wordpress
/var/www/wp.prontosystems.de# chmod -R 755 wordpress/
Eine Konfigurationsdatei für den VirtualHost dieser Instanz muss noch erstellt und aktiviert werden:
# touch /etc/apache2/sites-available/wp.prontosystems.de.conf
<VirtualHost *:80> ServerAdmin webmaster@prontosystems.de ServerName wp.prontosystems.de DocumentRoot /var/www/wp.prontosystems.de/wordpress ErrorLog ${APACHE_LOG_DIR}/wp.prontosystems.de_error.log CustomLog ${APACHE_LOG_DIR}/wp.prontosystems.de_access.log combined </VirtualHost>
# a2ensite wp.prontosystems.de
# systemctl reload apache2
WordPress Instanz konfigurieren
Im entpackten Verzeichnis befindet sich die Konfigurationsdatei wp-config-sample.php
die umbenannt werden muss und in der umbenannten Kopie müssen dann die oben eingestellten Datenbank-Parameter wie Datenbankname
, Datenbankbenutzer
und Passwort
eingestellt werden:
/var/www/wp.prontosystems.de/wordpress# cp wp-config-sample.php wp-config.php
/var/www/wp.prontosystems.de/wordpress# chown www-data:www-data wp-config.php
// ** Database settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define( 'DB_NAME', 'wordpress' ); /** Database username */ define( 'DB_USER', 'wpuser' ); /** Database password */ define( 'DB_PASSWORD', 'wppasswd' );
Das macht die Datei wp-config.php
zu einer der sensibelsten Dateien der WordPress Installation, daher werden aus Sicherheitsgründen der Benutzergruppe Jeder die Berechtigungen entzogen:
/var/www/wp.prontosystems.de/wordpress# chmod 650 wp-config.php
Ein abschließender Reload der Apache Konfiguration finalisiert die Konfiguration, die damit im Backend abgeschlossen ist:
# systemctl reload apache2
Webseite SSL verschlüsseln
Bevor Sie mit dem Customizen Ihrer neuen WordPress Instanz beginnen, sollten Sie die Seite https
verschlüsseln. WordPress kann ziemlich empfindlich auf nachträgliche Änderungen der URL reagieren und schon ein Wechsel von http://
auf https://
kann am Ende häßliche Zertifikatswarnungen in bereits vorhandenen Elementen erzeugen. Das ganze läßt sich zwar idR wieder reparieren aber wenn man es vermeiden kann, kann man sich das Gefummel auch schenken.
Um eine Webseite https zu verschlüsseln, benötigt man ein Server Zertifikat. Ein solches kann eingekauft werden oder ist im Webhosting Paket bereits enthalten. Wer seine Webseiten auf einem eigenen Server hostet wird sehr wahrscheinlich zu Let's Encrypt Zertifikaten greifen. Die Installation eines Let's Entcrypt Zertifikats wird im Artikel Let's Encrypt Zertifikate mit Certbot beschrieben.