Die WordPress-Konfigurationsdatei, auch bekannt als wp-config.php, wird am häufigsten zum Einrichten einer Datenbankverbindung verwendet und dann vergessen. Dabei können Sie in dieser Datei eine Vielzahl von nützlichen Einstellungen vornehmen, um Ihre WordPress-Installation zu sichern, zu beschleunigen und allgemein zu optimieren. Wir haben die wichtigsten Einstellungen in Form von Code-Snippets für die wp-config.php für Sie in diesem Beitrag zusammengetragen.
Inhalt
Worum geht es?
Obwohl Sie die Konfigurationsdatei normalerweise nicht häufig verwenden, sind wir sicher, dass fast jede WordPress-Installation davon profitieren könnte, dieser Datei ein paar Zeilen Code hinzuzufügen. Eine gut durchdachte Konfigurationsdatei kann nicht nur eine Website schneller und sicherer machen, sondern auch Funktionen wie die Möglichkeit, den Papierkorb häufiger zu leeren oder die Revisionen zu deaktivieren und erweiterte Debugging-Funktionen zu bieten.
In diesem Artikel sehen wir uns die Standardeinstellungen an, die mit Ihrer Konfigurationsdatei geliefert werden und wie Sie sie mit einfachen Code-Snippets optimieren können, um den Anforderungen Ihrer WordPress-Website besser zu entsprechen.
HINWEIS: Legen Sie unbedingt zunächst eine Kopie der Datei wp-config.php an. Und: Sie müssen alle Konfigurationen VOR /* Das war’s, Schluss mit dem Bearbeiten! Viel Spaß. */ bzw. /* That’s all, stop editing! Happy publishing. */ einfügen!
Was ist die Datei wp-config.php?
Laut dem WordPress-Codex ist die Konfigurationsdatei eine der wichtigsten Dateien in Ihrer WordPress-Installation. Die Datei befindet sich in Ihrem WordPress-Stammverzeichnis und enthält wichtige Informationen wie Datenbankverbindungsdaten (Benutzername, Passwort usw.) und verschiedene Einstellungen.
wp-config.php ist eigentlich kein Teil der Dateien, die mit WordPress ausgeliefert werden. Wenn Sie die WordPress-Software herunterladen, finden Sie diese Datei nirgendwo. Stattdessen finden Sie wp-config-sample.php. Die Grundeinstellungen sind in der Datei selbst sehr gut dokumentiert. In der Regel wird die wp-config.php während der Installation von WordPress automatisch erstellt und im Hauptverzeichnis der WordPress-Installation abgelegt.
Wichtig zu beachten: Aus Sicherheitsgründen kann die wp-config.php auch in ein Verzeichnis oberhalb des Installationsverzeichnisses verschoben werden!
WordPress-URLs definieren
Zwar können Sie direkt im Backend von WordPress unter Einstellungen > Allgemein die WordPress-URLs bestimmen, wenn Sie aber sicher gehen wollen, dass die Einstellungen nicht aus Versehen geändert oder gelöscht werden, dann tragen Sie sie am besten direkt in die wp-config.php ein. Dieser Eintrag ist dann im Backend nicht anpassbar. Er muss auch den Bestandteil https:// enthalten. Fügen Sie keinen Schrägstrich „/“ am Ende ein.
Mit WP_SITEURL kann die WordPress-Adresse (URL) definiert werden. Der definierte Wert ist die Adresse, unter der sich Ihre WordPress-Kerndateien befinden.
define('WP_SITEURL','https://ihredomain.de'); //Website-Adresse (Startseite)
Ähnlich wie WP_SITEURL setzt WP_HOME den Wert in der Tabelle wp_options für home außer Kraft, ändert ihn aber nicht in der Datenbank. home ist die Adresse, die Besucher in ihren Browser eingeben, um Ihren WordPress-Website zu erreichen. Wenn Sie diesen Eintrag hinzufügen, kann die Anzahl der Datenbankaufrufe beim Laden Ihrer Website verringert werden.
define('WP_HOME','https://ihredomain.de'); //WordPress-Adresse (Backend)
Die Werte können auch dynamisch auf Basis der Server-Einstellungen gesetzt werden. Nutzen Sie einen Apache-Server und ist die Konfiguration … , dann empfielht sich:
define( 'WP_SITEURL', 'http://' . $_SERVER['SERVER_NAME'] ); define( 'WP_HOME', 'http://' . $_SERVER['SERVER_NAME']);
Sollte das nicht klappen, können Sie auch HTTP_HOST probieren. HTTP_HOST wird von PHP dynamisch auf der Grundlage des Wertes des HTTP-HOST-Headers erstellt, so dass möglicherweise Sicherheitslücken bei der Einbindung von Dateien entstehen können.
define( 'WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']); define( 'WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
Datenbank klein halten
WordPress bietet in seiner Grundeinstellung viele Sicherungen bei der Erstellung Ihrer Inhalte. So kann man bei Fehlern recht komfortabel vorherige Versionen von Seiten und Beiträgen wieder aktivieren. Beim Aufbau einer Website bzw. bei der regelmäßigen Pflege wächst die Größe der Datenbank recht schnell an. Wenn Sie das unterbinden möchten, empfehlen sich die folgenden Programmzeilen:
define('WP_POST_REVISIONS', 5); //Anzahl maximal gespeicherter Revisionen
define('WP_POST_REVISIONS', false); //Keine Revisionen werden gespeichert
define('AUTOSAVE_INTERVAL', 30); //Alle 30 Sekunden wird automatisch gespeichert (Standard 60)
Auch im „Papierkorb“ sammelt sich schnell viel virtueller Datenmüll. Für das automatische löschen, bzw. die Deaktivierung des Papierkorbs gib es den folgenden Code:
define('EMPTY_TRASH_DAYS', 60); //Alle 60 Tage wir der Papierkorb geleert
define('EMPTY_TRASH_DAYS', 0); //Der Papierkorb wird sofort geleert
Geschwindigkeit erhöhen und WordPress schlank halten
Auch für die Verkürzung der Ladezeit Ihrer Website hat WordPress Einstellungsmöglichkeiten vorgesehen. WordPress hat zum Beispiel ein integriertes Caching-System, das sich in wp-content/advanced-cache.php befindet. Es kann mit der WP_CACHE-Konstante aktiviert werden:
define('WP_CACHE', true); //Den internen Cache von WordPress aktivieren
Sie können einen Schritt weitergehen und ohne entsprechendes Caching-Plug-in CSS und JavaScript komprimieren und/oder minimieren, sowie GZIP – sofern vorhanden – auf dem Server erzwingen. Sie müssen aber unbedingt Ihre Website auf Darstellungsfehler testen, wenn Sie von diesen Einstellungen Gebrauch machen möchten.
define( 'COMPRESS_CSS', true ); define( 'COMPRESS_SCRIPTS', true ); define( 'CONCATENATE_SCRIPTS', true ); define( 'ENFORCE_GZIP', true )
WordPress benötigt für den Betrieb ein Minimum von 32 MB Arbeitsspeicher. Einige Plug-ins und Themes benötigen eventuell zusätzlichen Kapazitäten, als WordPress standardmäßig zugeteilt wird. So sollten je nach verwendeten Plug-ins und Themes Ihrer Website eher 64 MB, 128 MB oder sogar 256 MB Arbeitsspeicher zur Verfügung stehen. Mit Hilfe des Plug-ins Server-IP & Memory Limit erhalten Sie als Administrator am unteren Rand im Dashboard darüber Auskunft, wie viel Arbeitsspeicher Ihrer Website zur Verfügung steht und wie ausgelastet der Server ist.
Mit den folgenden Einträgen können Sie den Arbeitsspeicher erhöhen, bzw. begrenzen, falls das nötig ist. Beachten Sie, dass diese Einstellungen auf vielen Webservern nicht funktionieren, weil Sie vom Hoster vorgegeben sind.
define('WP_MEMORY_LIMIT', '96M'); //Hauptspeicher in MByte festlegen, der für WordPress zur Verfügung steht
define('WP_MAX_MEMORY_LIMIT', '256M'); //Hauptspeicher des Servers für WordPress begrenzen
Mit der folgenden Zeile können Sie die Datenbank von WordPress reparieren und auch die Inhalte optimieren (vorher unbedingt Backup anlegen!) . Dies kann notwendig werden, wenn die Website langsamer wird oder sich unerklärliche 404er-Fehler häufen. Nach dem Aktivieren des Codes können Sie http://ihredomain.de/wp-admin/maint/repair.php die Reparatur und/oder Optimierung durchführen.
Nach der Optimierung sollten Sie die Zeile aus Gründen der Sicherheit wieder aus der Konfigurationsdatei löschen!
define('WP_ALLOW_REPAIR', true); //Datenbank reparieren und optimieren
WordPress bietet ein paar Features, die den Inhalt automatisch verschönern sollen. Eine dieser Funktionen ist das Darstellen von Emojis durch Austausch von Zeichen wie ;-) durch entsprechender Bildchen. Diese Emojis müssen extern geladen werden und verlangsamen so die Ladezeit Ihrer Website. Benötigen Sie dieses Gimmick nicht empfiehlt sich die Funktion zu deaktivieren:
define( 'WP_EMOICONS', false );
Standardmäßig erstellt WordPress jedes Mal, wenn Sie ein Bild bearbeiten, einen neuen Satz von Bildern, und wenn Sie das Original wiederherstellen, werden alle Änderungen auf dem Server gespeichert. Der folgende Code ändert dieses Verhalten:
define( 'IMAGE_EDIT_OVERWRITE', true );
Arbeitsspeicher (Memory-Limit) erhöhen
Diese Codezeile definiert die maximalen Arbeitsspeicher des Webservers, der von WordPress verwendet werden kann. Die Zahl hinter WP_MEMORY_LIMIT steht für die maximale Speicherbegrenzung in Megabyte. In dem folgenden Beispiel ist sie auf 64 MB festgelegt.
Diese Funktion funktioniert leider nicht immer, weil sie stark von den Server-Einstellung abhängt, aber Sie können versuchen, mit dem folgenden Code, das Upload-Limit von WordPress zu erhöhen (Standard: 2 MB):
define('WP_MEMORY_LIMIT', '64M'); // Upload-Limit auf z.B. 8, 16, 32, 64, 128, 256 MB erhöhen
Upload-Datenformate freigeben
WordPress beschrängt aus Sicherheitsgründen das Hochladen von Dateien auf einige Dateiformate. Versuchen Sie ein unerlaubtes Format hochzuladen, erhalten Sie die Fehlermeldung „Dieser Dateityp ist aus Sicherheitsgründen leider nicht erlaubt.“
Auch die folgende Funktion kann durch die Server-Einstellung limitiert sein, aber Sie können versuchen, mit dem folgenden Code, sämtliche Datenformate freizugeben:
define('ALLOW_UNFILTERED_UPLOADS', true);
Sicherheit verbessern
Im Backend unter Design > Editor lässt sich der Programmcode verschiedenster Dateien direkt anpassen. Das kann bei mangelnder Expertise zu großen Problemen führen. Deswegen empfiehlt es sich diese Möglichkeit zu deaktivieren:
define('DISALLOW_FILE_EDIT', TRUE); // Das Editieren der Dateien unterbinden
Wollen Sie noch einen Schritt weitergehen, können Sie auch die Plug-in- und Theme-Installation sowie deren Updates deaktivieren. Wenn Sie diesen Eintrag setzen, wird auch der Plug-in- und Theme-Editor deaktiviert (d. h. Sie können sich DISALLOW_FILE_EDIT sparen).
define( 'DISALLOW_FILE_MODS', true );
Wenn Ihr Webhosting-Plan SSL unterstützt, sollten Sie diese Funktion auf jeden Fall verwenden, um Ihrer Site eine zusätzliche Sicherheitsebene hinzuzufügen und SSL-Logins zu erzwingen:
define('FORCE_SSL_LOGIN', true); // SSL-Login erzwingen
define('FORCE_SSL_ADMIN', true); // SSL-Admin erzwingen
Sie können das wp-content-Verzeichnis, das Ihre Themes, Plugins und Uploads enthält, außerhalb des WordPress-Anwendungsverzeichnisses verschieben. Das macht es für automatisierte Angriffe durch Bots schwieriger, eventuell vorhandene Sicherheitslücken auszubutzen.
Setzen Sie WP_CONTENT_DIR auf den vollständigen lokalen Pfad dieses Verzeichnisses (ohne nachgestellten Schrägstrich), z. B.
define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/blog/wp-content' );
Setzen Sie WP_CONTENT_URL auf die vollständige URL dieses Verzeichnisses (ohne abschließenden Schrägstrich), z. B.
define( 'WP_CONTENT_URL', 'http://example/blog/wp-content' );
Automatische Updates bestimmen
Die aktuellen Versionen von WordPress bieten automatische Updates.Wenn Ihnen das zu riskant ist – bei jedem Update kann schließlich etas schief gehen – können Sie mit folgenden Befehlen die Updates kontrollieren:
define('AUTOMATIC_UPDATER_DISABLED', true); //Automatische Updates generell abschalten
define( 'WP_AUTO_UPDATE_CORE', false ); //Deaktivieren Sie alle WordPress-Updates
define( 'WP_AUTO_UPDATE_CORE', true ); //Aktivieren Sie alle WordPress-Updates, einschließlich großer und kleiner Versionssprüngen
define( 'WP_AUTO_UPDATE_CORE', 'minor' ); //Das ist der Standard, es werden nur die Service-Updates automatisch durchgeführt
Fehlersuche
WordPress bietet einen internen Debug-Modus zum Auffinden von Fehlern. Mit den vollenden Programmzeilen werden Ihnen alle WordPress-Fehler angezeigt. Ändern Sie den Wert wieder auf false, ist der Debug-Modus wieder deaktiviert. Es reicht nicht die Zeile zu löschen, Sie müssen wirklich den Wert ändern.
define('WP_DEBUG', true); // Fehlersuche anschalten (false = aus)
Mit folgendem Befehl werden die WordPress-Fehler in eine Datei geschrieben. So kann man besser auf Fehlersuche gehen. Das ist besonders wichtig, wenn die Fehler nicht direkt auf der Website ersichtlich sind. Die Datei mit den Fehlermeldungen befindet sich im Verzeichnis /wp-content/ und hat den Namen debug.log. Die Datei wird aber nur angelegt, wenn Fehler auftreten.
define('WP_DEBUG_LOG', true); //Fehler in Log-Datei schreiben
Sie können Fehler aber auch direkt auf der Website anzeigen lassen. WordPress verwendet als Standard die Einstellung true. Ist die Website bereits im Betrieb, sollte man die Anzeige lieber abschalten und die Fehler besser in die Log-Datei schreiben. So werden die Besucher nicht gestört.
define('WP_DEBUG_DISPLAY', false); //Fehler werden auf der Website nicht angezeigt (true = an) @ini_set( 'display_errors', 0 ) //Fehler werden auf der Website nicht angezeigt (1 = an)
Wenn Sie WP_DEBUG aktivieren, werden alle PHP-Fehler und Hinweise und Warnungen zum Beispiel zu veralteten Funktionen angezeigt.
define( 'WP_DEBUG', true ); // PHP-Fehler werden angezeigt (false = aus)
Um Fehler in CSS oder JavaScript zu entdecken aktivieren Sie:
define( 'SCRIPT_DEBUG', true );
Mit WordPress 5.2 wurde der Wiederherstellungsmodus eingeführt, der eine Fehlermeldung anstelle eines weißen Bildschirms anzeigt, wenn ein Plug-in einen fatalen Fehler verursacht. Leider werden die PHP-Fehlermeldungen den Benutzern nicht mehr angezeigt. Wenn Sie WP_DEBUG oder WP_DEBUG_DISPLAY aktivieren wollen, müssen Sie den Wiederherstellungsmodus deaktivieren, indem Sie true auf WP_DISABLE_FATAL_ERROR_HANDLER setzen:
define( 'WP_DISABLE_FATAL_ERROR_HANDLER', true ); define( 'WP_DEBUG', true ); define( 'WP_DEBUG_DISPLAY', true );
Auf WordPress.org finden Sie den Artikel Debugging in WordPress, der sich mit weiteren Debug-Möglichkeiten befaßt. In einem interessanten Beitrag hat Bernhard Kau auf seinem Blog die Möglichkeit beschrieben, das Debug-Level geneuer zu justieren.
FTP-Zugang eintragen
Auf einigen Servern ist der FTP-Zugang so definiert, dass WordPress nicht Dateien per FTP laden kann und so zum Beispiel auch die automatischen Updates nicht funktionieren. In diesen Fällen können Sie mit Hilfe der folgenden Zeilen die nötigen Informationen direkt in die wp-config.php eintragen:
define('FTP_HOST', 'ftp.yoursite.com'); //Der FTP-Host
define('FTP_USER', 'Your_FTP_Username'); //FTP-Benutzername
define('FTP_PASS', 'Your_FTP_password'); //FTP-Passwort
Die meisten Hosting-Unternehmen bieten SSL für ihre Kunden an. Wenn Ihr Host dies tut, stellen Sie sicher, dass Sie SSL-FTP-Verbindungen für zusätzliche Sicherheit einschalten:
define(‚FTP_SSL‘, true); //SSL einschalten
Relative Links für Dateien und Medien (Uploads)
Laden Sie Dateien in WordPress hoch werden sie immer unter der vollständigen (absoluten) URL verlinkt (also inklusive http und Domain: „https://elbnetz.com/wp-content/uploads/2019/04/….„). Beim Umzug auf eine andere Domain müssen alle diese Links aktualisiert werden. Das kann mit folgendem Eintrag verhindert werden. WordPress setzt dann künftig nur noch relative Links („/wp-content/uploads/2019/04/….„):
define( 'WP_CONTENT_URL', '/wp-content');
Upload-Verzeichnis für Dateien und Medien ändern
Auch für das Anpassen des Upload-Verzeichnisses gibt es einen Eintrag. Im folgenden Beispiel werden die Medien künftig im Unterverzeichnis /wp-content/medien/2021/01/…. abgelegt:
define( 'UPLOADS', 'wp-content/medien' );
Hinweis: Wenn Sie bereits Dateien in der Medienbibliothek haben, müssen diese verschoben und alle Verweise auf den alten Uploads-Ordner in der Datenbank geändert werden, wenn alles konsistent sein soll.
CSS-Problem im WordPress-Backend beheben
Es kann immer mal wieder vorkommen, dass das Backend von WordPress „zerschossen“ wirkt, weil die CSS-Datei nicht geladen wird. Das kann unterschiedlichste Ursachen haben. Gerade nach dem Update auf PHP 8 haben wir dieses Problem bei einigen Websites gesehen. Die Inkompatibilitäten können auf veraltetete oder inkompatible Plug-ins oder Themes basieren. Manchmal haben aber auch die Updates nicht geholfen. Mit dem folgenden Befehl beheben Sie zwar nicht die Ursache, aber das Symptom des Problems:
define( 'CONCATENATE_SCRIPTS', false ); // Sicherstellen, dass CSS im Backend geladen wird
Damit die Wirkung sichergestellt ist, sollten Sie den Befehl möglichst am Anfang der wp-config.php eintragen.
Noch zwei Tricks für eine Multisite-Installation
Möchten Sie das Upload-Kontingent für jede Site in Ihrem Netzwerk festlegen bietet sich die folgende Code-Zeile.
Nachdem Sie den Code hinzugefügt haben, gehen Sie zu Netzwerkverwaltung > Websites, wählen Sie die gewünschte Website aus, wechseln ins Dashboard und wechseln im Menü über Einstellungen > Allgemein. Dort müssen Sie bis zum Ende der Seite scrollen, wo das Upload-Kontingentfeld angezeigt wird.
define('PSTS_QUOTA_ALLOW_OVERRIDE', true);
Gibt jemand eine Subdomain ein, die in Ihrem Netzwerk nicht existiert, dann leitet WordPress automatisch zu einer Seite zur Registrierung um. Erlauben Sie aber überhaupt keine Registrierung, dann können Sie mit dem folgenden Befehl zu einer URL Ihrer Wahl weiterleiten:
define( 'NOBLOGREDIRECT', 'https://ihredomain.de' ); //Zu einer beliebigen URL weiterleiten
Eventuell müssen Sie nun noch
remove_action('template_redirect', 'maybe_redirect_404' );
in die functions.php des Themes eintragen, damit 404-Fehler korrekt funktionieren und nicht zur Hauptdomain umgeleitet werden.
Zusammenfassung
Das sind die wichtigsten Ergänzungen für die wir im Netz gefunden haben. Diese Liste hat keinen Anspruch auf Vollständigkeit (eine vollständige Liste finden Sie hier). Wie Sie dem Beitrag entnehmen, ist die Datei wp-config.php sehr wichtig für Ihre WordPress-Website. Wählen Sie die Einstellungen also mit bedacht und legen unbedingt Sicherungskopien vor der Anpassung an. Es empfiehlt sich auch, die Datei vor Zugriffen zu schützen. Tragen Sie dazu in Ihre .htaccess den folgenden Code ein:
# protect wpconfig.php <files wp-config.php> Order deny,allow deny from all </files>
Übrigens: Für Fortgeschrittene User gibt es auch das Online-Tool wp-config.php Generator, mit dem Sie die wp-config.php online konfigurieren können. Gerne beraten wir Sie als WordPress Agentur auch persönlich.
4 Kommentare. Wir freuen uns über Ihren Kommentar
Klasse, vielen Dank das kompakt und übersichtlich lesen zu können !!! Das hat mir geholfen <3
Wow, genial! Sowas würde ich mir auch für WooCommerce wünschen :)
Hallo!
Vielen Dank für diese ausführliche Übersicht!
Viele Grüße
Karsten
Hey, ich hinterlasse sonst nie einen Kommentar und wenn, dann nur um meine Websites unterzubringen – was wenig Sinn macht, manchmal aber Traffic bringt – ich komme vom Thema ab… Hammer Artikel, vielen Dank! Habe ewig gesucht wie ich das dämliche „WP-LIMIT: 40 MB“ raus bekomme, wenn ja davor ganz klar „Arbeitsspeicher: 78.5 von 256 MB (31%)“ steht… oh mann habe ich lange gesucht… Versuch das mal herauszufinden, wenn du nicht weisst was da los ist :D dieser Unterschied von MAX und ohne MAX… ey … Wahrscheinlich habe ich das davor auch schon gesehen, aber nie auf das MAX geachtet und dachte mir, dass da alle das gleiche schreiben. Hier aber direkt untereinander mit ner Erklärung… Gute Inhalte, Ihr habt’s verdient damit zu ranken ;)