Das ist eine Schritt für Schritt Anleitung zur Einrichtung eines lokalen Webservers auf der Basis von Debian 13 und mit dem WordPress CMS, speziell für @HolgerE
Ausgangspunkt
Lokalen Rechner mit dem jeweils aktuellen Debian (zur Zeit Version 13) einrichten. Es gibt ein kleines netinst Installationspaket, bei dem während der Installation alles aus dem Netz geholt wird. Oder ein grosses ISO Paket mit 4 GB, das alle potentiellen Pakete auf dem lokalen ISO Image hat.
Debian ist eine Linux Distribution für den professionellen Einsatz als Server. Die voreingestellte Paket-Auswahl ist bewusst minimalistisch. Standardmässig wird nur eine grafische Oberfläche mit den nötigsten Anwendungen zur Administration eines Linux Servers Installiert. Weitere Funktionspakete (z.B. Datenbank, php Umgebung, Webserver) müssen jeweils passend zum Einsatzzweck gezielt nachinstalliert werden. .
LAMP Installation für ein WordPress CMS
LAMP = linux apache mysql php
- Lokaler Rechner mit Debian 13
- Pakete nachinstallieren, falls nicht vorhanden und anschliessend konfigurieren
- Datenbank erstellen
- WordPress konfigurieren
- weitere Wordpress Funktionen über Plugins bereitstellen (ggf. php Paketliste erweitern)
- optional: Einrichten von Port Forwarding auf der Fritzbox
- optional: Einrichten von https mit letsencrypt Zertifikaten, falls das WordPress von aussen erreichbar sein soll
- optional: Einrichten einer Remote Administration (openssh)
Paketverwaltung und sudo
Sudo erlaubt den temporären Wechsel eines Benutzers mit normalen Rechten in die Rolle „Administrator“ (unter Linux „root“ User genannt). Auf Debian ist sudo aus Sicherheitsgründen nicht automatisch installiert/konfiguriert.
- synaptic Paketverwaltung, Paketname synaptic
- sudo für den ersten User einrichten. Paketname sudo. Einrichtung siehe sudo - Debian Wiki
SQL Datenbank
- mariadb-server, Basiswissen siehe MariaDB & MySQL
- Datenbank für die Wordpress Website erzeugen
Apache Webserver
es darf immer nur ein Webserver installiert bzw. aktiv sein. Typischerweise entweder Apache oder nginx. Hier nutzen wir Apache
- Apache Webserver. siehe Apache Web Server
php Laufzeitumgebung
WordPress ist in der Programmiersprache PHP programmiert. Deshalb braucht man auf dem Rechner eine Laufzeitumgebung für PHP, bevor man mit der Einrichtung von WordPress starten kann.
Diese php Pakete sollten über Synaptic nachinstalliert werden.
php-common install
php-curl install
php-gd install
php-getid3 install
php-imagick install
php-json install
php-mbstring install
php-mysql install
php-redis install
php8.4-cli install
php8.4-common install
php8.4-curl install
php8.4-gd install
php8.4-igbinary install
php8.4-imagick install
php8.4-mbstring install
php8.4-mysql install
php8.4-opcache install
php8.4-phpdbg install
php8.4-readline install
php8.4-redis install
php8.4-xml install
php8.4-zip install
Es gibt enge Abhängigkeiten zwischen dem Funktionsumfang von WordPress mit den dort installierten Plugins und der php Laufzeitumgebung im Betriebssystem. Je nach Zahl/Typ der in WordPress installierten Plugins können mehr oder weniger php Pakete nötig sein. Daher ist diese Liste nur beispielhaft, es kann sein, dass man sie später erweitern muss.
redis (optional)
redis ist eine In-Memory-NoSQL-Datenbank, die Datenbankabfragen und das Ausführen von php Code cachet und eine Datenbank-gestützte Website deutlich beschleunigen kann. Die Installation ist sehr empfehlenswert, aber für WordPress nicht zwingend nötig. Doku siehe Install Redis on Linux | Docs
WordPress
Das WordPress CMS kann aus Debian heraus mit installiert werden, ist aber ggf. nicht mehr aktuell. Die jeweils aktuellste Version in Deutsch gibt es hier Herunterladen – WordPress.org Deutsch
Weitere Details zu WordPress und wp-cli siehe
letsencrypt: certbot für https
Letsencrypt ist ein Web-Dienst, der kostenlos https Zertifikate ausstellt. Doku https://letsencrypt.org/ Das certbot Shell Skript aktualisiert die Zertifikate automatisch.
Bevor man mit dem Certbot Zertifikate anfordert, muss man zuvor bei einem üblichen Internet Provider (Hetzner, IONOS usw.) einen DNS Namen für seinen Server registriert haben, z.B. meinserver.meinedomaene.de. Nach der technischen Registrierung kann es ein paar Stunden dauern, bis der DNS Eintrag auf alle DNS Server weltweit publiziert wurde.
Remote Administration
ssh und openssh-server
Einrichtung siehe Debian SSH aktivieren: Einfache Schritt-für-Schritt Anleitung
DynDNS und Port forwarding (optional)
Nur nötig, falls der Server von aussen erreichbar sein soll. Setzt eine aktuelle Fritzbox mit Fritz!OS 8.x. voraus
DynDNS
Private DSL und Glasfaser Anschlüsse bekommen vom Provider dynamische IP Adressen zugewiesen, die sich jede Nacht ändern können. Damit der Zugriff trotzdem tut, braucht man einen stabilen DNS Namen nach aussen und einen Dienst, der die dynamische IP Adresse der Fritzbox mit dem stabilen DNS Namen verknüpft.
Auf der Fritzbox unter Internet, Freigaben, DynDNS
Doku: FRITZ!Box 7510 | Dynamic DNS in FRITZ!Box einrichten
Port forwarding
Auf der Fritzbox unter Internet, Freigaben, Port-Freigaben
Eine Port-Freigabe für Port tcp 80 ist unverschlüsselt und sollte nur temporär offen sein **
Im Dauerbetrieb sollte nur eine Port-Freigabe für den verschlüsselten Port tcp 443 (https://) offen sein. Noch besser ist eine Port Freigabe auf einem anderen Port, damit der Port 443 auf der Fritzbox selbst ggf. für Fernwartung genutzt werden kann (Wichtig für https://fritz.com/index.php?id=26292 ). Also nach diesem Schema



