22 Tipps & Tricks: Die optimale wp-config.php

- Code für wp-config.php -

Im nachfolgenden Artikel erhältst du sehr viele Tipps & Tricks, mit denen du deine WordPress-Installation mit Hilfe der wp-config.php sowohl um Funktionen erweitern, als auch sicherer machen kannst.

Jetzt lesen

Die wp-config.php ist die wohl wichtigste Datei einer WordPress-Installation. Sie enthält die Zugänge zu deiner Datenbank und kann mitunter viele weitere Anweisungen beinhalten, wie dein WordPress unter der Haube agiert. Deshalb ist es von höchster Wichtigkeit, diese Datei vor äußeren Zugriffen zu schützen, sodass niemand Fremdes an sensible Daten gelangen kann.

Doch die wp-config.php kann weitaus mehr, als nur der Wegweiser zur Datenbank zu sein. In ihr kannst du sehr viele Einstellungen vornehmen, wie sich dein WordPress verhalten soll. So kannst du über sie z.B. das PHP Memory Limit auf deinem Server erhöhen, deine Post Revisionen reduzieren oder eine Multisite-Installation aufsetzen.

Wir haben für dich eine Liste mit den besten Tipps und Tricks zusammengestellt, wie du nicht nur diese wichtige Datei absichern kannst, sondern auch einige hilfreiche Features implementierst.

Vorbereitungen

Bevor wir loslegen, noch ein paar kleine Hinweise. Du solltest natürlich immer ein Backup deiner aktuellen wp-config.php machen, falls doch etwas nicht funktionieren sollte. Alle Codeschnipsel sind zwar von uns getestet worden und sind zum Teil bei einigen Kunden im Einsatz, aber dennoch: Keine Änderung ohne vorheriges Backup!

Zum anderen solltest du jeglichen Code vor Zeile 92 einfügen (vor dem Kommentar „Für Entwickler“). Außerdem beziehen sich alle in diesem Artikel befindlichen Zeilenangaben auf WordPress 4.7. Bei älteren Versionen kann es unter Umständen zu Abweichungen kommen.

Du brauchst natürlich auch einen HTML-Editor und einen FTP-Client, um auf deinen Server zugreifen zu können und die Datei zu bearbeiten.

Zu guter Letzt noch einmal der Hinweis, dass aktuelle Plugins und Themes die wohl höchste Sicherheit bieten. Achte daher stets darauf, eine neue Version schnellstmöglich zu installieren, da oftmals mit einem neuen Update auch Sicherheitslücken der alten Version öffentlich gemacht werden, die leicht von Hackern ausgenutzt werden können.

Background: Sicherheit via wp-config.php

In diesem Abschnitt erhältst du wertvolle Tipps, wie du mit Hilfe der wp-config.php die Sicherheit deiner WordPress-Webseite erhöhst.

Tipp 1: Sicherheitsschlüssel / Secret Keys verwenden

Der absolute Standard, der in keiner WordPress-Installation fehlen sollte. Die Secret Keys verschlüsseln die Informationen, die im Cookie abgelegt werden, so zum Beispiel das Passwort für den Login. Denn ein nicht verschlüsseltes Passwort wie „passwort123“ ist viel leichter zu knacken als ein „73b4ls93851le7nr6kd9m72j084927fk“.

Die Sicherheitsschlüssel kannst du auch in einer bestehenden Webseite problemlos nachträglich integrieren bzw. austauschen. Nach erfolgreichem Update der Secret Keys werden alle eingeloggten Benutzer automatisch abgemeldet und können sich anschließend wieder ganz normal anmelden.

Um die Sicherheitsschlüssel zu implementieren, gehe zur offiziellen Generator-Seite von WordPress, kopiere dir die 8 Zeilen und füge sie in deine wp-config.php an die entsprechende Stelle – bei WordPress 4.6.1 sind das die Zeilen 73 – 80 (siehe Screenshot).

Tipp 2: WordPress automatisch updaten

