Diese Anleitung beschreibt die Installation von WordPress auf einem leeren VPS mit der leistungsstärksten Kombination bei gleichen Ressourcen: Nginx, PHP-FPM 8.3 und MariaDB. Rechnen Sie mit etwa zwanzig Minuten. Die Befehle sind für Ubuntu 24.04 LTS geschrieben, das standardmäßig PHP 8.3 bereitstellt; auf Unterschiede zu Debian 12 wird hingewiesen.
Bevorzugen Sie eine grafische Benutzeroberfläche? Bei einem Hosting-Paket mit Plesk lässt sich WordPress mit einem Klick installieren: Sehen Sie sich unsere Webhosting. Und falls Sie sich hinsichtlich der Servergröße unsicher sind, lesen Sie bitte zunächst Welcher VPS eignet sich für das Hosting von WordPress?.
1. Voraussetzungen
- Ein VPS mit mindestens 2 GB RAM (für eine professionelle Website werden 4 GB empfohlen), frisch installiert.
- Root-Zugriff über SSH. Falls Sie dies noch nicht getan haben, befolgen Sie bitte die folgenden Schritte Die ersten Schritte auf Ihrem VPS.
- Ein Domainname, dessen Registrierung
Averweist auf die IP-Adresse des VPS. Siehe DNS konfigurieren.
Ersetzen Sie im gesamten Leitfaden monsite.fr über Ihre Domain.
2. Nginx, MariaDB und PHP 8.3 installieren
apt update && apt upgrade -y
apt install -y nginx mariadb-server \
php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd php8.3-intl \
php8.3-mbstring php8.3-xml php8.3-zip php8.3-bcmath php-imagick
Diese Erweiterungen decken die Anforderungen ab, die WordPress in seinem Bildschirm „Website-Zustand“ stellt: intl was die Sprachen betrifft, gd und imagick Was die Bilder betrifft, zip um Erweiterungen über den Administrationsbereich zu installieren.
php8.3 von php8.2 an beliebiger Stelle in dieser Anleitung oder fügen Sie das Sury-Repository hinzu, um PHP 8.3 zu erhalten. WordPress empfiehlt PHP 8.3 oder eine neuere Version.Sichern Sie anschließend MariaDB: Dieser Befehl löscht die anonymen Konten und die Testdatenbank.
mariadb-secure-installation
Antworten Sie Y auf alle Fragen. Unter Ubuntu erfolgt die Authentifizierung des MariaDB-Root-Kontos über das System: mariadb Wenn das Programm als Root gestartet wird, wird kein Passwort abgefragt, und das ist beabsichtigt. Weitere Informationen finden Sie unter MariaDB absichern.
3. Die Datenbank anlegen
Erstellen Sie zunächst ein sicheres Passwort und richten Sie anschließend eine Datenbank sowie einen Benutzer speziell für diese Website ein:
openssl rand -base64 24
mariadb
CREATE DATABASE monsite CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'monsite'@'localhost' IDENTIFIED BY 'LE_MOT_DE_PASSE_GENERE';
GRANT ALL PRIVILEGES ON monsite.* TO 'monsite'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Ein Benutzer pro Website: Sollte eine Website kompromittiert werden, erhält der Angreifer keinen Zugriff auf die Datenbanken der anderen.
4. WordPress herunterladen und einrichten
cd /var/www
wget https://wordpress.org/latest.tar.gz
tar xzf latest.tar.gz && rm latest.tar.gz
mv wordpress monsite.fr
cd monsite.fr
cp wp-config-sample.php wp-config.php
Öffnen Sie wp-config.php und geben Sie an DB_NAME, DB_USER und DB_PASSWORD. Ersetzen Sie anschließend den Block mit den Sicherheitsschlüsseln (die Zeilen AUTH_KEY à NONCE_SALT) durch eindeutige Werte, die vom offiziellen Dienst generiert werden:
curl -s https://api.wordpress.org/secret-key/1.1/salt/
Fügen Sie außerdem diese beiden Zeilen oberhalb von /* That's all, stop editing! */ :
define('DISABLE_WP_CRON', true); // remplace par un vrai cron, voir étape 8
define('DISALLOW_FILE_EDIT', true); // pas d'éditeur de code dans l'administration
Geben Sie die Dateien schließlich an den Benutzer des Webservers weiter:
chown -R www-data:www-data /var/www/monsite.fr
find /var/www/monsite.fr -type d -exec chmod 755 {} \;
find /var/www/monsite.fr -type f -exec chmod 644 {} \;
chmod 640 /var/www/monsite.fr/wp-config.php
5. Nginx konfigurieren
Erstellen Sie die Datei /etc/nginx/sites-available/monsite.fr :
server {
listen 80;
listen [::]:80;
server_name monsite.fr www.monsite.fr;
root /var/www/monsite.fr;
index index.php;
client_max_body_size 64M;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
# fichiers sensibles
location ~ /\.(?!well-known) { deny all; }
location = /xmlrpc.php { deny all; }
location ~* /(?:uploads|files)/.*\.php$ { deny all; }
location ~* \.(?:css|js|jpe?g|png|gif|webp|avif|svg|ico|woff2?)$ {
expires 30d;
add_header Cache-Control "public";
access_log off;
}
}
Drei Regeln bedürfen einer Erläuterung. Die \. in \.php$ ist wichtig: Ohne den Backslash akzeptiert der Punkt jedes beliebige Zeichen. Die Sperrung von xmlrpc.php Dies verschließt eine Einfallstür, die häufig für Brute-Force-Angriffe genutzt wird; entfernen Sie diese Einstellung nur, wenn Sie die WordPress- oder Jetpack-App verwenden. Schließlich dürfen keine PHP-Dateien aus dem Ordner „Hochgeladene Medien“ ausgeführt werden können.
ln -s /etc/nginx/sites-available/monsite.fr /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
nginx -t && systemctl reload nginx
6. PHP konfigurieren
Die Standardgrenzwerte von PHP verhindern das Hochladen von Mediendateien, die größer als 2 MB sind. Erstellen Sie eine Übersteuerungsdatei, anstatt die Datei zu ändern. php.ini : Es bleibt auch nach Updates erhalten.
cat > /etc/php/8.3/fpm/conf.d/99-wordpress.ini <<'EOF'
upload_max_filesize = 64M
post_max_size = 64M
memory_limit = 256M
max_execution_time = 120
EOF
systemctl restart php8.3-fpm
Bewahren Sie upload_max_filesize im Einklang mit client_max_body_size in Nginx; andernfalls gilt der kleinere der beiden Werte.
7. HTTPS aktivieren
apt install -y certbot python3-certbot-nginx
certbot --nginx -d monsite.fr -d www.monsite.fr --redirect
Certbot besorgt das Zertifikat, fügt die HTTPS-Konfiguration hinzu und leitet den HTTP-Verkehr um. Die Verlängerung erfolgt automatisch. Details und Fehlerbehebung finden Sie unter Nginx und Let’s Encrypt.
8. Die Installation abschließen
Öffnen Sie https://monsite.fr : Der WordPress-Assistent fragt Sie nach dem Namen der Website und dem Administrator-Konto. Wählen Sie einen Benutzernamen, der nicht admin und ein langes Passwort.
Richten Sie anschließend den in Schritt 4 definierten System-Cron ein. Standardmäßig führt WordPress seine geplanten Aufgaben während der Besuche aus, was bestimmte Seiten verlangsamt und nicht ausgeführt wird, wenn auf der Website kein Datenverkehr herrscht.
echo '*/5 * * * * www-data /usr/bin/php /var/www/monsite.fr/wp-cron.php >/dev/null 2>&1' > /etc/cron.d/wordpress-monsite
Wählen Sie schließlich unter Einstellungen → Permalinks die Option „Beitragstitel“ aus: Lesbare Adressen sind besser für die Suchmaschinenoptimierung.
9. Sichern und optimieren
Die Website funktioniert. Folgende Faktoren tragen zu ihrer Nachhaltigkeit bei, geordnet nach Priorität:
- Firewall : Es sind lediglich die SSH-Ports sowie die Ports 80 und 443 geöffnet. Siehe UFW konfigurieren.
- SSH mit Schlüssel und deaktivierte Root-Anmeldung. Siehe SSH absichern.
- Fail2ban über SSH und über
wp-login.php. Siehe Fail2ban für Fortgeschrittene. - Tägliche Datensicherungen außerhalb des Servers, Dateien und Datenbank. Siehe Sicherungen mit Borg.
- Leistungen : OPcache, Nginx-Seiten-Cache und Redis. Siehe PHP-FPM und den Nginx-Cache optimieren.
Häufig gestellte Fragen
Benötigt man für WordPress MySQL oder MariaDB?
Beides funktioniert. WordPress empfiehlt MySQL 8.0 oder höher bzw. MariaDB 10.11 oder höher. MariaDB ist die standardmäßig unter Debian und Ubuntu bereitgestellte Datenbank; sie ist ohne jegliche Anpassungen mit WordPress kompatibel und stellt auf einem VPS die einfachste Wahl dar.
Warum Nginx statt Apache?
Nginx beansprucht pro Verbindung weniger Arbeitsspeicher und stellt statische Dateien effizienter bereit, was auf einem kleinen VPS von Bedeutung ist. Apache ist nach wie vor eine gute Wahl, wenn Sie auf .htaccess-Dateien angewiesen sind, die Nginx nicht liest: Bei Nginx werden die Umschreibungsregeln in der Serverkonfiguration festgelegt.
Wie viele WordPress-Websites können auf einem VPS installiert werden?
Soweit es das Gedächtnis zulässt. Wiederholen Sie die Schritte 3 bis 7 für jede Website mit einer eigenen Datenbank, einem eigenen Benutzer, einem eigenen Ordner und einer eigenen Nginx-Datei. Ein VPS mit 4 GB bietet ausreichend Platz für mehrere kleine Websites mit aktivem Cache.
Wie aktualisiert man WordPress auf einem VPS?
Über die Verwaltung, wie bei jedem anderen Hosting-Anbieter auch, da die Dateien dem Nutzer des Webservers gehören. Erstellen Sie vor jedem größeren Update eine Sicherungskopie. Um mehrere Websites über die Befehlszeile zu verwalten, ermöglicht das Tool WP-CLI die Aktualisierung aller Websites mit einem einzigen Befehl.










