Как-то раз при установке премиум шаблона WordPress начал выдавать странную ошибку «The link you followed has expired» (типа ваша ссылка устарела). Только в ходе гугления удалось понять, что система просто не способна «обработать» архив большого размера. Подобная ситуация часто приводит к ошибке HTTP при загрузке картинок и файлов в медиабиблиотеку, но и с плагинами/темами, как видите, также может появиться проблема. Сегодня в посте разберем как разрешить загрузку файлов больших размеров в Вордпресс.
Максимальный размер загружаемого файла задается в настройках вашего хостинга. За это отвечает параметр upload_max_filesize в PHP. Изменить данное значение можно несколькими способами, в статье приведу их все, а вы уж выбирайте какой из них вам больше всего нравится.
Итак, при слишком большом размере файла ошибка загрузки может возникнуть как для шаблонов, так и в медиабилиотеке. Собственно в последней вы сможете посмотреть текущее установленное ограничение:
1. Настройки хостинга
Самый простой метод – воспользоваться админ-панелью хостинга, где расположен сайт. Допустим, у вас cPanel. Находите в ней пункт “Выбор версии PHP” и после перехода на соответствующую страницу кликаете по кнопке “PHP параметры”:
- upload_max_filesize – max размер файла, разрешенный для загрузки;
- post_max_size – размер POST-запроса, должен быть больше/равен upload_max_filesize;
- max_execution_time – максимальное время выполнения скрипта;
- max_input_vars – количество переменных, принимаемых в рамках одно запроса;
- memory_limit – максимум памяти, выделяемой для работы скрипта/сайта.
Первое и второе значения как раз нам сегодня и нужно будет менять. Они используется при любых загрузках файлов. Третье и четвертое пригодится при импорте Демо наполнения шаблонов. Про увеличения Memory Limit я уже когда-то рассказывал, чем больше там значение, тем комфортнее будет работать в админке и тем шустрее загружается сайт.
Какие значения устанавливать?
Тут все зависит от ваших задач – например, когда надо загрузить шаблон в 25Мб, тогда задаете upload_max_filesize = 32Мб. Для memory_limit ставьте максимальное значение, разрешенное купленным тарифным планом. Параметры max_execution_time (обычно 300) и max_input_vars (обычно 5000), по сути, требуются для загрузки демо-контента, и если она не проводится, их можно не трогать.
После выбора того или иного значения в cPanel, оно будет применено автоматически. Сохранять ничего не требуется. Вы лишь переходите обратно в WordPress админку и проверяете изменился ли лимит загрузки файла.
Если у вас что-то не получается, всегда есть вариант написать в тех.поддержку хостера, и там помогут решить вопрос. Они даже могут установить все требуемые значения вместо вас.
2. Файл функций
Дальше идут менее объемные методы, но уже с элементами правки кодов. Тут вам надо зайти в файл functions.php и добавляете там следующие строки:
@ini_set( 'upload_max_size' , '32M' ); @ini_set( 'post_max_size', '32M'); @ini_set( 'max_execution_time', '300' ); |
3. Через htaccess
С этим файлом вы уже могли сталкиваться раньше – там, например, записываются permalinks формат ссылок для URL’ов сайта. Расположен .htaccess в корневой директории на FTP, в названии в начале стоит точка, а расширения нету.
В него нужно добавить строки:
php_value upload_max_filesize 32M php_value post_max_size 32M php_value max_execution_time 300 php_value max_input_time 300 |
4. Через файл php.ini
Я как-то уже писал про редактирование и настройку php.ini в другом блоге, но по сути, тут нет ничего необычного. Как и в предыдущем варианте вам надо будет загрузить на FTP в корневую директорию обновленный php.ini. В большинстве случаев его нет на хостинге – тогда вы просто создаете новый пустой файл в Notepad++, Блокноте или другом текстовом редакторе.
Затем вводите туда строки:
После сохранения заливаете php.ini на хостинг в корень сайта.
Если на FTP уже есть подобный файл, то скачиваете его для редактирования и находите там соответствующие параметры. Внимание! Иногда бывает так, что заданные значения не срабатывают, т.к. слишком большие, — попробуйте тогда числа поменьше.
Итого. Как по мне, самый простой для рядового пользователя способ задания максимального размера файла при ошибке загрузки картинок/макетов – через панель хостинга. Также параметр Maximum File Upload Size и другие легко задаются через файлы functions.php, htaccess, php.ini, но тут, как минимум, надо уметь работать с FTP.
Важно! Если вы используете самый простой (shared) хостинг, то методы могут не сработать. В таком случае пишите в тех.поддержку хостера с соответствующим запросом.