Intereting Posts
WordPress sharding: какой мульти-DB-плагин использовать? Мой раздел сообщений для зарегистрированных пользователей Показать сообщения с комментариями закрытыми, с разбивкой на страницы? Пользовательские таксономии разбивают страницы add_action на определенной странице Является ли функция wp_read_audio_metadata () устаревшей? Отправлять почту пользователю только один раз, когда выбран определенный флажок и обновлен из профиля, обновленного администратором Вопрос о таксономии WordPress с оптимизацией сайта Где реализовать пользовательский класс walker? Что происходит с дочерней темой, если я перехожу к новой версии родительской темы? Использование темы внутри каталога плагина Как запустить PHP-программу, отличную от WordPress, на сайте WordPress? Как использовать is_rtl с моим основным style.css? Тег WordPress или пользовательская таксономия Вернуться Все сообщения, если это слово в заголовке сообщения Список иерархических списков с графом со связанным термином

Что делает WordPress приоритетом, когда дело доходит до php.ini, wp-config и .htaccess?

Предположим, я хочу изменить максимальный уровень загрузки для сайта WordPress, и я даю следующие значения:

wp-config.php: 128 МБ php.ini: 256 МБ .htaccess: 64 МБ

Итак, какой WordPress приоритет при обработке при необходимости?

Из вашего вопроса неясно, что вы меняете в каждом из этих файлов, но я предполагаю, что в каждом случае это параметр upload_max_filesize PHP .

В общем, настройки будут применяться в этом порядке, каждый из которых превысит предыдущее значение:

  1. php.ini
  2. Директивы Apache в .htaccess
  3. звонки в 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