Tutorial: Extending the WordPress configuration file

in #utopian-io6 years ago (edited)
  • Language: German (Deutsch) ↓↓
  • Title: [de] Die Konfigurationsdatei von WordPress erweitern
  • Title: [en] Extending the WordPress configuration file
  • Summary: Five scenarios in which the extension of the configuration file (wp-config. php) of WordPress solve the problems.

Worum geht es?

In dieser Anleitung werde ich zeigen wie man die Konfiguratiosndatei (wp-config.php) von WordPress (WP) erweitet und 5 Szenarien benennen in denen die Erweiterung dieser Datei Abhilfe schafft.

Die Konfigurationsdatei von WP, kann deutlich mehr Angaben und Einstellungen vertragen als nur die Zugangsdaten für die Datenbank und die Sicherheitsschlüssel, die man üblicherweise kennt.

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

Falls du die Konfigurationsdatei bis jetzt nicht angepasst hast, dann solltest du, damit es nicht zu Fehlern kommt oder du die Übersicht nicht verlierst, die neuen Angaben am besten im letzten Teil der wp-config.php notieren. Also oberhalb des letzten PHP-Kommentars, der den Hinweis gibt das nachfolgenden Zeilen nicht geändert werden sollten:

deine-angaben-kommen-hier.png
[Deine neuen Angaben am besten in diesen Bereich eintragen]

1. Wie begrenze oder deaktiviere ich die Versionsspeicherung von WP?

Gerade bei ausführlichen Blogartikeln kann es sinnvoll sein, wenn WP mehrere Versionen des Artikels speichert, sodass man die Gelegenheit hat, zu einer früheren Version zurückzuspringen. Es ist allerdings nicht immer gewünscht, dass es so viele Revisionen gibt, da jede in die Datenbank gespeichert wird und somit zur Größe der selbigen beiträgt.

Mit dem folgenden Code in der Konfigurationsdatei legt man fest, wie viele Speicherschritte WordPress protokollieren soll:

// Versionierung ist auf vier Schritte beschränkt
define('WP_POST_REVISIONS', 4);

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

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

2. Papierkorb-Funktion konfigurieren oder deaktivieren

Seit der Version 2.9 von WordPress werden Beiträge bzw. die Blogartikel, Seiten und Kommentare nicht direkt gelöscht, sondern wandern in den Papierkorb. In der Standardeinstellung löscht WP Einträge im Papierkorb, die älter als 30 Tage sind. Mit folgendem Code in der Konfigurationsdatei gibt man an, nach wie vielen Tagen der Papierkorb automatisch geleert werden soll:

// Papierkorb nach zwölf Tagen leeren
define('EMPTY_TRASH_DAYS', 12 );

Möchte man die Papierkorbfunktion komplett deaktivieren, muss man folgendes eingeben:

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

3. Die Datenbankoptimierung und -reparatur aktivieren

Manchmal geht das schneller als man denkt und auf der WordPress-Installation passieren komische Dinge: 404er-Fehlermeldungen mehren sich, weil die Unterseiten nicht erreichbar sind, der Aufbau der Seite gestaltet sich langsam usw.

Bei solchen oder ähnlichen Fällen lohnt es sich, die Datenbank zu optimierenoder zu reparieren. Datenbank-Verwaltungstools, wie z.B. phpMyAdmin bieten dafür Werkzeuge, aber nicht immer ist dieses Tool installiert und nicht immer hat man auch den Zugang dazu.

Glücklicherweise gibt es in WP ein bereits eingebautes Werkzeug für die Optimierung und Reparatur von Datenbanken, das man allerdings vorher aktivieren muss. Um dies zu erreichen einfach folgendes in die Konfigurationsdatei eintragen:

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

Nach dem Hochladen der wp-config.php kannst via domainname/wp-admin/maint/repair.php das Skript zur Optimierung und Reparatur aufrufen.

wordpress-datenbank-optimieren.png
[Der Aufruf des Skriptes zur Optimierung und Reparatur der Datenbank]

Nun hastdu die Gelegenheit, die Datenbank zu reparieren und/oder zu optimieren. Nach getaner Arbeit wird empfohlen, den Eintrag aus der Konfigurationsdatei zu entfernen, da das Optimierungsskript jeder, also auch nicht eingeloggte Nutzer, aufrufen können.

4. Speicherbegrenzung für PHP-Anwendungen erhöhen

Falls du beim Arbeiten im Backend, z.B. bei der Aktivierung von Plugins, häufiger solche Meldungen in einem weißen Browserfenster zu sehen bekommst …

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

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


