WordPress & Webwork

Die Konfigurationsdatei von WordPress aufbohren

Fünf Szenarien in denen die Erweiterung der Konfigurationsdatei (wp-config.php) von WordPress Abhilfe schafft

Die wp-config.php, also Konfigurationsdatei von WordPress, kann durchaus mehr Angaben vertragen als nur die Zugangsdaten für die Datenbank und die Sicherheitsschlüssel.

Du kannst die Konfigurationsdatei durch zusätzliche Angaben erweitern und somit unter anderem die Papierkorbfunktion, die Beitragsversionierung, die automatische Speicherung und einiges mehr anpassen.

Falls du die wp-config.php bis jetzt nicht erweitert hast, dann solltest du, damit es nicht zu Problemen kommt oder du die Übersicht nicht verlierst, die zusätzlichen Angaben am besten im letzten Zehntel der Datei notieren. Also oberhalb des letzten Kommentars, der den Hinweis gibt das nachfolgenden Zeilen nicht geändert werden sollten:

define('WP_DEBUG', false);

// Hierhin kommen deine zusätzlichen Angaben

/* Das war’s, Schluss mit dem Bearbeiten! Viel Spaß beim Bloggen. */
/* That's all, stop editing! Happy blogging. */

1. Papierkorb-Funktion konfigurieren/deaktivieren

Seit der Version 2.9 werden Beiträge, Seiten und Kommentare nicht direkt gelöscht, sondern wandern in einen Papierkorb. Standardmäßig löscht WordPress Einträge im Papierkorb, die älter als 30 Tage sind. Mit folgendem Code in der wp-config.php gibt man an, nach wie vielen Tagen der Papierkorb automatisch geleert werden soll:

// Papierkorb nach 21 Tagen leeren
define('EMPTY_TRASH_DAYS', 21 );

Möchte man den Papierkorb komplett deaktivieren, muss man folgende Angabe tätigen:

// Papierkorb wird deaktiviert
define('EMPTY_TRASH_DAYS', 0 );

2. Wie begrenze/deaktiviere ich die Versionsspeicherung von WordPress?

Gerade bei ausführlichen Beiträgen kann es sinnvoll sein, wenn WordPress mehrere Versionen speichert, sodass man die Möglichkeit hat, zu einer früheren Version zurückzukehren. Es ist allerdings nicht immer gewünscht, dass es so viele Versionen gibt, da jede Revision in die Datenbank gespeichert wird und somit zur Größe der selbigen beiträgt.

Mit dem folgenden Code in der wp-config.php legt man fest, wie viele Speicherschritte WordPress protokollieren soll:

// Versionierung ist auf fünf Schritte beschränkt
define('WP_POST_REVISIONS', 5);

Möchte man die Versionierung der Beiträge komplett deaktivieren, weil die Datenbank schnell anwächst, muss man folgende Angabe in die wp-config.php eingeben:

// Versionierung wird deaktiviert
define('WP_POST_REVISIONS', false );

3. Wie konfiguriere ich die Autospeicherung?

Standardmäßig wird in WordPress beim Verfassen der Inhalte im Editor nach 60 Sekunden die automatische Speicherung ausgelöst. Willst du diesen Zeitraum auf zwei Minuten erhöhen, dann füge folgende Angaben in die wp-config.php ein:

// Autospeichern nach zwei Minuten
define('AUTOSAVE_INTERVAL', 120 );

Wie du es aus dem Codebeispiel schon erahnen kannst, kann man den Zeitraum nur in Sekunden angeben.

4. Datenbankoptimierung und -reparatur von WordPress aktivieren

Von heute auf morgen passieren auf der WordPress-Installation komische Dinge: Unterseiten sind nicht mehr auffindbar und liefern 404er-Fehlermeldungen aus, der Aufbau der Website gestaltet sich langsam etc. Bei solchen oder ähnlichen Fällen lohnt es sich, die Datenbank zu optimieren bzw. zu reparieren. Datenbankverwaltungstools, wie zum Beispiel phpMyAdmin bieten dafür Werkzeuge, aber nicht immer ist phpMyAdmin installiert und nicht immer hat man den Zugang dazu.

Glücklicherweise gibt es in WordPress ein bereits eingebautes Werkzeug für die Optimierung und Reparatur von Datenbanken, das man allerdings vorher freischalten muss. Zuerst trage folgendes in die wp-config.php ein:

// Datenbankoptimierung aktivieren
define('WP_ALLOW_REPAIR', true);

Nach dem Hochladen der Konfigurationsdatei kannst via deine-website/wp-admin/maint/repair.php das Skript zur Optimierung aufrufen.

WordPress: Datenbank reparieren und/oder optimieren

Nun hast Sie die Möglichkeit, die Datenbank zu reparieren oder zu reparieren und zu optimieren. Nach getaner Arbeit wird empfohlen, den Eintrag aus der wp-config.php zu entfernen, da das Optimierungsskript jeder, also auch nicht eingeloggte Nutzer, aufrufen kann.