WordPress samt deinen Themes und Plugins aktuell zu halten ist wie eingangs erwähnt eine der wichtigsten Vorkehrungen die du treffen kannst, um die Sicherheit deiner Installation oben zu halten. Seit WordPress 3.7 gibt es automatische Updates für Sicherheitsupdates (z.B. 4.6 -> 4.6.1), Hauptversionen werden allerdings nicht automatisch aktualisiert, sondern müssen über das Backend manuell angestoßen werden.

Damit auch bei einer neuen Hauptversion deine WordPress-Installation sich automatisch aktualisiert, kannst du folgende Zeile verwenden. Damit werden auch „große“ Versionssprünge (z.B. 4.6.1 -> 4.7) automatisch durchgeführt.

In WordPress lassen sich auch die Plugins und Themes automatisch aktualisieren, sofern sie denn im offiziellen WordPress-Verzeichnis gelistet sind (was bei gekauften Premium-Themes bzw. -Plugins nicht der Fall ist). Das geht allerdings nicht über die wp-config.php, sondern über ein eigenes Plugin. Der geschätzte Kollege Andreas Hecht hat das aber für dich schonmal vorbereitet (in diesem Artikel unter Punkt 10) und genau erklärt, wie du dafür vorgehen müsst. Sollte kein Hexenwerk sein und du hältst so auch deine Plugins und Themes automatisiert immer auf dem neuesten Stand, wodurch du dich auf etwas wichtigeres konzentrieren kannst.

Tipp 3: Plugin- & Theme-Editor im Backend abschalten

Standardmäßig lassen sich sowohl die Theme- als auch die Plugin-Dateien im WordPress-Backend anpassen. Unter „Design -> Editor“ bzw. „Plugins -> Editor“ kannst du so direkt aus der Administrationsoberfläche Anpassungen vornehmen. Dass dies zum Problem werden kann, wenn sich jemand Zugriff zum Backend verschafft hat oder wenn du die Rechte für deine Co-Autoren falsch gesetzt hast, wird schnell ersichtlich. Beispielsweise können dadurch Codezeilen gelöscht oder schadhafter Code eingeschleust werden.

Auch für Admins kann dieser Editor durchaus schnell gefährlich werden, wenn eine unbedachte Änderung vorzeitig gespeichert wird und plötzlich die gesamte Seite samt Backend nicht mehr funktioniert. Deshalb die Empfehlung: Wenn Änderungen durchgeführt werden müssen, dann sowieso zuerst in einer Testumgebung und zum zweiten am besten direkt an den Dateien via SSH oder FTP.

Mit folgendem Code kannst du also den Editor im Backend für alle Benutzer ausschalten:

Tipp 4: Plugin- / Theme-Installation deaktivieren

Möchtest du noch einen Schritt weitergehen und sogar die Installation von Themes und Plugins über das Backend unterbinden, dann kannst du nachfolgende Zeile verwenden. Dadurch ist es keinem User mehr möglich, über die Administrationsoberfläche ein Theme oder Plugin zu installieren, sondern die entsprechenden Dateien müssen z.B. über FTP auf den Server gepackt werden.

Das könnte eine weitere Maßnahme sein, wenn du eine Seite mit vielen Autoren betreibst und die Rechtevergabe nicht eindeutig geklärt ist. Wenn du dich hierfür entscheidest, dann benötigst du den Code aus Tipp 3 nicht zu implementieren, da DISALLOW_FILE_MODS den gleichen Effekt hat und somit auch die Editoren im Backend deaktiviert.

Zusätzlich solltest du dir unseren weiter obenstehenden Tipp zur automatischen Aktualisierung von Themes & Plugins anschauen, um beides stets auf dem neuesten Stand zu halten. Denn auch ein Update von Themes & Plugins ist über das Backend anschließend nicht mehr möglich.

Tipp 5: SSL-Nutzung forcieren

Ein SSL-Zertifikat ist nicht nur wegen der erhöhten Sicherheit zwischen Browser und Server empfehlenswert, sondern auch weil Google bereits vor längerer Zeit HTTPS als Rankingfaktor bestätigt hat. Solltest du also noch kein SSL-Zertifikat bei dir implementiert haben, wäre spätestens jetzt der geeignete Zeitpunkt dafür.

