Предположим, я хочу изменить максимальный уровень загрузки для сайта WordPress, и я даю следующие значения:
wp-config.php: 128 МБ php.ini: 256 МБ .htaccess: 64 МБ
Итак, какой WordPress приоритет при обработке при необходимости?
Из вашего вопроса неясно, что вы меняете в каждом из этих файлов, но я предполагаю, что в каждом случае это параметр upload_max_filesize
PHP .
В общем, настройки будут применяться в этом порядке, каждый из которых превысит предыдущее значение:
ini_set()
Однако этот параметр определяется как PHP_INI_PERDIR
, который, как объясняется на этой странице, означает, что он не может быть установлен с помощью ini_set
, поэтому wp-config.php
не может его изменить. Итак, в примере, который вы задаете в вопросе, он будет принимать значение с .htaccess в 64 МБ.
Вы можете проверить это, запустив echo ini_get('upload_max_filesize');
где-то в вашем коде.
Обратите внимание, что могут быть установлены другие значения мест, которые я не перечислял выше, например, файлы php.ini для каждого пользователя и другие контексты конфигурации Apache . Кроме того, некоторые из них могут быть отключены , поэтому, если ваш сервер не настроен на возможность переадресации в .htaccess, вы также не сможете установить там значение.
Также обратите внимание, что WordPress содержит некоторые свои собственные переменные конфигурации, которые по-разному взаимодействуют с конфигурацией PHP. Например, WP_MEMORY_LIMIT
попытается поднять параметр PHP memory_limit
при запуске, но имеет код, который проверяет и никогда не снижает его . Для этого нет общего правила, оно будет отличаться для разных настроек.
В основном учитываются все три файла.
WordPress / ваш сервер будет проверять следующий порядок:
wp-config.php > .htaccess > php.ini
Если что-то на «более высоком уровне» (позже в цепочке) ограничивает ваше значение, прежнее значение будет проигнорировано или перезаписано. Если фрагмент цепочки отсутствует, вместо него будет использоваться значение в .htaccess
например, следующее более высокое.
В вашем примере .htaccess
ограничивает max_upload_size
до 64 МБ, хотя ваш сервер будет в порядке с объемом до 256 МБ, а WordPress также будет принимать до 128 МБ в размере файла.
Вы также можете установить другой предел через файл .htaccess
и при этом вы перезаписываете значение из php.ini
, чтобы оно больше не являлось доминирующим значением. Это работает во многих средах хостинга, поэтому неплохие шансы вы можете повысить или понизить max_upload_size
таким образом.
Если у вас более строго настроенный хостинг / сервер, возможно, что опция переопределения настроек из php.ini
отключена. В этом случае переопределение max_upload_size
из .htaccess
не будет работать, поэтому это может быть ограничивающим фактором.
Я думаю, что flomei должен отредактировать ответ, потому что это правильный ответ, но плохое объяснение. Php.ini -> .htaccess -> wp-config.php
– это фактически порядок, в котором каждый файл будет считаться, и установит значения, учитывая, что ранее не задано значение. Но в случае, если существует ранее установленная настройка, это будет «чрезмерно», только если новая настройка будет ниже.
Это означает, что если у вас есть wp-config.php с 64 Мб и .htaccess с 32 МБ: wp-config.php не переопределит этот параметр, потому что уже есть нижний предел, и вы получите 32 Мб.
Но если у вас есть wp-config.php с 32 МБ и .htaccess с 64 МБ, wp-config.php уменьшит предыдущую настройку до 32 Мб.
Изменить: Чтобы уточнить, как указывает IMSoP, wp-config.php просто позволяет вам установить более строгий размер, чем позволяют настройки PHP, если вы меняете «WP_MEMORY_LIMIT», это не позволяет вам выйти за рамки этого. Таким образом, это не переопределение настроек. Фактически, во время выполнения в разных точках выполняются отдельные проверки. Если вы меняете настройку php upload_max_filesize
как он предполагает (вопрос не указывает, какие настройки вы меняете), это не влияет.
Кроме того, вам нужно будет принять во внимание, что post_max_size
должен быть больше, чем upload_max_filesize
в ваших настройках php