5. Die Speicherbegrenzung erhöhen

Falls du beim Arbeiten im Adminbereich, zum Beispiel bei der Aktivierung von Plugins, des Öfteren solche Meldungen in einem weißen Fenster zu sehen bekommst …

Fatal error: Allowed memory size of 54321 bytes exhausted (tried to allocate 2345 bytes) in /irgend/ein/ordner/wp-content/plugins/[…].php on line 567

… dann steht den PHP-Anwendungen auf dem Server zu wenig Arbeitsspeicher zur Verfügung. Da es sich bei WordPress ebenfalls um eine PHP-Anwendung handelt, ist es ebenfalls von dieser Begrenzung betroffen.

Worum geht es genau? In der PHP-Konfiguration gibt es mit memory_limit einen Wert, der bestimmt, wie viel ein PHP-Skript – also gilt das auch für WordPress – an Arbeitsspeicher verbrauchen darf. Zu diesem Verbrauch gehören neben der WordPress-Kerninstallation auch alle eingesetzten Plugins und das genutzte Theme.

Die Begrenzung an sich ist sinnvoll, da der Server und seine Ressourcen somit vor schlecht geschriebenen Skripten geschützt werden können. Allerdings ist es so, dass die Standardeinstellung häufig zu niedrig angesetzt ist und schon lange nicht mehr für komplexe WordPress-Installationen ausreicht.

Und wie finde ich heraus, wie hoch die Speicherbegrenzung ist?

Das ist eine gute Frage, lässt sich aber schnell beantworten. Wir lassen eine mögliche Plugin-Lösung bei Seite und widmen uns einer Methode, die afaik immer zur Verfügung steht. Erstelle mit einem Texteditor eine PHP-Datei und benenne sie zum Beispiel phpinfo.php. In diese Datei trage lediglich folgenden Code ein:

<?php phpinfo(); ?>

Mit dieser Codezeile werden Ihnen Informationen zu der PHP-Konfiguration angezeigt. Lade diese Datei hoch und rufe Sie sie im Browser auf. Suche dortim Browser per STRG + F nach dem Begriff memory_limit.

PHP-Info: Infos über die PHP-Installation

In der Abbildung siehst du, dass die besagte PHP-Umgebung lediglich über 64 MB verfügt. Je nach Serverkonfiguration (FastCGI vs. mod_php4) und je nach Umfang der Installation kann das zu wenig sein.

Gut, und wie erhöhe ich nun die Speichergrenze?

Öffne noch einmal die wp-config.php und trage folgenden Code ein:

// Speicherbegrenzung erhöhen
define('WP_MEMORY_LIMIT', '96M');

Nach dem Hochladen der Konfigurationsdatei stehen WordPress 96 MB Arbeitsspeicher zur Verfügung. Das sollte für die allermeisten Fälle ausreichen; wenn nicht, dann probieren Sie es mit 128 MB oder mehr.

5.1 Alternative Möglichkeiten, um die Speichergrenze zu erhöhen

Mit dem Eintrag in der wp-config.php hat man lediglich die Grenze für WordPress angehoben. Was kann man machen, wenn man auch den anderen PHP-Anwendungen mehr Speicher zur Verfügung stellen möchte oder wenn der Eintrag in der wp-config.php keine Verbesserung hervorbrachte?

Wenn es sich bei Ihrem Webserver um einen Apache handelt, dann tragen Sie bitte folgenden Code in die .htaccess ein:

# Speicherbegrenzung erhöhen
php_value memory_limit 128M

Damit bekommen alle PHP-Anwendungen innerhalb dieses Bereichs auf dem Server 128 MB Arbeitsspeicher zur Verfügung gestellt.

Sollte wider Erwarten auch das gerade geschilderte Vorgehen keine Abhilfe schaffen, dann gibt es noch eine dritte Möglichkeit: du kannst die Datei php.ini anpassen. In der Regel, also bei normalen Hostingangeboten und auch auf gemanagten Servern, ist diese Datei von dir als Kunde gar nicht bearbeitbar. Wenn die ersten beiden Lösungen keine Hilfe bringen, musst dich mit hoher Wahrscheinlichkeit bei deinem Hoster melden und um die Behebung des Problems bitten.

3 Reaktion(en)

  1. Christian

    Zur Funktion

    define('WP_POST_REVISIONS', 5);

    möchte ich anmerken, dass diese leider nicht rückwirkend greift. Wenn also schon 100 Versionen eines Beitrags existieren (weil Dir die o.g. Funktion bei der Installation von WordPress nicht bekannt war) und Du dann erst ein Limit von 30 definierst, werden – so mein letzter Kenntnisstand – *nicht* die 70 ältesten Einträge gelöscht. Dazu braucht es dann ein Plugin.
    Ich würde es sehr begrüßen, wenn WordPress diese Bereinigung «von Haus aus» draufhätte 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.