Mit Let’s Encrypt gibt es Zertifikate mittlerweile für Lau, du musst also nicht mehr Unsummen dafür ausgeben, um deine Webseite über eine sichere Verbindung bereitzustellen.

Solltest du bereits ein Zertifikat installiert haben, kannst du mit den nachfolgenden Zeilen WordPress anweisen, auch im Backend auf SSL zu setzen und dich so über eine sichere Verbindung einzuloggen. Die erste Zeile ist für den sicheren Login zuständig und die zweite für die sichere Verbindung im Backend.

Tipp 6: Tabellenpräfix ändern

Dem Tabellenpräfix bzw. Datenbankpräfix haben wir bereits einen eigenen Artikel gewidmet, wie man das Tabellenpräfix nachträglich in einer bestehenden Installation ändern kann. Bei einer neuen Installation reicht es, den Standard „wp_“ einfach durch etwas kryptischeres zu ersetzen wie z.B. „blg56de_“. Die entsprechende Stelle findest du in Zeile 91.

Durch die Änderung des Tabellenpräfixes minimierst du die Wahrscheinlichkeit einer SQL-Injection, also dem Einschleusen von schadhaftem Code in deine Datenbank.

Tipp 7: Debug-Modus deaktivieren

Mit Hilfe des Debug-Modus liefert WordPress Entwicklern ein hilfreiches Tool an die Hand, um Fehler im Code zu finden und veraltete Funktionen ausfindig zu machen. Dieser sollte jedoch nur in abgesicherten Testversionen eingesetzt werden, da er in einer Live-Umgebung auch außenstehenden sensible Informationen zu deiner WordPress-Installation mitteilen kann.

Standardmäßig ist der Debug-Modus in WordPress deaktiviert, an dieser Stelle aber trotzdem nochmal der Hinweis, einen Blick drüber zu werfen und sicherzustellen, dass er auch wirklich deaktiviert ist (Standardmäßig Zeile 105). Folgender Code deaktiviert den Debug-Modus:

Tipp 8: Anzeige von PHP-Fehler ausschalten

Falls du den Debug-Modus aus irgendwelchen Gründen aktiviert lassen musst, dann kannst du zumindest die öffentliche Darstellung dieser Fehler unterbinden und nur auf ein nicht öffentliches Logfile zurückgreifen.

Mit dem folgenden Code loggst du die Fehlermeldungen deiner WordPress-Installation, ohne dass diese im Browser sichtbar sind. Stattdessen wandern sie in das Logfile unter /wp-content/debug.log

Wir aktivieren den Debug-Modus (Zeile 1), setzen die Konstante WP_DEBUG_DISPLAY auf false (Zeile 2), um die Ausgabe im Browser zu unterbinden und aktivieren gleichzeitig die Loggingfunktion in Zeile 3.

Aber Achtung: Je nachdem wie deine Seite aufgestellt ist, kann die debug.log-Datei sehr schnell sehr groß werden und mitunter sogar einige Gigabyte einnehmen. Aktiviere diese Funktion also nur temporär, falls du irgendwelche Probleme beheben möchtest und deaktiviere sie anschließend wieder!

Tipp 9: wp-config.php verschieben

Wie du mittlerweile vielleicht mitbekommen hast, ist die wp-config.php wohl die wichtigste Datei einer WordPress-Installation. Daher gilt es, diese so sicher und versteckt wie möglich zu halten. Du kannst die Datei unter anderem auch in ein anderes Verzeichnis verschieben, wo sie nicht erwartet wird.

Dazu sicherst du deine aktuelle wp-config.php und verschiebst sie an den neuen Ort deiner Wahl, im besten Fall außerhalb des WordPress-Ordners. Anschließend erstellst du im root-Verzeichnis deiner Installation einfach eine neue wp-config.php und fügst folgenden Code ein. Beachte jedoch, dass du den Pfad in Zeile 4 anpassen musst. Mehr kommt in diese Datei nicht rein, alle weiteren Anweisungen laufen über die verschobene wp-config.php.

