Das Entwicklerhandbuch für Fortgeschrittene zur Datei wp-config.php

Veröffentlicht: 2022-09-28

Wie gut kennst du wp-config wirklich? In diesen wenigen PHP-Zeilen steckt überraschend viel Leistung! Dieser Artikel ist eine Tour durch einige Teile von wp-config , von denen Sie vielleicht nichts wussten, aber wirklich sollten.

Weißt du alles über die Datei wp-config.php ? Haben Sie die gesamte WordPress-Dokumentationsseite darüber gelesen? Bis zum Schluss?

Wenn Sie bereits mit den Grundlagen von wp-config vertraut sind, wird das Lesen der offiziellen WordPress-Dokumentation wahrscheinlich ein richtiges Schlummerfest sein.

Wenn Sie die echten Entwickler-Leckereien wollen, nett nach Themen gruppiert und geliefert mit dem, was man nur als „völlig unnötigen Enthusiasmus über ein paar PHP-Konstanten“ bezeichnen könnte, dann bleiben Sie dabei: Ich bin dabei, wp-config.php wieder cool zu machen.

Milhouse von den Simpsons, mit „wp-config“ im Gesicht und der Überschrift „Meine Mutter sagt, ich bin cool“.

Inhaltsverzeichnis

  1. Wer sollte das lesen?
  2. Warum sollten Sie das lesen?
  3. Die Grundlagen
  4. Anzeigen von wp-config-Konstanten
  5. Aufschlüsselung des wp-config.php
    1. wp-config kann nach oben verschoben werden
    2. Der Setup-Bildschirm wird geladen, wenn es keine wp-config.php-Datei gibt
    3. wp-config.php wird sehr früh geladen
    4. Leg dich nicht mit wp-config.php an!
  6. Überprüfen/Fusseln Ihrer wp-config.php-Datei
  7. Sichern von WordPress mit wp-config.php
    1. wp-config.php vor Website-Besuchern schützen
    2. Rotierende Schlüssel/Salze
    3. Dinge bewegen und verstecken
    4. Deaktivieren der Datei-Editoren
    5. Automatische Updates deaktivieren
    6. Verhindern von externen HTTP-Anforderungen
  8. Sachen bewegen
    1. Verschieben der Benutzer- und Usermeta-Tabellen
    2. Verschieben Sie Inhalts-, Upload- und Plugin-Verzeichnisse
  9. Inhaltsbezogene Einstellungen
    1. Website- und Dashboard-URLs ändern
    2. Beitragseinstellungen
    3. Post-Revisionen
    4. Ändern des Autosave-Intervalls
  10. Einpacken

Wer sollte das lesen?

Dieser Artikel richtet sich an Entwickler und fortgeschrittene Benutzer, die bereits wissen, wie man die Datei wp-config.php bearbeitet, und einige der Konfigurationseinstellungen kennen, die Sie darin eingeben können.

Ich werde Ihnen nicht sagen, wie Sie die Datei mit FTP oder cPanel bearbeiten oder warum Sie sie nicht mit MS Word bearbeiten sollten.

Ich werde Ihnen nicht sagen, wie Sie Ihre Datenbank konfigurieren oder ältere Einstellungen durchgehen, die Sie 2013 verwendet haben, aber wirklich nicht mehr benötigen sollten. Und die meisten Gastgeber kümmern sich sowieso um die Basics für dich.

Wenn Sie neu bei wp-config.php sind, gibt es keinen Mangel an Leitfäden, die Ihnen die Grundlagen vermitteln, oder Sie können jederzeit in die offizielle Dokumentation eintauchen.

Warum sollten Sie das lesen?

Ja, ja, ich höre dich. Wenn die grundlegenden Details dessen, was Sie in diesen Artikel einfügen können, alle an anderer Stelle behandelt werden und Ihr Gastgeber sich sowieso um die meisten Grundlagen kümmert, warum sollten Sie dies lesen? Und in der Tat, warum verbringe ich meine Zeit damit, es zu schreiben?

Nun, wenn Sie mit der Bearbeitung von wp-config.php sind und die Grundlagen dessen kennen, was es tut, dann sind Sie wahrscheinlich zumindest ein fortgeschrittener WordPress-Entwickler.

Sie sind wahrscheinlich zumindest teilweise für das Hosten großer Websites verantwortlich, wahrscheinlich für Kunden. Sie müssen also wissen, wie Sie diese Datei im Notfall verwenden können. Und genug Verständnis für diese Datei zu haben, damit Sie nichts falsch machen, wenn Sie sie bearbeiten.

Darüber hinaus möchten Sie mit ziemlicher Sicherheit bestimmte Funktionen von WordPress sperren, die über das hinausgehen, was Ihr Host Ihnen erlaubt, automatisch zu konfigurieren.

Es ist wahrscheinlich, dass es Dinge gibt, von denen Sie nicht einmal wissen, dass Sie sie mit wp-config.php tun können ! Einige "Aha!" Momente zu haben.

Dieser Artikel ist ein nützlicher Bezugspunkt für die Konfiguration einiger Interna von WordPress. Also lesen Sie weiter, setzen Sie ein Lesezeichen und teilen Sie es mit Ihren Freunden und Kollegen.

Die Grundlagen

