Zum Inhalt springen
Konfiguration

WordPress wp-config.php Datei: Aufgabe, sicher bearbeiten

Die wp-config.php enthält den Datenbank-Login, Sicherheitsschlüssel und Einstellungen. So findest du die Datei, verstehst sie und bearbeitest sie sicher.

Veröffentlicht

Die wp-config.php ist die Datei, die WordPress sagt, wie es sich mit der Datenbank verbindet und wie es laufen soll. Normalerweise liegt sie im Root-Ordner deiner Installation, neben wp-admin und wp-content. Einstellungen kannst du gefahrlos über der Zeile “That’s all, stop editing!” (Das war’s, ab hier nicht mehr bearbeiten!) ergänzen oder ändern. Die zwei Codeblöcke unter dieser Zeile lässt du in Ruhe. Mach vorher ein Backup, denn ein einziger Tippfehler kann die ganze Website lahmlegen.

Das Wichtigste in Kürze

  • Die Datei enthält dein Datenbank-Passwort und deine Sicherheitsschlüssel. Behandle sie wie ein Passwort und poste ihren Inhalt nie in einem Forum oder Support-Chat.
  • Eigene Einstellungen gehören über die “stop editing”-Zeile. Die letzte Zeile darunter lädt WordPress, und eine Einstellung danach kommt zu spät.
  • Im WordPress-Download ist wp-config-sample.php enthalten. Die echte wp-config.php entsteht bei der Einrichtung.
  • Ändere $table_prefix auf einer Live-Website nicht, indem du nur diese Zeile bearbeitest. WordPress verhält sich dann so, als wäre es nicht installiert.

Wo du die wp-config.php findest

Verbinde dich per SFTP oder öffne den Dateimanager deines Hosters und geh in den Ordner mit wp-admin, wp-includes und wp-content. Die WordPress-Dokumentation nennt ihn das Root-Verzeichnis deiner WordPress-Dateien.

Liegt sie dort nicht, schau einen Ordner höher. Der WordPress-Loader prüft zuerst den Installationsordner und dann den übergeordneten Ordner. Diesen überspringt er, wenn er eine eigene wp-settings.php enthält, denn dann liegt dort eine andere WordPress-Installation.

Fehlt die Datei an beiden Stellen, schickt WordPress Besucher zu seinem Einrichtungsbildschirm. Dieser Bildschirm erstellt die Datei aus wp-config-sample.php. Kann er nicht in den Ordner schreiben, zeigt er dir den Text, den du von Hand in eine neue Datei einfügst.

Was die einzelnen Standardabschnitte tun

wp-config-sample.php ist die Vorlage und enthält diese Teile in dieser Reihenfolge:

AbschnittWas er enthältDarfst du ihn ändern?
DB_NAME, DB_USER, DB_PASSWORD, DB_HOSTDen Datenbank-Login. Die Vorlage nennt localhost als Host, die echten Werte bekommst du von deinem Hoster.Ja, wenn sich deine Datenbankdaten ändern. Ein falscher Wert führt zum Fehler beim Aufbau der Datenbankverbindung.
DB_CHARSET, DB_COLLATEWie Text in der Datenbank gespeichert wird. Standard sind utf8mb4 und ein leerer Wert.Der Kommentar in der Vorlage sagt zu DB_COLLATE, dass du ihn im Zweifel nicht ändern sollst.
AUTH_KEY bis NONCE_SALTAcht Sicherheitsschlüssel und Salts für Login-Cookies.Ja. Eine Änderung meldet alle Benutzer ab.
$table_prefixDer Text am Anfang jedes Tabellennamens in der Datenbank, standardmäßig wp_.Nur bei der Installation, es sei denn, du benennst auch die Tabellen um und aktualisierst gespeicherte Datenbankeinträge, deren Namen das Präfix enthalten.
WP_DEBUGDer Debug-Modus, in der Vorlage auf false gesetzt.Ja. Die Anleitung zum Speicherort des Debug-Logs zeigt, wie du Fehler in eine Datei umleitest.
Der Kommentar “custom values” (eigene Werte)Ein freier Bereich für deine Einstellungen, der an der “stop editing”-Zeile endet.Ja, hier kommen deine Ergänzungen hin.
ABSPATH und die Zeile mit wp-settings.phpDer Pfad zu WordPress und die Zeile, die den Rest lädt.Nein. Lass sie unverändert.