Es gibt einige Leute, die das Verschieben der wp-config.php als nicht gewinnbringend erachten, andere widersprechen. Aus unserer Sicht gehört der Schritt zum Grundsetup einer jeden WordPress-Installation, deshalb können wir es empfehlen. Wenn du dennoch tiefer in die Diskussion einsteigen möchtest, empfehlen wir dir diesen StackExchange-Thread.

Tipp 10: wp-config.php mit .htaccess absichern

Der nachfolgende Code kommt zwar in deine .htaccess-Datei und nicht in deine wp-config.php, dient jedoch dazu diese abzusichern. Hiermit beschränkst du den Zugriff auf die wp-config.php von außen:

Background: Bonustipps für wp-config.php

Nachfolgend haben wir eine Vielzahl von Tipps und Tricks zusammengestellt, mit denen du WordPress an deine Bedürfnisse anpassen kannst.

Tipp 11: Post Revisionen limitieren oder abschalten

WordPress speichert automatisch jede kleine Änderung, die du an deinen Beiträgen vornimmst. Das kann durchaus hilfreich sein, falls dein Browser mal zwischendurch abschmiert, allerdings bläht das die Datenbank unnötig auf.

Möchtest du die Revisionen auf eine bestimmte Anzahl beschränken (hier im Beispiel 5), dann stehen dir nur noch die letzten 5 Versionen eines Artikels zur Verfügung, was den meisten wohl reichen dürfte. Alternativ kannst du die Revisionen auch komplett abschalten, siehe dazu Zeile 2. Solltest du zu dieser Variante greifen, steht dir zukünftig nur noch der normale Autosave zur Verfügung und du kannst nicht mehr eine Version aus der Vergangenheit wiederherstellen.

Tipp 12: Autosave-Intervall ändern

Der Autosave-Intervall lässt sich selbstverständlich auch nach Belieben anpassen. Von Haus aus speichert WordPress alle 60 Sekunden deinen Beitrag, sodass bei einem Browsercrash der Großteil noch erhalten sein sollte. Benötigst du aber einen längeren bzw. kürzeren Zeitabschnitt, kannst du das sehr schnell mit nachfolgender Zeile anpassen:

Tipp 13: Papierkorb schneller entleeren

Mit Version 2.9 hat WordPress ein Papierkorb-Feature erhalten. Deine gelöschten Beiträge lassen sich damit noch einige Zeit lang wiederherstellen und sind nicht sofort aus der Datenbank verschwunden. Als Standard sind für die automatische Entleerung 30 Tage vorgesehen.

Möchtest du diese Zeit reduzieren oder verlängern, kannst du das über nachfolgende Zeile steuern. Wenn du 0 einträgst, wird die Papierkorb-Funktion komplett deaktiviert und Beiträge werden beim Löschen sofort komplett gelöscht und lassen sich nicht mehr wiederherstellen. Auch fragt WordPress nicht nach einer Bestätigung, also Vorsicht!

Tipp 14: Home- & Site-URL hinterlegen

Normalerweise werden die Home- bzw. Site-URL von WordPress in der Datenbank in der Tabelle „wp_options“ gespeichert. Jedes mal wenn ein Theme oder Plugin auf diese Funktion zurückgreift, muss also mit der Datenbank kommuniziert werden, was natürlich Zeit in Anspruch nimmt.

Mit den folgenden Zeilen kannst du deine Home- & Site-URL direkt in der wp-config.php hinterlegen und sparst dir so zukünftig einige Datenbankabfragen. Auch können beide Werte nicht mehr über das Backend geändert werden, womit du auch dort bei einer Seite mit vielen Benutzern und unklarer Rechtevergabe das Risiko einer ungewollten Änderung minimierst.

Beachte jedoch, dass die Werte in der Datenbank nicht überschrieben werden, falls du in deiner wp-config.php etwas anderes einträgst als im Backend. Sobald du diese Zeilen aus der wp-config.php entfernst, gelten die URLs, die im Backend hinterlegt sind.

Außerdem verfügen beide Werte über keinen Trailing-Slash am Ende.