Ich sagte, dies sei kein Artikel für Anfänger, aber wir sollten die grundlegenden Fakten ermitteln, um sicherzustellen, dass wir am gleichen Ausgangspunkt sind.

Die Datei wp-config.php sich im Stammverzeichnis Ihrer WordPress-Installation (sie kann auch an anderen Orten vorhanden sein, aber dazu kommen wir noch), wird als Teil der WordPress-Initialisierung geladen und ermöglicht Ihnen, den WordPress-Kern zu konfigurieren.

Es ist für den Betrieb von WordPress unerlässlich. Es speichert eine Reihe von Konstanten, mit denen Sie Folgendes angeben können:

  • Die Datenbankverbindung und das Tabellenpräfix, die WordPress verwendet.
  • Sicherheitsinformationen wie Salts und Authentifizierungsschlüssel.
  • Einstellungen für andere Funktionen des WordPress-Kerns wie WP_CACHE und WP_DEBUG .
  • Einstellungen für Plugins, die der Datei ihre eigenen Optionen hinzufügen können.
  • Ihre eigenen Konfigurationsmöglichkeiten.

Entscheidend ist, wp-config.php eine umgebungsspezifische Datei ist. Ihr Inhalt kann (und sollte!) für verschiedene Sites unterschiedlich sein. Sogar lokale, Staging- und Live-Kopien derselben Site haben unterschiedliche Werte in der Datei.

WordPress wird mit einer wp-config-sample.php Datei geliefert, die das Nötigste an Details enthält, die WordPress zum Funktionieren benötigt. Sie könnten dies als Teil der Installation in Ihre eigene wp-config.php kopieren, aber heutzutage wird das normalerweise für Sie erledigt.

Beachten Sie abschließend, dass es möglich ist, dass Sie beim Öffnen einer wp-config.php Datei von einer vorhandenen Website einige alte PHP-Konstanten für Legacy-Funktionen wie Standarddateiberechtigungen und FTP-Anmeldeinformationen zum Ausführen von Upgrades sehen. Wir werden diese hier nicht behandeln, da es unwahrscheinlich ist, dass Sie sie verwenden müssen.

Anzeigen von wp-config-Konstanten

Es gibt einige Möglichkeiten, die Werte von WordPress-Konstanten schnell zu überprüfen, ohne per SSH zu einem Remote-Server zu gehen und die Datei zu öffnen.

Mit der Site Health-Funktion des WordPress-Kerns können Sie einige grundlegende Werte anzeigen, indem Sie zu Tools -> Site Health -> Info -> WordPress-Konstanten navigieren. Datenbankkonstanten sind auch im Abschnitt „Datenbank“ auf derselben Seite zu sehen.

Datenbankkonstanten, die hier im Abschnitt „Datenbank“ der WordPress-Seite „Site Health“ angezeigt werden.

Das Query Monitor-Plug-in verfügt über ein „Environment“-Panel, in dem Sie einige häufig verwendete wp-config Konstanten sehen können.

Das „Environment“-Panel des Query Monitor-Plugins, das einige häufig verwendete wp-config-Konstanten zeigt.

WP-CLI, die WordPress-Befehlszeilenschnittstelle, verfügt über einen Befehl wp config , mit dem Konstanten in wp-config.php und festgelegt werden können. Dies würde normalerweise erfordern, dass Sie zuerst SSH verwenden, aber wenn Sie Aliase in Ihrer WP-CLI-Konfiguration einrichten, können Sie eine schnelle Verknüpfung erstellen, um Konstanten in entfernten wp-config Dateien anzuzeigen und zu ändern.

Aufschlüsselung des wp-config.php

Es ist nützlich zu wissen, wann die Datei wp-config.php wird, da dies einige der Dinge bestimmt, die Sie damit tun können und was nicht. Es ist eine gute Übung, den Ladevorgang zu verfolgen:

  • WordPress beginnt mit dem Laden der Datei index.php . Dies erfordert die Datei wp-blog-header.php .

  • So ziemlich das erste, was wp-blog-header.php tut, ist das Laden von wp-load.php .

  • Als nächstes setzt wp-load.php die ABSPATH-Konstante (das grundlegende WordPress-Kernverzeichnis) und initialisiert error_reporting() , bevor wp-config.php .