Worum geht es da? In der PHP-Konfiguration gibt es mit memory_limit einen Wert, der angibt, wie viel eine PHP-Anwendung – auch WP – an Arbeitsspeicher verbrauchen darf. Zu diesem Verbrauch gehören neben der eigentlichen WP-Installation auch alle eingesetzten Plugins und das aktive Theme.


Diese Begrenzung an sich ist sinnvoll, da der Server und seine Ressourcen somit vor schlecht geschriebenen Anwendungen geschützt werden können. Allerdings ist es so, dass die Standardeinstellung vieler Hoster häufig zu niedrig angesetzt sind und schon lange nicht mehr für komplexe WP-Websites ausreichen.

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

Das ist eine berechtigte Frage, welche sich aber schnell beantworten lässt. Wir lassen eine mögliche Plugin-Lösung erst einmal bei Seite und widmen uns einer Methode, die, so weit ich informiert bin, immer zur Verfügung steht. Erstelle mit einem beliebigen Text-Editor eine PHP-Datei und benenne sie zum Beispiel infophp.php. In diese Datei trage lediglich folgenden Code ein:

<?php phpinfo(); ?>

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

php-memory-limit-standard.png
[Die relevanten Werte die in der Datei ausgegeben werden]

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

Und wie erhöhe ich nun die Speichergrenze?

Öffne noch einmal die Konfigurationsdatei und trage folgenden Code ein:

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

Nach dem Hochladen der wp-config.php stehen WordPress 128 MByte Arbeitsspeicher zur Verfügung. Das sollte für die allermeisten Fälle ausreichen; wenn nicht, dann probiere es mit einem höheren Wert.

4.1 Die Alternative: wenn die Speichererhöhung in der wp-config.php nicht wirkt

Mit dem Eintrag in der Konfigurationsdatei hat man lediglich die Grenze für WP angehoben. Was kann man machen, wenn man auch den anderen PHP-Skripten mehr Arbeitsspeicher zur Verfügung stellen möchte oder wenn der Eintrag in der Konfigurationsdatei ignoriert wird?

Wenn es sich bei deinem Webserver um einen Apache handelt, dann trage bitte folgenden Code-Schnipsle in die .htaccess ein:

# Speicherbegrenzung erhöhen
php_value memory_limit 256M

Damit bekommen alle PHP-Skripte innerhalb dieses Bereichs auf dem Server die 256 MByte Arbeitsspeicher zur Verfügung gestellt.

Sollte auch das keine Abhilfe schaffen, dann gibt es noch eine 3. Möglichkeit: du kannst die Konfigurationsdatei php.ini anpassen. In der Regel, also bei normalen Hostingangeboten und auch auf gemanagten Servern, kannst du als Kunde diese Datei nicht bearbeiten. Wenn die ersten beiden Lösungen keine Hilfe bringen, musst dich mit hoher Wahrscheinlichkeit bei dem Support deines Webhosters wenden.

5. Die Autospeicherung konfigurieren?

Üblicherweise wird in WP beim Verfassen der Inhalte im Editor nach einer Minute bzw. nach 60 Sekunden die automatische Speicherung aufgerufen. Willst du diesen Zeitraum erhöhen, zum Beispiel auf drei Minuten, dann ergänze die Konfigurationsdatei um die folgende Angabe:

// Autospeichern nach drei Minuten
define('AUTOSAVE_INTERVAL', 180 );

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



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Thank you for the contribution. It has been approved.


You can contact us on Discord
For posting rules, check Rules
[utopian-moderator]

Cool immer wieder nett! Hoffe ich finde das alles wieder wenn ich das irgendwann suche...

VG

Falls du es nicht mehr finden solltest, einfach mich kontaktieren... :-)

Hey @vladimir-simovic I am @utopian-io. I have just upvoted you at 2% Power!

Achievements

  • You have less than 500 followers. Just gave you a gift to help you succeed!
  • You are generating more rewards than average for this category. Super!;)
  • Seems like you contribute quite often. AMAZING!

Suggestions

  • Work on your followers to increase the votes/rewards. My vote is now primarily based on that, humans rule. Good luck!
  • Wondering why other contributions got more? I introduced a competition factor. My vote is also based on how competitive the category used is.

Did you know?

  • I am going to become the first Steem Community-Driven Witness. Follow me to know when!
    Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.033
BTC 62937.86
ETH 3092.40
USDT 1.00
SBD 3.87