Tipp 15: Standard-Theme ändern

Jedes Jahr bekommt WordPress ein neues Standard-Theme, das bei der Installation vorausgewählt ist. Das voreingestellte Theme kannst du ganz leicht auf ein Theme deiner Wahl legen, was dir unter anderem bei Multisite-Installationen einiges an manueller Arbeit ersparen kann.

Beachte jedoch, dass du mit der Änderung des Standard-Themes die Fallbacklösung auf ein sicheres WordPress Twenty-* Theme verlierst. Standardmäßig verwendet WordPress nämlich das neueste Twenty-* Theme als Fallback, falls dein aktiviertes Theme aus irgendwelchen Gründen nicht mehr vorhanden ist oder Dateien beschädigt sind.

Tipp 16: PHP Memory Limit erhöhen

Auch zum Thema Erhöhung des PHP Memory Limits haben wir bereits einen eigenen Artikel geschrieben, in welchem du zusätzlich zum Code für die wp-config.php noch 2 weitere Methoden zur Erhöhung an die Hand bekommst, falls es durch den nachfolgenden Code bei dir nicht funktionieren sollte (was je nach Hoster passieren kann).

Falls du also eine Fehlermeldung zum PHP Memory Limit erhalten hast, dann kannst du dieses mit folgender Zeile hochschrauben:

Tipp 17: FTP-Daten hinterlegen

Eventuell bekommst du bei einem Update auch immer die Nachricht angezeigt, dass du doch bitte deine FTP-Daten eingibst, um das Update durchführen zu können. Dieses „Problem“ ist vom Hoster abhängig, einige sind da restriktiver voreingestellt und verlangen jedes mal aufs Neue eine Authentifizierung.

Du kannst diesen teilweise doch recht nervigen Zwischenschritt umgehen, indem du deine FTP-Zugangsdaten direkt in der wp-config.php hinterlegst und von WordPress nicht immer gefragt werden musst. Bevor du das allerdings machst hier der Hinweis, dass du idealerweise dafür bei deinem Hoster einen eigenen FTP-Zugang anlegst, der im besten Fall auch nur auf das entsprechende WordPress-Verzeichnis Zugriff hat.

Diese 3 Zeilen sollten für die meisten Installationen ausreichend sein. Es gibt aber noch eine ganze Menge weiterer Konstanten, die du im Bezug zu FTP definieren kannst, falls du immer noch aufgefordert wirst, die FTP-Zugänge anzugeben. Schau dafür am besten direkt im WordPress Kodex zum Thema FTP nach.

Falls dein Hoster eine Verbindung über SFTP anbietet, solltest du das mit Hilfe folgender Zeile definitiv nutzen:

Tipp 18: wp-content Ordner verschieben

Du kannst selbstverständlich nicht nur deine wp-config.php verschieben, sondern auch deinen kompletten wp-content Ordner. Auch das kann zur Sicherheit beitragen bzw. kannst du mit einem separaten wp-content Ordner außerhalb der Hauptinstallation dein WordPress unter Versionskontrolle stellen und so immer up-to-date halten.

Auch dafür sicherst du zuerst deinen wp-content Ordner, verschiebst ihn an die gewünschte Stelle auf deinem Server und fügst folgenden Code in deine wp-config.php ein. In Zeile 2 kannst du entweder deine absolute URL eintragen oder sie mit $_SERVER['HTTP_HOST'] erzeugen lassen.

Du kannst diesen Tipp natürlich auch verwenden, um deinen wp-content Ordner einfach nur umzubenennen ohne ihn zu verschieben.

Ein Hinweis noch dazu: Es kann sein, dass einige wenige Plugins, die nicht sauber bzw. nicht nach den Richtlinien programmiert wurden, mit der Änderung nicht klarkommen und nicht mehr funktionieren. Das sollte dich jedoch nicht davon abhalten den Ordner zu verschieben, sondern eher davon auf solche Plugins zu setzen.

Tipp 19: Plugin-Ordner verschieben