Neue Schlüssel bekommst du mit einem Klick: Der Secret-Key-Dienst von WordPress.org liefert bei jedem Aufruf einen frischen Satz. Ersetze alle acht Zeilen durch den neuen Satz.

Älteren Dateien kann der Kommentar “custom values” fehlen, und dort steht “Happy blogging” statt “Happy publishing”. Beides funktioniert, und die Regel bleibt gleich: Deine Einstellungen kommen über diese Zeile.

Häufig geänderte Einstellungen

Jede davon ist eine Zeile. Alle stammen aus der Dokumentation zur wp-config.php, die Standardwerte aus der WordPress-Datei default-constants.php.

// Memory for the front end, then for wp-admin
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );

// Keep at most 3 revisions per post (false turns revisions off)
define( 'WP_POST_REVISIONS', 3 );

// Autosave every 180 seconds
define( 'AUTOSAVE_INTERVAL', 180 );

// Empty the trash after 7 days
define( 'EMPTY_TRASH_DAYS', 7 );

// Remove the theme and plugin file editor from wp-admin
define( 'DISALLOW_FILE_EDIT', true );

// Force HTTPS for logins and wp-admin
define( 'FORCE_SSL_ADMIN', true );

// Set the site addresses here
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );

Kopiere nur die Zeilen, die du brauchst. Bei einigen gibt es Details, die du kennen solltest:

  • Speicher: WordPress nutzt standardmäßig 40M, bei Multisite 64M, und 256M für wp-admin, sofern PHP nicht schon mehr erlaubt. Lässt dein Hoster keine Änderung des Limits zu, verwendet WordPress das Limit, das PHP bereits hat. Was du dann tun kannst, steht in der Anleitung zum erschöpften Speicher.
  • Revisionen: Sie sind standardmäßig aktiv. Setze false, um sie auszuschalten, oder eine Zahl als Obergrenze.
  • Autosave und Papierkorb: Standard sind 60 Sekunden und 30 Tage. Setzt du EMPTY_TRASH_DAYS auf 0, ist der Papierkorb aus. Die Dokumentation warnt, dass WordPress dann nicht mehr nachfragt, wenn jemand auf “Delete Permanently” (Endgültig löschen) klickt.
  • Datei-Editor: Laut Hardening-Leitfaden hält diese Einstellung einen Angreifer nicht davon ab, schädliche Dateien hochzuladen, manche Angriffe kann sie aber stoppen. DISALLOW_FILE_MODS geht weiter und blockiert auch das Installieren und Aktualisieren von Plugins und Themes.
  • HTTPS: Beginnt die Einstellung „WordPress-Adresse“ schon mit https, setzt WordPress FORCE_SSL_ADMIN selbst auf true. Diese Zeile ändert nur dann etwas, wenn die Adresse nicht mit https beginnt.
  • Website-Adressen: Sie überschreiben die gespeicherten Werte, ohne das zu ändern, was in der Datenbank steht. Gib den Teil https:// mit an.

Eine Einstellung braucht mehr Planung. define( 'DISABLE_WP_CRON', true ); sorgt dafür, dass Seitenaufrufe keine geplanten Aufgaben mehr starten. Richte also einen Server-Cronjob für wp-cron.php ein, bevor du sie aktivierst, sonst laufen geplante Beiträge und andere zeitgesteuerte Aufgaben nicht.

So bearbeitest du die wp-config.php sicher

  1. Lade zuerst eine Kopie herunter. Bewahre sie auf deinem eigenen Computer auf. Eine Kopie auf dem Server mit einem Namen wie wp-config.php.bak kann im Browser lesbar sein, weil der Server sie nicht mehr als PHP behandelt.
  2. Öffne die Datei in einem reinen Texteditor. Der Bearbeitungsleitfaden von WordPress nennt Notepad++, Sublime Text und Visual Studio Code als geeignet. Er warnt vor Google Docs und Microsoft Word, weil Textverarbeitungen Anführungszeichen ändern und Code einfügen können, der Dateien beschädigt.
  3. Such die “stop editing”-Zeile und setz deine neuen Zeilen direkt darüber. Ist die Einstellung weiter oben schon definiert, ändere diese Zeile.
  4. Speichere, lade hoch und öffne dann deine Website in einem privaten Browserfenster, dazu eine Seite in wp-admin.
  5. Wenn etwas kaputtgeht, spiele deine Kopie wieder ein. Das macht die Änderung rückgängig, auch wenn wp-admin nicht lädt.