Dieser Ladevorgang und insbesondere der Code in wp-load.php können uns einige interessante Dinge beibringen. Hier ist dieser Code:

 /* * If wp-config.php exists in the WordPress root, or if it exists in the root and wp-settings.php * doesn't, load wp-config.php. The secondary check for wp-settings.php has the added benefit * of avoiding cases where the current directory is a nested installation, eg / is WordPress(a) * and /blog/ is WordPress(b). * * If neither set of conditions is true, initiate loading the setup process. */ if ( file_exists( ABSPATH . 'wp-config.php' ) ) { /** The config file resides in ABSPATH */ require_once ABSPATH . 'wp-config.php'; } elseif ( @file_exists( dirname( ABSPATH ) . '/wp-config.php' ) && ! @file_exists( dirname( ABSPATH ) . '/wp-settings.php' ) ) { /** The config file resides one level above ABSPATH but is not part of another installation */ require_once dirname( ABSPATH ) . '/wp-config.php'; } else { // A config file doesn't exist. // [Code here to load the setup screen for in-browser configuration] }

Was sehen wir hier?

wp-config.php kann nach oben verschoben werden

Zunächst sagt uns der Kommentar, dass wir wp-config.php in den „WordPress-Root“ legen können. Was nicht erwähnt wird, ist, dass das „Root“ tatsächlich ein Verzeichnis über dem ABSPATH sein kann, in dem sich wp-load.php .

Wir können diese zusätzliche Überprüfung im elseif , wo nach dirname( ABSPATH ) . '/wp-config.php' dirname( ABSPATH ) . '/wp-config.php' . Die zusätzliche Bedingung im elseif wird im Kommentar erklärt.

Der Setup-Bildschirm wird geladen, wenn es keine wp-config.php-Datei gibt

Zweitens können wir sehen, dass, wenn eine Konfigurationsdatei nicht existiert, der Setup-Bildschirm geladen wird.

Es ist durchaus möglich, dass Sie diesen Bildschirm noch nie zuvor gesehen haben. Damit können Sie die anfänglichen Konfigurationsinformationen, wie z. B. die Datenbankanmeldeinformationen, in einer webbasierten Benutzeroberfläche eingeben:

Der selten gesehene WordPress-Setup-Bildschirm. WordPress lädt dies, wenn es keine Konfigurationsdatei findet, sodass Sie die Konfigurationsoptionen manuell festlegen können.

Dies ist eine wissenswerte Funktion von WordPress. Wenn Sie jemals die WordPress-Kerndateien auf einem öffentlich zugänglichen Webserver abgelegt haben, aber keine wp-config.php Datei erstellen, kann jemand anderes (oder wahrscheinlicher ein Bot) vorbeikommen und WordPress auf seine Weise einrichten und möglicherweise Ihr Hosting gefährden.

wp-config.php wird sehr früh geladen

Als Drittes ist zu beachten, dass wp-config.php sehr früh in der Startsequenz von WordPress geladen wird. Das bedeutet, dass:

  1. Es gibt vieles, was wir in wp-config.php nicht tun können. Beispielsweise können wir hier keine Hooks (Aktionen oder Filter) hinzufügen, da die Funktionen und Datenstrukturen dafür noch nicht geladen sind. Und wir haben keinen Zugriff auf die internen Funktionen, Objekte und APIs von WordPress.

  2. Wir haben viel Kontrolle darüber, was als nächstes passiert. Da die Datei so früh geladen wird, hat sie großen Einfluss auf WordPress. Das ist sowohl gut als auch schlecht. Wir können WordPress leicht komplett sterben lassen. Aber wir können auch von so ziemlich überall in WordPress auf alles zugreifen, was in wp-config.php definiert ist.

Leg dich nicht mit wp-config.php an!

Das Letzte, was wir aus diesem Prozess lernen, ist, dass mit dieser großen Macht große Verantwortung einhergeht.

Am Ende der Datei wp-config.php befinden sich diese Zeilen:

 /* Add any custom values between this line and the "stop editing" line. */ /* That's all, stop editing! Happy publishing. */ /** Absolute path to the WordPress directory. */ if ( ! defined( 'ABSPATH' ) ) { define( 'ABSPATH', __DIR__ . '/' ); } /** Sets up WordPress vars and included files. */ require_once ABSPATH . 'wp-settings.php';

Hier gibt es einige Anweisungen, aber die Zeile „Bearbeitung beenden“ ist wichtig. Nach dieser Zeile folgt die Fortsetzung der Initialisierungssequenz von WordPress. Das Hinzufügen von neuem Code an der falschen Stelle führt wahrscheinlich nur dazu, dass der neue Code keinerlei Wirkung hat. Aber um sicherzugehen, empfehle ich, diese Anweisungen zu befolgen. Sie sind aus gutem Grund da.

Überprüfen/Fusseln Ihrer wp-config.php-Datei

Wenn Sie in der Produktion arbeiten, möchten Sie wirklich keine Fehler in die Datei wp-config.php . Fehler hier können Ihre Website beschädigen, und Sie erhalten möglicherweise keine nützliche Fehlermeldung, wenn dies der Fall ist.

Du kannst php auf der Kommandozeile mit der Option -l („lint“) ausführen, um deine wp-config.php Datei auf schwerwiegende PHP-Syntaxfehler zu überprüfen.

$ php -l wp-config.php

Analysefehler: Syntaxfehler, unerwartetes Token „require_once“ in wp-config.php in Zeile 9

Fehler beim Parsen von wp-config.php

Sie könnten sogar ein Shell-Skript schreiben, um …

  1. wp-config.php in eine temporäre Datei kopieren,
  2. Bearbeiten Sie die temporäre Datei,
  3. Lint die temporäre Datei und
  4. Kopieren Sie es nur zurück, wenn es keine Syntaxfehler enthält.

Wenn Sie mit der Befehlszeile zufrieden sind, ist es sicherer, die WP-CLI-Befehle wie wp config set <name> <value> zu verwenden, um Werte sicher festzulegen, anstatt dies manuell zu tun.

Sie können Ihre Konfigurationswerte auch mit WP-CLI auflisten (dies ist ein Beispiel, bei dem einige Einträge entfernt wurden – Sie verstehen schon!):

$ wp Konfigurationsliste
+---------------------+---------------------- --------------------+----------+
| Name | Wert | Typ |
+---------------------+---------------------- --------------------+----------+
| root_dir | /Users/smithers/sites/snpp | variabel |
| webroot_dir | /Users/smithers/sites/snpp/public | variabel |
| Tabellenpräfix | wp_ | variabel |
| WP_HOME | https://snpp.test | konstant |
| WP_SITEURL | https://snpp.test/ | konstant |
| DB_NAME | snp | konstant |
| DB_USER | Wurzel | konstant |
| DB_PASSWORT | Montgomery | konstant |
| DB_HOST | 127.0.0.1 | konstant |
| DB_CHARSET | utf8mb4 | konstant |
| DB_COLLATE | | konstant |
| DB_PRÄFIX | wp_ | konstant |
| WP_DEBUG | 1 | konstant |
| WP_DEBUG_LOG | 1 | konstant |
| WP_DEBUG_DISPLAY | | konstant |
| WP_ENVIRONMENT_TYPE | Entwicklung | konstant |
| DISABLE_WP_CRON | | konstant |
| DISALLOW_FILE_EDIT | 1 | konstant |
+---------------------+---------------------- --------------------+----------+

Diese beiden Techniken könnten Ihnen wirklich Ärger ersparen und Sie davon abhalten, auszuflippen, weil Sie in einer so kritischen Datei versehentlich ein Semikolon an die falsche Stelle gesetzt haben.

Sichern von WordPress mit wp-config.php

Sicherheit ist ein ständig heißes Thema in WordPress. Einige Einstellungen, die wir in der wp-config Datei ändern können, bringen mehr Tools in unsere Sicherheits-Toolbox.

Diese Teile der wp-config Datei sind definitiv nicht die einzigen Dinge, die Sie verwenden sollten, um eine gute WordPress-Sicherheit zu erreichen. Stellen Sie sicher, dass Sie die Website-Sicherheit zusätzlich zu den Informationen im folgenden Abschnitt gründlich verstehen.

wp-config.php vor Website-Besuchern schützen

Ihre wp-config Datei befindet sich standardmäßig im Stammverzeichnis Ihrer Website und enthält zufällig wichtige Informationen wie Ihre Datenbank-Anmeldedaten und Passwort-Salts. Sie möchten nicht, dass diese Informationen öffentlich zugänglich sind, daher sollten Sie sicherstellen, dass Ihre wp-config Datei vor Website-Besuchern geschützt ist.

Ihr Hosting-Unternehmen wird dies oft für Sie tun. Sie können dies überprüfen, indem Sie versuchen, über Ihren Browser auf die Datei zuzugreifen, indem /wp-config.php direkt nach Ihrer Domain hinzufügen. Diese URL kann anders sein, wenn Sie die Datei verschoben haben.

Wenn Sie die wp-config Datei im Verzeichnis über dem Stammverzeichnis Ihrer Website abgelegt haben, sollten Sie sie nicht sehen können. In den meisten anderen Fällen erhalten Sie sowieso nur eine PHP-Fehlermeldung, wenn Sie versuchen, die Datei aufzurufen, sodass hier normalerweise nichts zu tun ist. Aber wenn Sie es richtig sichern möchten, können Sie dies tun, indem Sie die Konfiguration Ihres Webservers (Apache oder Nginx) ändern, um den Zugriff darauf zu blockieren.

Wenn Sie die Datei Ihrer Website in Git speichern, ist es schließlich wichtig, die wp-config Datei nicht in Ihrem Git-Repository zu speichern. Dadurch könnten wichtige Informationen über Ihre Website preisgegeben werden, aber außerdem möchten Sie wahrscheinlich sowieso in jeder Umgebung eine andere Version dieser Datei. Daher ist es besser, es zu Ihrer .gitignore -Datei hinzuzufügen und die Dateien in jeder Umgebung manuell zu verwalten.

Rotierende Schlüssel/Salze

Was sind Schlüssel/Salze?

Der Abschnitt „Schlüssel und Salze“ ist einer der mysteriösesten Teile von wp-config . Dieser Satz seltsam aussehender Konstanten hilft bei der Verschlüsselung von Dingen wie Cookies und Nonces. Ohne auf die Details einzugehen – wie es WP Engine getan hat – fügen sie eine zusätzliche Ebene der Zufälligkeit hinzu, die die Entschlüsselung erschwert, wenn Sie die Salze und Schlüssel nicht kennen.

Warum Schlüssel/Salze „rotieren“?

Zunächst einmal ist „rotieren“ nur ein schickes Wort für „verändern“. Ich weiß nicht, warum wir „drehen“ verwenden. Es ist nicht so, dass wir jemals wieder auf denselben Schlüsselsatz zurückkommen!

Sie sollten wahrscheinlich Ihre Schlüssel und Salze ändern, wenn die Seite gehackt wurde, da Sie nicht garantieren können, dass die Schlüssel und Salze noch geheim sind. Aber vielleicht möchten Sie sie trotzdem regelmäßig rotieren lassen, wie bei Passwörtern, nur um sicherzugehen, dass niemand weiß, was sie sind.

Das Problem mit rotierenden Schlüsseln/Salzen

Das Wechseln von Schlüsseln und Salzen ist nicht ohne Schmerzen. Jeder, der ein Cookie-Set hat, wird es verlieren. Jeder, der eingeloggt ist, wird also gebootet, und jeder mit einem WooCommerce-Warenkorb wird geleert.

Wie man Schlüssel/Salze rotiert

Ich meine, du könntest die wp-config Datei bearbeiten und einfach ein paar neue zufällige Zeichen über die alten schreiben. Aber das wäre mühsam und Menschen sind nicht sehr gut im Zufälligen.

Lassen Sie mich Ihnen also einige Möglichkeiten erläutern, wie Sie neue Schlüssel/Salze in Ihrer wp-config festlegen können.

  1. Schlüssel manuell von einem Generator hinzufügen: Sie können den Generator von wordpress.org verwenden, um den benötigten Code zu erhalten. Kopieren Sie es einfach und fügen Sie es anstelle der alten Werte in die wp-config Datei ein.
  2. Verwenden Sie ein Plugin: Viele Sicherheits-Plugins wie Sucuri Security, iThemes Security und Malcare verfügen alle über diese Funktion. Und Salt Shaker ist ein dediziertes Plugin, das diesen Prozess nach einem Zeitplan für Sie automatisiert.
  3. Verwenden Sie WP-CLI. Haben wir schon gesagt, wie großartig WP-CLI ist? Wir machten? OK. Nun, wir sagen es noch einmal! Und Sie können den Befehl wp config shuffle-salts verwenden, um diese Aufgabe in Sekundenschnelle zu erledigen.

Dinge bewegen und verstecken

Sicherheitsleute werden Ihnen sagen, dass „Security by Obscurity“ überhaupt keine Sicherheit ist, aber einige Leute verstecken immer noch gerne ihre WordPress-Sachen, um den Hackern zusätzliche Barrieren zu errichten.

Die wp-config Datei bietet Ihnen eine Reihe von Optionen dafür, und wir werden diese in späteren Abschnitten über das Verschieben von Dingen und das Deaktivieren der Dateibearbeitung behandeln.

Deaktivieren der Datei-Editoren

WordPress hat eine praktische Funktion, mit der Sie Dateien in Designs und Plugins vom Admin-Dashboard aus bearbeiten können. Durch Bearbeiten wp-config.php können Sie diese Datei-Editoren deaktivieren! Einige Leute deaktivieren sie gerne, um sich zu beruhigen.

Jetzt weiß ich, dass es ein Sicherheitsargument gibt, dass jemand, der Administratorzugriff auf Ihre Website hat – was für die Verwendung dieser Editoren erforderlich ist – ein Plugin hochladen und trotzdem tun kann, was er möchte. Die Aktivierung dieser Editoren bietet Hackern nicht mehr Macht, als sie bereits haben.

Obwohl die Sicherheit durch das Deaktivieren möglicherweise nicht wirklich verbessert wird, besteht der wahre Grund dafür darin, Personen, die tatsächlich als Administratoren autorisiert sind, daran zu hindern, sie zu verwenden. Wenn Sie eine Agentur sind, möchten Sie wahrscheinlich nicht, dass Ihre Kunden feststellen, dass sie alle ihre Themendateien bearbeiten können, oder?

Viele Hosts deaktivieren diese Funktion standardmäßig. Aber wenn Sie sie verschwinden lassen möchten, ist es so einfach wie das Hinzufügen von:

 define( 'DISALLOW_FILE_EDIT', true );

Oder wenn Sie Ihr Dateisystem wirklich sperren möchten, gibt es DISALLOW_FILE_MODS , das wir im nächsten Abschnitt behandeln werden.

Automatische Updates deaktivieren

Ob Sie sie lieben oder hassen, die automatischen Updates von WordPress haben einen positiven Einfluss auf das WordPress-Ökosystem und sind schwer zu ignorieren. Aber nicht jeder möchte, dass sich seine Software um sich selbst kümmert!

wp-config gibt Ihnen also die Kontrolle über den automatischen Aktualisierungsprozess mit einem einfachen Satz selbsterklärender Konstanten, die Sie festlegen können:

 # Disable all core updates: define( 'WP_AUTO_UPDATE_CORE', false ); # Enable all core updates, including minor and major: define( 'WP_AUTO_UPDATE_CORE', true ); # Enable core updates for minor releases (default): define( 'WP_AUTO_UPDATE_CORE', 'minor' );

Wenn Sie etwas Extremeres wollen, können Sie DISALLOW_FILE_MODS :

 define( 'DISALLOW_FILE_MODS', true );

Dies verhindert jedoch, dass WordPress irgendetwas im Zusammenhang mit Kern, Themen, Plugins oder Übersetzungen auf die Festplatte schreibt, und es deaktiviert E-Mail-Benachrichtigungen über kleinere Updates. Es wurde von einem Kernbeitragenden als „verrückt dumm zu verwenden, es sei denn, Sie wissen genau, was Sie tun“ beschrieben.

Etwas weniger extrem ist AUTOMATIC_UPDATER_DISABLED . Auf diese Weise können Sie Plugins und Designs installieren, sie oder die Kernsoftware jedoch nicht aktualisieren. Es deaktiviert jedoch auch Übersetzungsaktualisierungen.

 define( 'AUTOMATIC_UPDATER_DISABLED', true );

Es gibt eine detaillierte Anleitung zu all dem auf wordpress.org, einschließlich einiger anderer Optionen wie der Verwendung von Filtern für eine feinkörnigere Kontrolle.

Abschließend stelle ich fest, dass, wenn Ihre Website versioniert ist, es wahrscheinlich ist, dass WordPress Updates für Sie sowieso deaktiviert hat. Beispielsweise deaktiviert das Vorhandensein eines .git -Verzeichnisses im Stammverzeichnis der Website (oder verschiedener anderer Dateien an verschiedenen Orten) automatische Updates, ohne dass Sie etwas zu wp-config hinzufügen müssen.

HTTPS konfigurieren

Früher war die Konfiguration von HTTPS oft eine Herausforderung. Mit dem Aufkommen kostenloser, vertrauenswürdiger Sicherheitszertifikate von Orten wie LetsEncrypt und Cloudflare richten viele Hosts dies mit ein paar Klicks für Sie ein. Diese Einstellung sollte wahrscheinlich als veraltet angesehen werden, aber vielleicht brauchen Sie sie noch für etwas.

Die Konstante FORCE_SSL_ADMIN weist WordPress an, immer SSL für die Anmeldeseiten und das WordPress-Dashboard zu verwenden. Dadurch wird sichergestellt, dass sichere Anmeldeinformationen und Cookies nicht unverschlüsselt gesendet werden können.

Aber wie ich schon sagte, ein gutes Hosting-Unternehmen wird die Einrichtung von HTTPS auf Ihrer Website sowieso einfach machen, also tun Sie es einfach.

Verhindern von externen HTTP-Anforderungen

Schließlich können Sie zur Sicherheit externe HTTP-Anforderungen blockieren. Das bedeutet, dass WordPress keine anderen Orte im Internet kontaktieren kann, um beispielsweise API-Aufrufe durchzuführen oder Updates herunterzuladen.

WordPress zu erlauben, externe Dienste über HTTP zu kontaktieren, ist im Allgemeinen eine gute Idee, da Sie damit Updates erhalten, Plugins und Designs installieren können und viele Plugins kaputt gehen, wenn Sie HTTP-Anfragen deaktivieren.

Aber der WordPress-Kern und viele Plugins und Themes senden „Telemetrie“ oder „Nutzungsdaten“ zurück an zentrale Server. Das kann gut sein – es hilft Plugin- und Theme-Entwicklern zu wissen, wer ihre Software wie verwendet. Wenn Sie jedoch eine Website mit besonders sensiblen Daten haben, möchten Sie dies möglicherweise deaktivieren. Und das können Sie tun mit:

 define( 'WP_HTTP_BLOCK_EXTERNAL', true );

Wenn Sie eine Zulassungsliste von Hosts haben möchten, die kontaktiert werden können, können Sie dies auch tun:

 define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.github.com' );

Beachten Sie, dass die Liste der zugänglichen Hosts eine durch Kommas getrennte Liste ist und Platzhalter-Subdomains zulässig sind. Und Sie können überwachen, welche Hosts mit dem Plugin Log HTTP Requests kontaktiert werden.

Sachen bewegen

Nicht jede WordPress-Installation ist gleich. Einige Hosts oder Frameworks verschieben gerne Verzeichnisse aus Sicherheitsgründen oder um seitenspezifischen Code und Assets vom WordPress-Kern getrennt zu halten. Mein Artikel über die Verwendung von Git und Composer zur Verwaltung von WordPress behandelt einige Vorteile dieses Ansatzes.

Welche Optionen bietet Ihnen WordPress also für – in Ermangelung eines besseren Begriffs – „Zeugs bewegen“?

Ändern des Datenbankpräfixes

WordPress verwendet standardmäßig das Präfix des Datenbanktabellennamens wp_ . Dieses Präfix wird allen Datenbanktabellennamen hinzugefügt und wird auch an einigen anderen Stellen verwendet, beispielsweise in der Option <prefix>user_roles in der Optionstabelle und in den Benutzermetaeinträgen <prefix>capabilities .

Hacker oder Angreifer können das Standardpräfix bei einem Angriff verwenden und versuchen, Ihre Datenbanktabellen zu entdecken oder zu ändern. Einige Leute empfehlen daher, die Standardeinstellung zu ändern.

Mit der wp_config Option $table_prefix können Sie dies tun, und Sie sollten sie wahrscheinlich auf eine kurze, aber zufällige Zeichenfolge setzen, die mit einem Unterstrich versehen ist:

 $table_prefix = 'b4F8az_';

Dadurch wird WordPress angewiesen, Tabellennamen wie b4F8az_posts anstelle von wp_posts zu verwenden.

Sie sollten keinen Code aktualisieren müssen, um dieser Änderung Rechnung zu tragen (es sei denn, dieser Code ist sehr schlecht geschrieben), aber wenn Sie dies auf einer bestehenden Site ändern, müssen Sie einige Aktualisierungen an Ihrer Datenbank vornehmen – und nicht nur umbenennen die Tische!

Einige Sicherheits-Plugins erledigen dies für Sie und es gibt ein Plugin, das dies auch kann. Wir empfehlen dringend, vorher eine Sicherungskopie Ihrer Datenbank zu erstellen, und beachten Sie, dass die Auswahl eines nicht standardmäßigen Tabellenpräfixes am besten bei der Installation von WordPress erfolgt, nicht wenn Sie es ändern, während Ihre Website in Bearbeitung ist.

Eine merkwürdige Anmerkung dazu ist, dass $table_prefix eine Variable und keine Konstante ist. Es ist die einzige Variable, die in der Beispiel-Konfigurationsdatei definiert ist, die WordPress Ihnen gibt! Und wenn Sie immer noch neugierig sind: Ja, die wp config -Befehle von WP-CLI erledigen das für Sie, ohne dass Sie es überhaupt wissen müssen!

Verschieben der Benutzer- und Usermeta-Tabellen

Ich habe das noch nie gesehen, und ich habe erst beim Schreiben dieses Artikels erfahren, dass es möglich ist, aber Sie können auch die Namen der Benutzer- und Benutzermeta-Tabellen vollständig ändern.

Ich denke, dies hilft, einen SQL-Injection-Angriff zu verhindern, der versucht, „SELECT * FROM wp_usermeta;“ auszuführen, aber ich freue mich, andere Gründe dafür zu hören.

In jedem Fall benötigen Sie die Konstanten CUSTOM_USER_TABLE und CUSTOM_USER_META_TABLE :

 define( 'CUSTOM_USER_TABLE', $table_prefix.'my_users' ); define( 'CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta' );

Es gibt einige Vorsichtsmaßnahmen, die Sie kennen sollten, bevor Sie diese Konstanten verwenden. Überprüfen Sie die offiziellen Dokumente, bevor Sie diese Funktion verwenden. Und wie bei der Verwendung eines benutzerdefinierten Tabellenpräfixes ist dies definitiv am besten bei der Installation einer neuen Website zu tun, anstatt sie später zu ändern.

Verschieben Sie Inhalts-, Upload- und Plugin-Verzeichnisse

Es ist auch möglich, das gesamte wp-content Verzeichnis, das uploads -Verzeichnis und die themes und plugins -in-Verzeichnisse zu verschieben. Dinge zu beachten:

  • In einigen dieser Fälle müssen Sie sowohl die URL als auch das Verzeichnis festlegen.
  • Sie müssen darauf achten, je nach Bedarf vollständige Pfade oder relative Pfade zu verwenden.
  • Keine dieser Einstellungen sollte einen abschließenden Schrägstrich haben.

Konsultieren Sie die offizielle Dokumentation für Details – ich werde das hier nicht alles wiederholen.

Beachten Sie schließlich, dass ein schlecht codiertes Plugin oder Design durcheinander geraten kann, wenn Sie diese ändern. Dies sollte niemals passieren, aber es lohnt sich, darüber Bescheid zu wissen.

Wenn Sie ein Plugin- oder Theme-Entwickler sind, ist es wichtig, daran zu denken, dass sich diese Pfade ändern können. Achten Sie also darauf, Pfade zu Verzeichnissen oder URLs nicht hart zu codieren. Nützliche Funktionen für Sie sind hier:

wp_upload_dir
plugins_url
plugin_dir_url
plugin_dir_path
get_stylesheet_directory
get_stylesheet_directory_uri
get_template_directory – Beachten Sie, dass dies für ein untergeordnetes Design den Speicherort des übergeordneten Designs zurückgibt
get_template_directory_uri

Eine ausführlichere Liste solcher Funktionen finden Sie im Handbuch für WordPress-Entwickler.

Schließlich möchten Sie nicht nur Dateien innerhalb Ihrer WordPress-Installation verschieben, sondern auch Ihren wp-admin-Speicherort verschieben oder den Speicherort Ihrer Website ändern. Und wp-config.php kann auch dabei helfen.

Inhaltsbezogene Einstellungen

WordPress ist schließlich ein Content-Management-System. Sie würden also einige der Konstanten erwarten, die Sie in wp-config.php verwenden können, um Inhaltsoptionen zu steuern. Lassen Sie uns einen Blick darauf werfen und sehen, was wir tun können.

Website- und Dashboard-URLs ändern

Diese haben mich immer verwirrt.

Um die URL Ihrer Website festzulegen, müssen Sie die Konstante WP_HOME verwenden, nicht die Konstante WP_SITEURL .

Die Konstante WP_SITEURL ändert die URL Ihrer Website nicht.

Verwirrt?

Die offizielle Beschreibung dessen, was WP_SITEURL tut, ist „die Adresse, an der sich Ihre WordPress-Kerndateien befinden“. Dies ist auch verwirrend, da es sich um eine URL und nicht um ein Verzeichnis handelt.

Machen Sie mir dafür keine Vorwürfe, ich bin nur Ihr Reiseleiter für den Tag!

Das Festlegen WP_HOME und WP_SITEURL überschreibt die home und siteurl -Einträge in der Datenbanktabelle wp_options . Also macht das zumindest Sinn.

 // NOTE: These must not have trailing slashes define( 'WP_HOME', 'https://helfish.media' ); define( 'WP_SITEURL', 'https://hellfish.media/wordpress` );

Sie können diese Konstanten verwenden, nachdem Sie eine Website auf eine neue URL verschoben haben, um die Website zum Laufen zu bringen, während Sie die Datenbank ordnungsgemäß reparieren. Sie können sich sogar dafür entscheiden, sie danach an Ort und Stelle zu lassen.

Die WP_SITEURL Einstellung kann auch verwendet werden, wenn Sie Ihre Kern-WordPress-Dateien in ein anderes Verzeichnis verschoben haben.

Die Verwendung dieser verhindert auch, dass ein oder zwei Datenbankabfragen ausgeführt werden, um die Werte aus der Optionstabelle abzurufen, sodass dies zu einem geringfügigen Leistungsgewinn führen kann. Wenn Sie jedoch Objekt-Caching durchführen, ist dieser Gewinn wahrscheinlich vernachlässigbar.

Es gibt einige weitere Details in den offiziellen Dokumenten und sogar einen vollständigen Support-Artikel zum Ändern der Website-URL. Außerdem enthält dieser Artikel die obskure RELOCATE -Konstante für wp-config.php , von der ich vor der Recherche zu diesem Artikel noch nie gehört hatte.

Beachten Sie schließlich beim Verschieben von Websites, dass dies nicht die einzige Sache ist, die Sie ändern müssen. Ein vollständiges Suchen und Ersetzen in der Datenbank für die URL-Zeichenfolgen wird empfohlen.

Beitragseinstellungen

Es gibt ein paar verschiedene Einstellungen, die Sie ändern können, wenn es um Beiträge geht. Die meisten davon befassen sich entweder mit Post-Revisionen oder der Funktion zum automatischen Speichern.

Post-Revisionen

Das Standardverhalten von WordPress besteht darin, alle an Beiträgen und Seiten vorgenommenen Änderungen zu speichern. Dies hat den Vorteil, dass es einfach ist, zu früheren Versionen zurückzukehren. Die Nachteile bestehen darin, dass all diese Revisionen Speicherplatz in der Datenbank beanspruchen und die Leistung der Site beeinträchtigen können, indem sie Datenbankabfragen verlangsamen.

Es ist möglich, Post-Revisionen vollständig zu deaktivieren, indem du den Wert WP_POST_REVISIONS in deiner wp-config.php Datei änderst. Es ist standardmäßig wahr. Um Revisionen zu deaktivieren, können Sie sie stattdessen auf false setzen:

 define( 'WP_POST_REVISIONS', false );:

Einige Hosts, einschließlich WP Engine, deaktivieren Post-Revisionen standardmäßig. Ich empfehle, sich bei Ihrem Hosting-Provider zu erkundigen, bevor Sie Änderungen vornehmen. Dies ist von Host zu Host unterschiedlich, aber wenn Sie mit WP Engine arbeiten, können Sie Revisionen nicht über wp-config aktivieren, da diese auf Serverebene überschrieben werden.

Wenn Ihr Host dies kontrolliert und Sie versuchen, es zu ändern, werden Sie nicht unbedingt etwas kaputt machen, aber Sie könnten Ihre Zeit verschwenden.

Wenn Sie besorgt sind , dass Post-Revisionen Datenbankabfragen verlangsamen, könnte es eine bessere Option sein, die Anzahl der Revisionen zu begrenzen, die WordPress speichert. Dies wird durch die Konstante WP_POST_REVISIONS gesteuert, die Sie auf die maximale Anzahl von Revisionen setzen können, die Sie behalten möchten:

 define( 'WP_POST_REVISIONS', 5 );

Ändern des Autosave-Intervalls

Sie können auch verringern, wie oft die automatische Speicherung ausgelöst wird. Dies ist standardmäßig alle 60 Sekunden, aber Sie können es nach Belieben ändern. Wenn Sie paranoid sind, sollten Sie dies stattdessen auf 20 oder 30 Sekunden einstellen.

Es ist wichtig zu bedenken, wie lange eine automatische Speicherung dauert. Sie möchten nicht, dass sie sich überlappen, indem Sie sie zu häufig machen, setzen Sie diesen Wert also nicht auf beispielsweise eine Sekunde. Es ist nicht sehr wahrscheinlich, dass das automatische Speichern länger als die Standardeinstellung von 60 Sekunden dauert, aber Sie können das Intervall erhöhen, wenn Sie Anfragen speichern möchten:

 define( 'AUTOSAVE_INTERVAL', 120 ); // Seconds

Einpacken

In wp-config viel Potenzial, das nur darauf wartet, freigeschaltet zu werden. Ich hoffe, diese Tour hat dazu beigetragen, nur einige der Möglichkeiten hervorzuheben. In einem zukünftigen Artikel werde ich mich mit weiteren erweiterten Funktionen von wp-config , einschließlich Multisite-Installationen und Debugging. Ich werde mich auch mit der Leistung befassen, einschließlich der Anpassung von Speichergrenzen, CRON-Problemen und Umgebungstypen.

Zweifellos schlummern in der offiziellen Dokumentation noch weitere Schätze, die darauf warten, entdeckt zu werden. Welche Tipps haben Sie für die Verwendung von wp-config gefunden? Lass es mich in den Kommentaren wissen.