it-swarm.com.de

Welchen priorisiert Wordpress, wenn es um php.ini, wp-config und .htaccess geht?

Angenommen, ich möchte das maximale Upload-Limit für eine Wordpress-Website ändern und gebe die folgenden Werte an:

wp-config.php: 128MB php.ini: 256MB .htaccess: 64MB

Welches würde Wordpress bei der Verarbeitung nach Bedarf priorisieren?

10
imranhunzai

Aus Ihrer Frage ist nicht ersichtlich, was Sie in jeder dieser Dateien ändern, aber ich nehme an, dass es sich in jedem Fall um die upload_max_filesize PHP -Einstellung handelt.

Im Allgemeinen werden die Einstellungen in dieser Reihenfolge angewendet, wobei jeder Wert den vorherigen überschreitet:

  1. php.ini
  2. Apache-Direktiven in .htaccess
  3. anrufe zu ini_set()

Diese Einstellung ist jedoch als PHP_INI_PERDIR definiert. Dies wie auf dieser Seite erläutert bedeutet, dass sie nicht mit ini_set festgelegt werden kann, sodass der wp-config.php sie nicht ändern 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 es andere Stellen gibt, für die Werte festgelegt werden können, die ich oben nicht aufgeführt habe, z. B. benutzerspezifische php.ini-Dateien und andere Apache-Konfigurationskontexte . Einige dieser können auch deaktiviert werden . Wenn Ihr Server also keine Überschreibungen in .htaccess zulässt, 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. Beispielsweise versucht WP_MEMORY_LIMIT, raise die Einstellung PHP memory_limit beim Start zu setzen, hat aber Code, der dies überprüft und niemals senkt . Es gibt keine generelle Regel dafür, es wird für verschiedene Einstellungen unterschiedlich sein.

14
IMSoP

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, wird stattdessen der Wert in .htaccess verwendet, der nächsthöhere.

In Ihrem Beispiel würde der .htaccess den max_upload_size auf 64 MB beschränken, obwohl Ihr Server mit bis zu 256 MB in Ordnung wäre und WordPress auch zuerst bis zu 128 MB Dateigröße akzeptieren würde.

Sie können auch über die Datei .htaccess ein anderes Limit einstellen und damit den Wert von php.ini überschreiben, sodass er nicht mehr der dominierende Wert ist. Dies funktioniert in vielen Hosting-Umgebungen, daher stehen die Chancen gut, dass Sie den max_upload_size auf diese Weise erhöhen oder senken können.

Wenn Sie ein genauer konfiguriertes Hosting/Server haben, ist es möglich, dass die Option zum Überschreiben der Einstellungen von php.ini deaktiviert ist. In diesem Fall funktioniert das Überschreiben von max_upload_size von .htaccess nicht. Dies kann daher ein begrenzender Faktor sein.

5
flomei

Ich denke, Flomei sollte die Antwort überarbeiten, 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 legt die Werte fest, wobei berücksichtigt wird, dass es keine zuvor definierten Einstellungen gibt. Gibt es jedoch eine zuvor definierte Einstellung, wird diese nur "überschrieben", wenn die neue Einstellung niedriger ist.

Das bedeutet, 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, verringert wp-config.php die vorherige Einstellung auf 32 MB.

Bearbeiten: Wie IMSoP ausführt, können Sie mit wp-config.php nur eine Größe festlegen, die restriktiver ist als die, die in den PHP -Einstellungen zulässig ist, wenn Sie 'WP_MEMORY_LIMIT' ändern darüber hinaus gehen. Es handelt sich also eigentlich nicht um eine Überschreibung der Einstellungen. Tatsächlich werden getrennte Überprüfungen zu verschiedenen Zeitpunkten zur Laufzeit durchgeführt. Wenn Sie die PHP-Einstellung upload_max_filesize ändern, wie er annimmt (die Frage gibt nicht an, welche Einstellungen Sie ändern), hat dies keine Auswirkung.

Außerdem müssen Sie berücksichtigen, dass der post_max_size in Ihren PHP-Einstellungen größer als der upload_max_filesize sein muss

3
bns