Die Datei über das Web-Root verschieben

Laut Hardening-Leitfaden kann die wp-config.php einen Ordner über deiner WordPress-Installation liegen, und der Loader-Code kommt damit ohne weitere Einstellungen zurecht. Verschiebe die Datei und prüfe dann, ob die Website noch lädt. Das Verschieben hat zwei Grenzen:

  • Der übergeordnete Ordner darf keine andere WordPress-Installation enthalten. Der Loader ignoriert einen übergeordneten Ordner mit eigener wp-settings.php.
  • Eine Ebene höher ist nur dann privat, wenn WordPress im Web-Root liegt. Liegt WordPress in einem Unterordner wie /blog/, ist eine Ebene höher meist immer noch öffentlich.

Derselbe Leitfaden sagt, dass manche das Verschieben für wenig sicherheitswirksam halten und dass es bei unvorsichtigem Vorgehen schwere Sicherheitslücken verursachen kann. Betrachte es also als optional. Für Apache nennt der Leitfaden außerdem diesen Block für den Anfang deiner .htaccess, der direkte Anfragen an die Datei ablehnt:

<Files "wp-config.php">
Require all denied
</Files>

Unsere Anleitung zur .htaccess-Sicherheit behandelt diese Regel zusammen mit weiteren.

Dateirechte für die wp-config.php

Die WordPress-Dokumentation nennt je nach Situation leicht unterschiedliche Zahlen:

  • Der Hardening-Leitfaden sagt, dass nur du und der Webserver die Datei lesen können sollen, was laut ihm im Allgemeinen 400 oder 440 bedeutet.
  • Der Leitfaden zu Dateirechten nennt 440 oder 400 für Shared Hosting mit suexec, damit andere Benutzer auf dem Server sie nicht lesen können. Als abgesichertes Beispiel zeigt er auch 600.
  • Für normale WordPress-Dateien nennt dieser Leitfaden 644 oder 640.

Welche Zahl funktioniert, hängt davon ab, unter welchem Systembenutzer dein Webserver läuft. Der Webserver muss die Datei lesen können. Lädt die Website nach einer Änderung nicht mehr, geh also zum vorherigen Wert zurück und frag deinen Hoster, welcher zu seinem Setup passt.

Häufige Fehler

  • Eine Einstellung nach der wp-settings.php-Zeile einfügen. Diese Zeile lädt WordPress und setzt seine Standardwerte. Eine PHP-Konstante kann sich während eines Skriptlaufs nicht ändern, deine Zeile bewirkt also nichts.
  • Dieselbe Einstellung zweimal definieren. Die erste Zeile setzt den Wert, die zweite kann ihn nicht ändern. Laut PHP-Handbuch ist das erneute Deklarieren einer Konstante seit PHP 8.5 veraltet, es kann also auch eine Meldung auslösen. Such in der Datei nach dem Namen, bevor du ihn ergänzt.
  • true oder false in Anführungszeichen setzen. 'false' ist ein nicht leerer String, und PHP wertet ihn als true. Schreib false ohne Anführungszeichen. Größenangaben wie '256M' brauchen sie dagegen.
  • Typografische Anführungszeichen aus einer Textverarbeitung oder von einer Webseite. PHP braucht gerade Anführungszeichen. Typografische lösen einen Fehler aus, durch den die Website nicht mehr lädt.
  • Debug-Fehler auf einer Live-Website anzeigen. WP_DEBUG_DISPLAY steht standardmäßig auf true. Aktivierst du nur WP_DEBUG, sehen Besucher die Fehler also auf der Seite. Die Anleitung zum Speicherort des Debug-Logs zeigt, wie du sie in eine Datei umleitest.
  • WP_ALLOW_REPAIR aktiviert lassen. Laut Dokumentation sollst du es nur bei Bedarf aktivieren und wieder deaktivieren, sobald das Problem gelöst ist.

FAQ

Was ist die wp-config.php in WordPress? Das ist die Konfigurationsdatei, die WordPress beim Start lädt. Sie enthält deinen Datenbank-Login, die Sicherheitsschlüssel und das Tabellenpräfix, und dort ergänzt du Einstellungen wie WP_DEBUG oder WP_MEMORY_LIMIT.