Hast du Tipp 10 befolgt, dann hast du sicherlich den Plugin-Ordner im wp-content Ordner gelassen, so wie es standardmäßig der Fall ist. Diesen kannst du allerdings auch separat verschieben, falls das deinem Setup nützlich ist.

Dazu benötigst du nachfolgende Zeilen:

Tipp 20: Mu-Plugins verschieben

Zu guter letzt kannst du auch den Mu-Plugin Ordner (Must use Plugins) an eine beliebige Stelle verschieben, ähnlich wie mit dem Pluginordner. Standardmäßig schaut WordPress nach einem Ordner namens „mu-plugins“ im wp-content Ordner. Diesen kannst du jedoch mit diesem Code an eine andere Stelle platzieren:

Background: Multisite in WordPress via wp-config.php

Für eine Multisite-Installation haben wir dir auch einige Tipps zusammengetragen, die dir die Arbeit damit erleichtern.

Tipp 21: Multisite aktivieren

Mit Version 3.0 hat WordPress die Funktion für Multisite in den Core spendiert bekommen. Damit ist es jedem Seitenbetreiber ermöglicht worden, ein eigenes Blognetzwerk entweder über Subdomains oder Verzeichnissen zu betreiben. Mit nachfolgender Zeile aktivierst du bei deiner Installation die Funktion:

Nachdem du die Zeile hinzugefügt hast, wirst du im Backend den neuen Menüpunkt „Werkzeuge -> Netzwerk“ vorfinden. Folge einfach den Anweisungen auf dieser Seite um deine Multisite-Installation abzuschließen.

Tipp 22: Akismet API-Schlüssel für Multisite hinterlegen

Akismet ist eines der meist genutzten Anti-Spam Plugins für WordPress und ist standardmäßig vorinstalliert. Da das Plugin nicht kostenlos ist, benötigen Nutzer einen API-Schlüssel um den vollen Umfang nutzen zu können. Ein kleineres Problem ergibt sich bei der Nutzung von Akismet in einer Multisite-Installation, da hier für jede Seite der API-Schlüssel manuell hinterlegt werden muss.

Um dieses Problem aus der Welt zu schaffen und den API-Schlüssel für alle Seiten einer Multisite-Installation zu hinterlegen, können wir auch hier auf eine Konstante in der wp-config.php zurückgreifen. Füge einfach deinen API-Schlüssel in folgenden Code ein und du ersparst dir einiges an Arbeit.

Fazit: wp-config.php optimieren

Über 20 Tipps und Tricks haben wir dir vorgestellt. Mit vielen der vorgestellten Codeschnipsel kannst du das Verhalten deiner Webseite an deine Bedürfnisse und deinen Workflow anpassen.

Doch auch wenn du im Kundenauftrag eine Webseite erstellst und nicht selbst damit in Zukunft arbeiten wirst, findest du eine Reihe nützlicher Kniffe, um die Installation von vornherein abzusichern und es Hackern zumindest etwas schwerer zu machen, einzudringen.

Es gibt natürlich noch weitaus mehr Konstanten, die du in der wp-config.php ansprechen kannst. Die meisten gehen jedoch einen Schritt weiter und sind für spezielle und individuelle Setups und Problemlösungen vorgesehen. Solltest du dich noch weiter informieren wollen, empfehlen wir dir als Einstieg den offiziellen Eintrag im WordPress Kodex zur wp-config.php.

Für Verbesserungen oder Anregungen zu diesem Artikel kannst du uns sehr gerne einen Kommentar hinterlassen.

Abschließend würde uns noch interessieren, welche Einträge in der wp-config.php für dich in einer Installation dazugehören? Gibst du dich mit den Sicherheitsschlüsseln zufrieden oder passt du die Datei individuell an deine Bedürfnisse an?

Autor: Denis Brediceanu
Autor: Denis Brediceanu
Online Marketing Berater, WordPress Webentwickler und Gründer von WPcorner.de aus Leidenschaft. Ich helfe gerne Menschen, im Internet mit ihrer Idee Fuß zu fassen. Die Technik sollte niemandem im Weg stehen, seine Träume zu verwirklichen!