Как увеличить максимальный размер загружаемых файлов в WordPress

Увеличить или уменьшить ограничения на допустимый размер файлов для загрузки в WordPress можно очень быстро и просто . Для этого я рекомендую самый простой и надежный способ.

Откройте файл functions.php в папке вашей темы. Путь к этому файлу: www\wp-content\themes\имя_вашей_темы\functions.php . Заходим на FTP, копируем файл functions.php на компьютер и открываем его с помощью текстового редактора (рекомендую Notepad++).

Открыть файл с функциями можно также через админку вашего сайта. Для этого переходим в Внешний вид -> Редактор и в списке справа выбираем для редактирования Функции темы .

Вставлять следующую команду необходимо в конец файла functions.php, перед закрывающимся тегом?>.

Ограничение на размер загружаемого файла WordPress:

add_filter("upload_size_limit", "PBP_increase_upload"); function PBP_increase_upload($bytes) { return 1048576; // 1 megabyte }

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

После того как вы вставили код выше, не забудьте сохранить файл и залить его обратно на ваш сайт через FTP (если вы добавили код через админку сайта, нажмите кпопку «Обновить файл» ).

Конечно есть и другие способы изменения размера файлов для загрузки, к примеру изменяя значения в конфигурационном файле php.ini или через.htaccess… Но как по мне, пример который я привел выше является самым практичным и понятным.

Если что-то не получилось или остались вопросы, задавайте их в комментариях.

Увеличить или уменьшить ограничения на допустимый размер файлов для загрузки в WordPress можно очень быстро и просто. Для этого я рекомендую самый простой и надежный способ. Откройте файл functions.php в папке вашей темы. Путь к этому файлу: www\wp-content\themes\имя_вашей_темы\functions.php. Заходим на FTP, копируем файл functions.php на компьютер и открываем его с помощью текстового редактора (рекомендую Notepad++). Открыть файл с функциями можно также через админку вашего сайта. Для этого переходим в Внешний вид -> Редактор и в списке справа выбираем для редактирования Функции темы. Вставлять следующую команду необходимо в конец файла functions.php, перед закрывающимся тегом?>. Ограничение на размер загружаемого файла WordPress: add_filter("upload_size_limit", "PBP_increase_upload"); function PBP_increase_upload($bytes) { return…

Те, кто уже пытался загружать файлы, вполне вероятно, обратили внимание на то, что загрузить файл через PHP даже среднего размера (15-20 МБ ) не представляется возможным. А ведь это не такой уж и большой размер файла, и в этой статье я расскажу, как загружать файлы больших размеров в PHP .

Для того, чтобы загружать файлы больших размеров в PHP , надо исправить настройки интерпритатора PHP . Существуют 4 настройки, влияющие на максимальный допустимый размер загружаемого файла:

  • max_execution_time - максимальное время, которое может выполняться скрипт. Как правило, стоит 30-60 секунд .
  • max_input_time - максимальное время, в течение которого могут приниматься данные на сервер. Здесь также стоит порядка 30-60 секунд .
  • upload_max_filesize - максимальный размер файла, который допускается для загрузки на сервер. Ключевая настройка, однако, вопреки общему заблуждению, далеко не единственная необходимая для загрузки больших файлов в РHP .
  • post_max_size - максимальный размер отправляемых данных.

Фактически, чтобы загружать большие файлы в PHP , нужно исправить все 4 настройки. Делается это с помощью файла .htaccess , в который нужно добавить следующие строки (безусловно, значения можно менять на свои):

Php_value max_execution_time 500
php_value max_input_time 500
php_value upload_max_filesize 30M
php_value post_max_size 30M

Почему все 4 опции так важны:

  • max_execution_time - здесь нужно поставить время, за которое должен успеть загрузиться файл. Очевидно, что файл размеров 30 МБ вряд ли загрузится за 30-60 секунд , поэтому безусловно, это время надо увеличивать.
  • max_input_time - аналогично с max_execution_time . Ведь если первые 60 секунд будут приниматься данные, а потом перестанут, то вновь файл не успеет загрузиться.
  • upload_max_filesize - эту опцию меняют все и без проблем, однако, когда ничего не меняется - удивляются, а ведь она хоть и является ключевой, но, тем не менее, другие три так же очень важны.
  • post_max_size - максимальный размер отправляемых данных так же очевиден, ведь если файл большого размера, то он не сможет полностью отправиться из-за этого ограничения.

Однако, будьте внимательны! До бесконечности увеличивать эти параметры нельзя! Все эти настройки ограничены оперативной памятью, выделяемой Вам сервером. Запомните следующее неравенство, которое всегда должно соблюдаться: "upload_max_filesize < post_max_size < memory_limit ". Вот поэтому нельзя поставить размер файла больше оперативной памяти. Возможно, Вы спросите почему? Здесь всё очень просто: прежде чем файл появится на сервере, он целиком помещается в оперативную память . И поэтому нельзя загрузить файл размера большего, чем оперативная память, выделяемая сервером. Надеюсь, понятно объяснил. А размер оперативной памяти составляет, в среднем, 64 - 128 МБ . И из этого размера Вы можете уже окончательно понять, насколько большие файлы Вы вправе загружать через PHP . Безусловно, если у Вас будет выделенный сервер, то Вы можете поставить хоть 16 ГБ оперативной памяти, если, конечно, на компьютере имеется столько памяти вообще. А на обычным хостинге, таких размеров не бывает, поэтому там всегда есть большие ограничения на размер загружаемых файлов через PHP . И всегда помните: предел на размер загружаемых файлов существует абсолютно всегда и на любом сервере!

Довольно распространенная проблема, с которой я часто сталкиваюсь в сообществе WordPress, заключается в том, что крупные изображения, темы и плагины не загружаются в WP. Появляется ошибка: «превышен максимальный размер загружаемых файлов для этого сайта». Сегодня я покажу вам, как вы можете увеличить лимит загрузок в WordPress.

Суть проблемы

Почему вообще это происходит? Важно понять, что обычно это не связано с самой системой WordPress. В большинстве случаев максимальный размер загружаемых файлов задается на уровне сервера, откуда также следует, что вы не сможете справиться с этой проблемой из WP.

Этот лимит задается с целью безопасности и максимальной эффективности. Пользователи не смогут «завалить» ваш сайт крупными видеофайлами, что привело бы к снижению производительности сервера. Я думаю, что это – вполне оправданная мера, однако стандартный лимит в 2 Мб (который стоит на многих серверах) слишком сильно ограничивает нас, поэтому давайте посмотрим, как мы можем поднять его.

Увеличиваем максимальный размер загрузок

Есть три основных способа, которые помогут вам справиться с этой проблемой. Я начну с двух самых простых, после чего уже перейду к ручному изменению настроек сервера – для этого также имеется масса вариантов.

Увеличиваем максимальный лимит загрузок в мультисайтовой сборке

Если у вас установлены мультисайты, вы можете управлять лимитом загружаемых файлов в разделе Settings->Network Settings. Обратите внимание, что этот параметр не сможет переопределить настройки сервера. Если на сервере установлен лимит в 5 Мб, а вы установите в админке 10 Мб, ограничение все равно останется 5 Мб.

Если же на сервере задан лимит в 20 Мб, а ваши параметры сети заданы в 1,500 Кб, вы сможете решить этот вопрос, увеличив лимит до 20,000 Кб.

Обращаемся к своей хостинг-компании

Многие хостинг-компании предлагают поддержку, которая может выручить вас в некоторых ситуациях. Увеличение лимита загрузок – тривиальная задача для любого человека из технической поддержки, он сможет это сделать в течение пары минут.

Изменяем настройки сервера

Есть масса параметров сервера, которые влияют на то, как будут обрабатываться загружаемые файлы. К сожалению, во многих руководствах это понимается превратно – в них меняется много всего лишнего. Согласно документации PHP, важную роль в этом вопросе играют три директивы:

  • post_max_size
  • upload_max_filesize
  • memory_limit

Документация также дает нам довольно четкие инструкции по поводу того, как они должны быть настроены:

post_max_size задает максимальный размер разрешенных данных для записей. Этот параметр также влияет на загрузку файлов. Чтобы загружать крупные файлы, это значение должно превышать upload_max_filesize. Если ограничение памяти доступно в вашем конфигурационном скрипте, memory_limit также может повлиять на загрузку файлов. В общем, memory_limit должен превышать post_max_size.

Нам нужно будет установить все эти три параметра, чтобы разрешить загрузку наших размеров файлов. Если самый крупный файл будет иметь размер 10 Мб, то в таком случае я рекомендую установить upload_max_filesize в 12M, post_max_size в 13M, а memory_limit в 15M. Загрузки могут содержать некоторую текстовую информацию наряду с самим файлом, поэтому всегда лучше оставлять некоторое дополнительное пространство для маневров.

Теперь, когда мы знаем, что именно нужно изменить, нам надо узнать, как это сделать. Вы можете попробовать три варианта. Некоторые могут не работать у вас, что зависит от настроек вашего сервера.

Создайте или измените php.ini

По умолчанию php.ini файлы содержат настройки вашего сервера. Вследствие некоторых серверных ограничений файлы php.ini могут быть недоступны, и поэтому обычно используется метод с.htaccess, о котором мы скажем далее.

Перейдите к корневому каталогу вашего сайта и откройте или создайте файл php.ini. Если этот файл уже имеется, отыщите три параметра и отредактируйте их при необходимости. Если вы только что создали файл, либо параметры не найдены, вы можете вставить в него код ниже:

Upload_max_filesize = 12M post_max_size = 13M memory_limit = 15M

Создайте или отредактируйте.htaccess

Файл.htaccess – специальный скрытый файл, который содержит в себе разные параметры, используемые для изменения поведения сервера. Если метод с php.ini не сработал, я рекомендую вам попробовать метод с.htaccess.

С помощью FTP или SSH-соединения перейдите в свой корневой каталог и посмотрите, есть ли в нем файл.htaccess. Если он есть, вы можете отредактировать этот файл вручную, добавив необходимый код для увеличения лимита загрузок.

Php_value upload_max_filesize 12M php_value post_max_size 13M php_value memory_limit 15M

Используем PHP-функцию ini_set()

Я – не любитель такого подхода, однако, если все остальное не дало результата, вы можете попробовать этот метод. Добавьте следующий код в свой файл wp-config.php:

@ini_set("upload_max_size" , "12M"); @ini_set("post_max_size", "13M"); @ini_set("memory_limit", "15M");

В теории вы можете попробовать добавить этот код в functions.php вашей темы либо в основной файл ваших плагинов, однако обычно этот код там не содержится.

Настройка Nginx

Nginx – альтернатива старому доброму Apache. Он может работать в разы быстрее, чем Apache, и именно по этой причине многие узкоспециализированные хостинги используют его на своих серверах для представления страниц. Если вы запустите свой сайт на Nginx, вам нужно будет также изменить свой файл php.ini и конфиг nginx.

Мы уже говорили о том, как настроить php.ini, поэтому сейчас мы приведем код для конфига nginx:

Http { client_max_body_size 13m; }

В группе http может иметься много разных параметров, однако мы меняем только client_max_body_size.

Наконец, что не менее важно, вам нужно будет перезапустить некоторые сервисы, чтобы убедиться в том, что изменения были применены. Выполните следующие команды:

Service php5-fpm restart service nginx reload

Заключение

Проверить, работают ли методы, можно очень просто. Мне нравится такой способ: достаточно перейти к разделу Media и щелкнуть по ссылке Add New. Вы должны увидеть небольшое сообщение, которое гласит: «Maximum upload file size: 8Mb» («Максимальный размер загрузок: 8Мб). Числовое значение должно измениться, как только вы укажете новые параметры.

Я рекомендую вам отменять все изменения, которые не сработали. Файлы.htaccess и php.ini работают наподобие каскадированию в CSS. Значение post_max_size, заданное в дочерней категории, перезапишет ту же самую директиву, стоящую в родительской категории.

Это может привести к некоторым проблемам, если вы зададите эти директивы везде, где только можно.

В зависимости от тематики блога, иногда может понадобиться быстрая загрузка различных видеороликов, аудиоматериалов или изображений высокого качества. К сожалению, в CMS WordPress предусмотрен определенный лимит на размер загружаемого файла. Поэтому я вам расскажу о тех способах, которые позволят вам быстро загружать большие файлы.

Конечно, если вы загружаете файл большого размера и возникает ошибка, то можно загрузить его через FTP или из административной части вашего хостинга. Однако согласитесь, что такой способ менее удобен и более затратный по времени. Куда проще и быстрее загружать файлы прямо с административной части . Но разработчики данной CMS посчитали нужным установить определенный лимит на размер загружаемого файла. В зависимости от версии движка, этот лимит может отличаться. Однако его не всегда может хватить для быстрой загрузки нужных файлов.

Такое ограничение приносит очень большие неудобства тем, кто выкладывает фотографии, музыку, различные подкасты или качественное видео на свой блог или сайт. К счастью данную проблему можно быстро и с легкостью решить. Вот те способы, которые помогут вам быстро загружать файлы нужного размера:

  • редактирование файла.htaccess — этот файл находится на сервере в корневой папке сайта, то есть в папке « publiс_html » —> « ваш домен «. Если на локальном сервере, то это будет просто папка с названием сайта. В итоге, на сервере в корневой папке сайта вам нужно будет найти файл.htaccess и скачать его к себе на компьютер. Скачивать и закачивать файл на сервер можно с помощью файлового менеджера вашего хостинга, либо через . Когда скачаете файл к себе на компьютер, то откройте его с помощью программы Notepad++. Почти в самом конце, прямо перед строчкой с надписью # END WordPress, вставьте код, который доступен ниже. Вместо чисел вставляем свои одинаковые значения и сохраняем. После этого старый файл.htaccess на сервере удаляем, а вместо него закачиваем новый со своего компьютера. Изменения должны вступить сразу.
php_value upload_max_filesize 300M php_value post_max_size 300M
  • изменение файла wp-config.php — ищем такой файл на сервере в корневой папке сайта и потом прописываем в нем следующие строчки со своим значением:
define("UPLOAD_MAX_FILESIZE", "300MB"); define("POST_MAX_SIZE", "300MB");

если не поможет, то вместо предыдущего в этом же файле попробуйте прописать вот этот код:

Ini_set("upload_max_size" , "300M"); ini_set("post_max_size", "300M");

  • создание файла php.ini — если на самом сервере у вас нет этого файла, то на компьютере создайте его (например, с помощью Notepad++) и пропишите предельное значение файла. Значение может быть любым, но не делайте его слишком большим. У меня, к примеру, установлено на 300 M. Как только файл будет готов, вам потребуется просто загрузить его в корневую папку сайта. Вот то, что нужно будет прописать в этом файле:
upload_max_filesize = 300M post_max_size = 300M

Вам нужно выбирать один способ, и если он не будет работать, то переходить к следующему. Начинать лучше с самого первого способа, так как он работает во многих случаях. Только если не будет никаких изменений, то стоит переходить уже к следующему способу. Перед внесением изменений всегда создавайте резервную копию.

Важно знать, что не все способы могут работать. Все зависит от версии WordPress и от хостинга. Кроме самого первого способа, все изменения могут вступить не сразу. Может потребоваться определенное количество времени. Если вы заметили, что все перечисленные способы не работают, то обратитесь за помощью к своему хостингу. Они изменят на своем сервере конфигурационные файлы.

Итак, теперь вы знаете, как можно увеличить допустимый размер загружаемых файлов прямо WordPress. Теперь вам больше не придется лишний раз пользоваться FTP-клиентом или заходить на свой хостинг и загружать туда свои файлы. Однако не указывайте очень большие размеры, так как место на хостинге может незаметно улетучиться. Удачного блоггинга!

По умолчанию WordPress устанавливает небольшой лимит на размер загружаемых изображений, видеороликов и других файлов. Аналогичная ситуация с PHP memory limit , который сказывается на возможности запускать плагины и скрипты.

Если вы запускаете сайт с большим количеством контента, эти лимиты могут стать проблемой. Можно получить ошибку при загрузке:

Объем загружаемого файла превышает ограничение, заданное директивой upload_max_filesize в файле php.ini

Если достигнут предел выделяемой памяти, то выведется другое сообщение об ошибке:

Неустранимая ошибка: допустимый размер памяти 12345678 байт исчерпан (вы пытались выделить 2345678 байт) в /home/your-username/public_html/wp-includes/plugin.php в строке 1000

Рассмотрим наиболее эффективные способы увеличения этих лимитов на сервере. Начнем с memory limit php ini .

Обновление файла php.ini

Если вы используете CPanel , перейдите в раздел «Файлы » и нажмите кнопку «Диспетчер файлов ». Убедитесь, что установлен флажок «Показать скрытые файлы », а затем нажмите на кнопку «Перейти ».

Выберите папку wp-admin и найдите файл php.ini или php5.ini . Если такого файла нет, создайте его, нажав на кнопку «Создать файл », расположенную в верхнем левом углу. Назовите файл php.ini и нажмите во всплывающем окне кнопку «Создать файл »:

Если ошибка не исчезла, попробуйте переименовать файл в php5.ini . Когда файл будет открыт, добавьте в него приведенные ниже строки, а затем сохраните изменения и закройте файл:

upload_max_filesize = 1000M post_max_size = 2000M memory_limit = 3000M file_uploads = On max_execution_time = 180

M — означает мегабайты. Измените лимиты 1000M, 2000M и 3000M на значения, которые необходимы. Изменение значения max_execution_time ограничит время загрузки скрипта.

Во многих случаях используемые значения должны увеличиваться по мере перехода в списке от первой до третьей строки. Upload_max_filesize должен быть самым маленьким, memory limit php ini — самым большим. При этом post_max_size должен иметь среднее значение.

Прежде чем проверить, не исчезла ли ошибка, очистите кэш браузера.

Редактирование файла.htaccess

Если редактирование php.ini не помогло, попробуйте изменить файл .htaccess . Добавьте приведенный ниже код в конец файла:

php_value upload_max_filesize 1000M php_value post_max_size 2000M php_value memory_limit 3000M php_value max_execution_time 180 php_value max_input_time 180

Измените значения php ini set memory limit так, как вам нужно. Не забудьте сохранить файл и очистить кэш браузера.

Изменение файла wp-config.php

Если оба способа не дали результата, попробуйте отредактировать файл wp-config.php , добавив следующий код в самый низ, перед строкой «happy blogging «:

define(‘WP_MEMORY_LIMIT’, ‘3000M’);

Сохраните файл и очистите кэш браузера.

Изменение лимитов в WHM

Если сайт размещен на VPS или выделенном сервере, можно попробовать изменить лимиты в WHM .

После того, как вы вошли в систему, перейдите в раздел Конфигурация сервера> Настройки > PHP .


Введите нужные вам значения и нажмите кнопку «Сохранить ».

Затем перейдите в раздел Конфигурация служб> Редактор конфигурации PHP . Прокрутите страницу вниз до разделов memory_limit и upload_max_filesize :


Введите необходимые значения. В разделе «Параметры и информация » найдите memory_limit и задайте то же значение, которое вы установили в memory limit php ini и .htaccess .

Заключение

Мы рассмотрели все способы решения данной проблемы. Наслаждайтесь возможностью загружать большие файлы и продолжайте использовать на своем сайте плагины WordPress . Внесенные в php memory limit htaccess изменения должны вступить в силу через несколько минут, после чего можно будет приступить к работе с новыми параметрами.

Если нужно загрузить большие файлы только один раз, попробуйте сделать это через FTP . Обычно файлы, загруженные через FTP в каталог /wp-content/uploads/ , не отображаются в библиотеке медиа. Но с помощью плагина Media from FTP можно отобразить их всего в несколько кликов.

Если ни один из вариантов не дал результата, свяжитесь со своим хостинг-провайдером.

Перевод статьи «How to Increase the Maximum Upload and PHP Memory Limit » дружной командой проекта .

Хорошо Плохо