Angenommen, ich möchte das maximale Upload-Limit für eine Wordpress-Website ändern und gebe die folgenden Werte an:
wp-config.php: 128 MB php.ini: 256 MB .htaccess: 64 MB
Welches würde Wordpress bei der Verarbeitung bei Bedarf priorisieren?
Aus Ihrer Frage geht nicht hervor, was Sie in jeder dieser Dateien ändern, aber ich gehe davon aus, dass es sich jeweils um die upload_max_filesize
PHP-Einstellung handelt .
Im Allgemeinen werden die Einstellungen in dieser Reihenfolge angewendet, wobei jeder den vorherigen Wert überschreibt:
ini_set()
Diese Einstellung ist jedoch definiert als PHP_INI_PERDIR
, was, wie auf dieser Seite erläutert, bedeutet, dass sie nicht mit festgelegt werden kann ini_set
, sodass wp-config.php
sie nicht geändert werden kann. In dem Beispiel, das Sie in der Frage angeben, wird der Wert von .htaccess von 64 MB verwendet.
Sie können dies überprüfen, indem Sie echo ini_get('upload_max_filesize');
irgendwo in Ihrem Code ausführen.
Beachten Sie, dass andere Stellenwerte festgelegt werden können, die ich oben nicht aufgeführt habe, z. B. php.ini-Dateien pro Benutzer und andere Apache-Konfigurationskontexte . Einige davon können auch deaktiviert werden. Wenn Ihr Server nicht so eingestellt ist, dass Überschreibungen in .htaccess zulässig sind, können Sie dort auch keinen Wert festlegen.
Beachten Sie auch, dass Wordpress einige seiner eigenen Konfigurationsvariablen enthält, die auf unterschiedliche Weise mit der PHP-Konfiguration interagieren. Zum Beispiel WP_MEMORY_LIMIT
wird versucht , die PHP- memory_limit
Einstellung beim Start zu erhöhen , hat aber Code, der sie überprüft und nie senkt . Es gibt keine allgemeine Regel dafür, es wird für verschiedene Einstellungen unterschiedlich sein.
Grundsätzlich werden alle drei Dateien berücksichtigt.
WordPress / Ihr Server überprüft in der folgenden Reihenfolge:
wp-config.php > .htaccess > php.ini
Wenn etwas auf einer "höheren Ebene" (später in der Kette) Ihren Wert einschränkt, wird der vorherige Wert ignoriert oder überschrieben. Wenn ein Teil der Kette fehlt,
.htaccess
wird stattdessen der Wert in beispielsweise dem nächsthöheren verwendet.In Ihrem Beispiel
.htaccess
würde dies diemax_upload_size
auf 64 MB beschränken, obwohl Ihr Server mit bis zu 256 MB in Ordnung wäre und WordPress zuerst auch eine Dateigröße von bis zu 128 MB akzeptieren würde.Sie können auch über die
.htaccess
Datei ein anderes Limit festlegen und dabei den Wert von überschreibenphp.ini
, sodass er nicht mehr der dominierende Wert ist. Dies funktioniert in vielen Hosting-Umgebungen. Die Chancen stehen also gut, dass Sie die auf diese Weise erhöhen oder senkenmax_upload_size
können.Wenn Sie ein strenger konfiguriertes Hosting / Server haben, ist die Option zum Überschreiben der Einstellungen
php.ini
möglicherweise deaktiviert. In diesem Fall überschreibtmax_upload_size
von.htaccess
won't Arbeit, so könnte dies ein limitierender Faktor sein.quelle
.htaccess
es in der Mitte der Liste steht, warum sollte das der begrenzende Faktor sein?Ich denke, Flomei sollte die Antwort bearbeiten, denn das ist die richtige Antwort, aber eine schlechte Erklärung.
Php.ini -> .htaccess -> wp-config.php
ist eigentlich die Reihenfolge, in der jede Datei gelesen wird und die Werte unter Berücksichtigung der zuvor definierten Einstellung festgelegt werden. Falls es jedoch eine zuvor definierte Einstellung gibt, wird diese nur dann "überschrieben", wenn die neue Einstellung niedriger ist.Das heißt, wenn Sie wp-config.php mit 64 MB und .htaccess mit 32 MB haben: wp-config.php überschreibt diese Einstellung nicht, da es bereits eine Untergrenze gibt und Sie am Ende 32 MB haben.
Wenn Sie jedoch wp-config.php mit 32 MB und .htaccess mit 64 MB haben, senkt wp-config.php die vorherige Einstellung auf 32 MB.
Bearbeiten: Um zu verdeutlichen, wie IMSoP hervorhebt, können Sie mit wp-config.php nur eine Größe festlegen, die restriktiver ist als die PHP-Einstellungen, wenn Sie 'WP_MEMORY_LIMIT' ändern. Sie können darüber hinaus nicht darüber hinausgehen. Es handelt sich also eigentlich nicht um eine Überschreibung der Einstellungen. Tatsächlich werden zur Laufzeit an verschiedenen Punkten getrennte Prüfungen durchgeführt. Wenn Sie die PHP-Einstellung
upload_max_filesize
so ändern, wie er es annimmt (die Frage zeigt nicht an, welche Einstellungen Sie ändern), hat dies keine Auswirkungen.Außerdem müssen Sie berücksichtigen, dass der Wert
post_max_size
größer sein muss alsupload_max_filesize
in Ihren PHP-Einstellungenquelle
upload_max_filesize
zur Laufzeit nicht geändert werden kann (vermutlich weil es zu spät ist für sie keine Wirkung haben) , sowp-config.php
kann es nicht beeinflusst die eine oder die andere. Ein eingebauter Standardwert von 2 MB wird ebenfalls erwähnt, und Sie können ihn definitiv höher einstellen.wp-config.php
istini_set('upload_max_filesize', '32M');
, hat dies niemals Auswirkungen, da diese Einstellung zur Laufzeit nicht so festgelegt werden kann, wie sie definiert istPHP_INI_PERDIR
. (Es sei denn, diese Dokumentationsseite ist falsch, aber das scheint unwahrscheinlich.)wp-config.php
Werten und dem Festlegen beliebiger PHP-Werte mitini_set()
. Soweit ich weiß,wp-config.php
hat dies in erster Linie mit dem Festlegen von WordPress-spezifischen Konfigurationswerten zu tun, und viele davon werden tatsächlich durch die zugrunde liegende PHP-Konfigurationseinstellung (wie in der Antwort erwähnt) eingeschränkt (dh auferlegtWP_MEMORY_LIMIT
). Dies ist eine WordPress-Sache. Wenn Sie jedoch beliebige PHP-Konfigurationswerteini_set()
in PHP festlegen, gibt es keine solche Einschränkung.