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

Те, кто уже пытался загружать файлы, вполне вероятно, обратили внимание на то, что загрузить файл через 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-клиентом или заходить на свой хостинг и загружать туда свои файлы. Однако не указывайте очень большие размеры, так как место на хостинге может незаметно улетучиться. Удачного блоггинга!

В зависимости от тематики блога, иногда может понадобиться быстрая загрузка различных видеороликов, аудиоматериалов или изображений высокого качества. К сожалению, в 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-клиентом или заходить на свой хостинг и загружать туда свои файлы. Однако не указывайте очень большие размеры, так как место на хостинге может незаметно улетучиться. Удачного блоггинга!

Доброго времени суток! Сегодня мы вновь коснемся вопросов переезда с сервера на сервер и тех проблем, которые могут возникнуть в процессе этого.

Речь пойдет о переносе баз данных и о тех особенностях конфигурации серверов, которые могут «всплыть» при работе в phpMyAdmin.

Вводная часть

Начну с лирического отступления. Когда я только начинал свою более-менее профессиональную деятельность в WEB-разработке, мне казалось логичным и единственно верным правило: новый сайт — это всегда новая база данных. Что же здесь непонятного? Все с чистого листа. Зачем тянуть за собой уже существующие таблицы данных? В ответ на это системный администратор, который входил в команду работающую над рядом интернет-проектов, всегда тяжело вздыхал, иногда сильно ругался и рассказывал о префиксах таблиц. В общем, выбить новую базу данных было тяжело. Почти невозможно. Меня это очень даже раздражало, раздражало до степени бешенства.

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

Сразу скажу, что значительный объем базы данных может быть вызван всего одним единственным интернет-ресурсом. С такой ситуацией сталкиваюсь часто и обязательно беру ее в расчет. Так в чем же могут возникнуть проблемы с переносом баз данных? Переходим к практической составляющей.

Максимальный размер файла 2048 килобайт

Как правило, именно таким бывает стандартное ограничение для импорта существующей базы данных.

PMA как бы намекает... Бекапы более 2 мегабайт — не принимаются

Как вы уже могли догадаться, базу данных можно загнать в архив с расширением.gzip, .bzip2 или.zip, закрыв тем самым вопрос. Однако удается это далеко не всегда. Проще говоря, попытка архивации damp.sql, размеров в 100 МБ не принесет желаемого результата. Но мы попробуем, бегло проверив насколько возможно сжать базу тем или иным архиватором.

Архивация баз данных

Немного экспериментальной части.

В нашем распоряжении бекап с расширением.sql размером ~100 МБ. Что же нам даст архивация?

Результаты были получены в десктопном архиваторе 7zip. Конфигурация стандартная.

Эксперимент завершен. Результаты сжатия замечательны, но недостаточны для решения поставленной задачи.

Примечание: увеличение уровня компрессии и прочие настройки могут дать более значительные результаты, однако для чистоты эксперимента мы рассматривали сугубо стандартные настройки.

Как снять ограничения

Понимая, что задача не решается на уровне файла, приступим к решению на уровне сервера. Здесь есть как минимум два способа.

Первый, он же классический. Редактирование файла php.ini , как правило, путь к файлу следующий: /etc/php5/apache2 .

Отредактировать данный файл можно как с помощью консоли, так и с помощью ISPmanager, либо любой другой панели управления.

Интересовать нас будут 2 параметра:

  • upload_max_filesize - максимальный размер загружаемого файла
  • post_max_size - максимальный размер сообщения методом POST.

Я установил оба параметра равным 200 МБ. Перезапускаем FPM (FastCGI Process Manager) командой service php5-fpm restart . Кстати, сделать все тоже самое можно через интерфейс ISPmanager:

ISPmanager: настройки PHP

Готово. Размер импортируемого файла увеличен.

Альтернативный подход: импорт файла из папки

Редактируем файл /etc/phpmyadmin/config.inc.php . Нас будет интересовать параметр $cfg["UploadDir"] . Здесь мы должны указать путь к папке, в которой расположены бекапы баз данных. Заглянем в Импорт phpMyAdmin, появился новый пункт:

Важно! Не все йогурты одинаково полезны. Далеко не к каждой директории у phpMyAdmin есть права доступа!
Рекомендую использовать /usr/share/название_папки/ .

Готово. Можно импортировать.

Вот в общем-то и все. Желаю Вам успешных переездов и только надежных серверов. До новых встреч.