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:
- resource limits: Dort findet sich „max_execution_time“, „max_input_time“ und „memory_limit“
- data handling: Dort findet sich die Einstellung für „post_max_size“
- 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.
Neueste Kommentare