php-Version und Voreinstellungen für WordPress: memory_limit & max_(file)size

Die wichtigsten Einstellungen für PHP in Zusammenarbeit mit WordPress. Wichtig sind max_execution_time, memory_limit & upload_max_(file)size. Um eine aktuelle WordPress Installation laufen zu lassen, benötigen Sie auf Ihrem Webserver auch eine aktuelle PHP-Version mit den passenden Einstellungen.

Fehlermeldungen

Wenn Fehlermeldungen, wie z. B.

The uploaded file exceeds the upload_max_filesize directive in php.ini

auftreten, dann wissen Sie, daß die Einstellungen für PHP, die Scriptsprache, in der WordPress programmiert wird, auf Ihrem Server nicht ausreichend sind.

Die PHP-Version: 7.* ist Stand der Technik. 5.6 noch ok

Sie sollten zumindest die PHP-Version 5.6.* verwenden. Da bei dieser der Security-Support bereits im 31. Dezember 2018 endet, empfehle ich, gleich die Version 7.1 (oder neuer) zu verwenden: Der Security Support endet für 7.1 erst am 1. Dezember 2019. Aktuelle Angaben zur Unterstützung der PHP-Versionen finden sich unter
http://php.net/supported-versions.php

Die 7er Version ist auch wesentlich performanter als die 5er Version – noch ein Grund mehr zu wechseln.
Was könnte gegen einen Wechsel zu einer aktuellen Version sprechen: (ver)alt(ete) Plug-Ins oder Themes. Nur: Da sollten Sie sowieso hellhörig werden und diese Komponenten tauschen.

Eine Änderung der php-Version für Ihren Webspace muß meist Ihr Provider vornehmen. Starten Sie dazu eine Supportanfrage.

Wie stelle ich die aktuelle PHP-Version und die Einstellungen fest?

Am einfachsten, indem Sie in Ihrem WordPress-Wurzelverzeichnis eine Datei mit dem Namen „phpinfo.php“ mit dem folgenden Inhalt per sFTP uploaden – oder direkt am Server erstellen, wenn Ihr Provider davor ein Webinterface (z. B. WebFTP) anbietet:

<?php
phpinfo ();
?>

Sie gehen dann in den Browser hinein und rufen diese Datei auf:

http://meinewordpressinstallation.com/wp/phpinfo.php

Und achten in dieser Datei auf einige Einstellungen, die leider in dieser Datei recht verstreut sind.

php: Detail-Einstellungen

Beachten Sie in der php.ini vor allem die folgenden drei Abschnitte:

  1. resource limits: Dort findet sich „max_execution_time“, „max_input_time“ und „memory_limit“
  2. data handling: Dort findet sich die Einstellung für „post_max_size“
  3. file uploads: Hier wird „upload_max_filesize eingestellt“.

Empfehlen würde ich die folgenden Einstellungen:

Miminum Settings

Leider stehen auf den meisten Servern die Standardeinstellungen z. B. für das memory_limit eines php-Skriptes noch immer auf 128 MB (manchmal sogar noch 64 oder 32 MB). Das reicht nicht (mehr) aus, ich empfehle, mindestens 256 MB zu erlauben. Hier vernünftige Settings, mit denen WordPress und die meisten Plug-Ins funktionieren sollten.

max_execution_time = 300 
max_input_time = 1000
memory_limit = 256M
post_max_size = 128M
upload_max_filesize = 128M

M steht dabei für Megybyte / MB, die Zeitangaben (_time) für Sekunden:

  • Ein php-Script darf also bei diesen Einstellungen maximal 256 MB Speicher beanspruchen und nicht länger als 300 Sekunden (= 5 Minuten) laufen
  • Bilder oder Filme, die Sie in die Mediathek uploaden oder über ein Formular als Attachement senden dürften nicht größer als 128 MB sein

Opulente Settings: wenn Sie es sich leisten können

Es gibt aber auch sehr spreicherhungrige Plugins (Wordfence beispielsweise), wo man mit 512 MB noch besser (und sicherer) fährt und nicht mehr erlebt, daß man keine WordPress-Seite mehr sieht sondern nur eine php-Fehlermeldung.
Hier php-Einstellungen, die noch mehr Ressoucren den Skripten zur Verfügung stellen:

max_execution_time = 500
max_input_time = 3000
memory_limit = 512M 
post_max_size = 128M 
upload_max_filesize = 128M

Es kann aber sein, daß die Einstellungen beschränkt sind und Sie z.B. PHP-Prozessen gar nicht mehr als 128 MB zuweisen können (memory_limit = 128M). In diesem Fall müssen Sie mit dem Provider reden – und eventuell diesen wechseln, wenn er Ihnen keine Alternative bieten kann.

Diese Einstellungen werden in der php.ini oder, wenn das nicht möglich ist, in der .htaccess Datei gesetzt.

Wo findet sich die php.ini?

Bei vielen Providern haben Sie keinen Zugang zur php.ini
Denn diese steht außerhalb ihres httpdocs-Verzeichnisses, in dem sich Ihre html-Dateien finden.
Sollten Sie also, so wie oben beschrieben, die fünf Werte nicht in der php.ini setzen können, dann müssen Sie die Eintragungen in der .htaccess-Datei vornehmen.

php-Einstellungen in der .htaccess

Die unsichtbare Datei .htaccess (ja, der Punkt ist Teil des Dateinamens) kann in jedem Directory existieren und gilt für das Verzeichnis und alle seine Unterverzeichnisse (bis sie weiter unten vielleicht wieder „overruled“ wird).
Wenn Sie per sFTP auf Ihren Server zugreifen, müssen Sie vielleicht in den Einstellungen angeben, daß auch unsichtbare Dateien angezeigt werden, um überhaupt die .htaccess-Datei sehen zu können.

Wenn Sie diese Datei geöffnet haben, dann setzen Sie ans Ende der Datei die Einstellungen (oder die höheren Werte, die oben unter „opulent“ angeführt wurden):

max_execution_time = 300 
max_input_time = 1000
memory_limit = 256M
post_max_size = 128M
upload_max_filesize = 128M

Abschluß: Re-Check der phpinfo.php

Rufen Sie abschließend nochmals die phpinfo.php Datei in Ihrem Browser auf und checken Sie die PHP-Version (möglichst 7.*) und die Einstellungen für diese fünf Parameter.

Merken

Merken

Merken

Schreibe einen Kommentar

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

9 + 15 =