Wo liegt die Datei wp-config.php? Normalerweise im Root-Ordner deiner WordPress-Installation, also dem Ordner, in dem auch wp-admin, wp-includes und wp-content liegen. WordPress akzeptiert sie auch einen Ordner über der Installation, solange dieser Ordner keine wp-settings.php enthält.

Wo füge ich Code in die wp-config.php ein? Über der Zeile That’s all, stop editing! Happy publishing. (Das war’s, ab hier nicht mehr bearbeiten! Viel Spaß beim Veröffentlichen.) In älteren Dateien steht Happy blogging. Die letzte Zeile darunter lädt WordPress, eine Einstellung nach dieser Zeile kommt also zu spät.

Ist es sicher, die wp-config.php zu bearbeiten? Ja, wenn du ein Backup hast und einen reinen Texteditor benutzt. Ein einziger Tippfehler kann die ganze Website lahmlegen, auch wp-admin, also lade zuerst eine Kopie herunter. Geht die Website nach deiner Änderung nicht mehr, spiele die Kopie wieder ein.

Was passiert, wenn ich die wp-config.php lösche? WordPress findet seinen Datenbank-Login nicht mehr und startet die Einrichtung mit der Aufforderung, eine Konfigurationsdatei anzulegen. Deine Inhalte bleiben in der Datenbank. Spielst du das Backup ein oder legst die Datei mit denselben Daten neu an, ist die Website wieder verbunden.

Welche Dateirechte sollte die wp-config.php haben? Laut dem Hardening-Leitfaden von WordPress sollen nur du und der Webserver sie lesen können, was im Allgemeinen 400 oder 440 bedeutet. Der Leitfaden zu Dateirechten zeigt außerdem 600. Der Webserver muss die Datei weiterhin lesen können, frag also deinen Hoster, wenn die Website nicht mehr lädt.

Quellen


Stell dir die benötigten Einstellungen zusammen, ohne sie von Hand zu tippen, einschließlich frischer Sicherheitsschlüssel: mit dem kostenlosen wp-config.php-Generator.

FAQ

Fragen

Was ist die wp-config.php in WordPress?

Das ist die Konfigurationsdatei, die WordPress beim Start lädt. Sie enthält deinen Datenbank-Login, die Sicherheitsschlüssel und das Tabellenpräfix, und dort ergänzt du Einstellungen wie WP_DEBUG oder WP_MEMORY_LIMIT.

Wo liegt die Datei wp-config.php?

Normalerweise im Root-Ordner deiner WordPress-Installation, also dem Ordner, in dem auch wp-admin, wp-includes und wp-content liegen. WordPress akzeptiert sie auch einen Ordner über der Installation, solange dieser Ordner keine wp-settings.php enthält.

Wo füge ich Code in die wp-config.php ein?

Über der Zeile That's all, stop editing! Happy publishing. (Das war's, ab hier nicht mehr bearbeiten! Viel Spaß beim Veröffentlichen.) In älteren Dateien steht Happy blogging. Die letzte Zeile darunter lädt WordPress, eine Einstellung nach dieser Zeile kommt also zu spät.

Ist es sicher, die wp-config.php zu bearbeiten?

Ja, wenn du ein Backup hast und einen reinen Texteditor benutzt. Ein einziger Tippfehler kann die ganze Website lahmlegen, auch wp-admin, also lade zuerst eine Kopie herunter. Geht die Website nach deiner Änderung nicht mehr, spiele die Kopie wieder ein.

Was passiert, wenn ich die wp-config.php lösche?

WordPress findet seinen Datenbank-Login nicht mehr und startet die Einrichtung mit der Aufforderung, eine Konfigurationsdatei anzulegen. Deine Inhalte bleiben in der Datenbank. Spielst du das Backup ein oder legst die Datei mit denselben Daten neu an, ist die Website wieder verbunden.

Welche Dateirechte sollte die wp-config.php haben?

Laut dem Hardening-Leitfaden von WordPress sollen nur du und der Webserver sie lesen können, was im Allgemeinen 400 oder 440 bedeutet. Der Leitfaden zu Dateirechten zeigt außerdem 600. Der Webserver muss die Datei weiterhin lesen können, frag also deinen Hoster, wenn die Website nicht mehr lädt.