Размер файла превышает допустимый для загрузки. PhpMyAdmin: снимаем ограничение на размер загружаемого файла. Используем PHP-функцию ini_set()

09 мая 2017 Подробности Автор: Долматов Вячеслав Просмотров: 2161

При переносе (импортировании) базы данных с помощью phpMyAdmin , иногда возникают проблемы связанные с её переносом. Возникают они в том случае, если размер базы данных, которую Вы пытаетесь перенести, является больше максимально-возможного размера, заданного по умолчанию. Подобная ситуация не критична! Её можно легко исправить изменив настройки заданные по умолчанию.

Давайте разберёмся, где именно находятся эти самые настройки и как их можно изменить. Оговорюсь сразу, что в данной статье речь пойдёт о локальном сервере DENWER , а ни о каком-либо ином. Если Вы используете другой локальный сервер, то данная статья Вам даст лишь только понимание того что нужно сделать, потому как точное название и местонахождение файла (возможно, нескольких файлов) с настройками того локального сервера что Вы используете, скорее всего, будет отличаться от тех, которые мы рассмотрим здесь.

Разочарование от того, что у нас ничего не получилось начинается с фразы:

которую мы имеем счастье лицезреть на картинке следующего вида:

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

Z:/usr/local/php5/php.ini

Первая буква (Z) может быть иной, потому как при установке локального сервера DENWER можно выбирать любую, не занятую под уже имеющиеся у Вас диски букву и тут уж Вам виднее какую букву выбрали Вы. А дальнейший путь будет в точности совпадать.

Далее при помощи любого редактора кода открываем файл php.ini . Лучше это сделать при помощи редактора Notepad++ , но если он у Вас не установлен, можно открыть при помощи редактора кода Блокнот, который входит в стандартную поставку системы Windows и не требует дополнительной установки.

К стати! Если вдруг кто то не в курсе, то редактор Notepad++ является бесплатной программой и скачать его можно на официальной странице .

Затем, при помощи поиска , в файле php.ini следует отыскать месторасположение следующих трёх переменных, меняя значения которых, можно изменять размер импортируемой базы:

upload_max_filesize; post_max_size; memory_limit

Забегая вперёд, скажу, что там будут ещё и четвёртая и пятая переменные, но о них чуточку позже.

По умолчанию (в Мегабайтах) эти переменные имеют следующие значения:

- upload_max_filesize – 2M

- post_max_size – 8M

- memory_limit – 128M

upload_max_filesize – это и есть та самая переменная, значение которой ограничивает максимальный размер импортируемой базы. По умолчанию, это ограничение составляет 2 Мегабайта. Если импортируемая Вами база больше этого значения, то его следует соответственно увеличить. Но также следует следить и за значениями переменных post_max_size и memory_limit. Они не должны быть меньше переменной upload_max_filesize .

Пример: Предположим нам следует импортировать базу размером 10 Мегабайт. В таком случае, для переменных, с учётом некоторого запаса нам следует выбрать приблизительно следующие значения: upload_max_filesize – 12M
post_max_size – 16M
memory_limit – 128M

После чего, любую базу размером до 10МГбайт можно будет импортировать, не опасаясь столкнуться с вышеописанной проблемой.

Теперь о тех самых четвёртой и пятой переменных, про которые я обещал рассказать Вам немного позже. Совершенно очевидно, что увеличение размера загружаемой базы, связано с соответствующим увеличением времени на её загрузку. Это время так же можно менять. Оно находится в переменной max_execution_time (это четвёртая переменная). Время загрузки задаётся в секундах (хотя там нет никаких единиц измерения). По умолчанию эта переменная равна 30 секундам:

max_execution_time = 30

На момент написания статьи у меня не было случаев, что бы мне не хватило времени на загрузку какой-либо базы данных, поэтому я значение этой переменной не менял. Возможно это потому, что я не сталкивался с импортом баз данных объёмом более 6-7 Мегабайт. Но, быть может у Вас возникнет такая ситуация, так что имейте это ввиду. И если решите увеличить время на загрузку в переменной max_execution_time , то в таком случае не забывайте отслеживать значение ещё одной (пятой) переменной. Зовут её max_input_time и по умолчанию её значение равно 60 секунд:

max_input_time = 60

Переменная max_input_time всегда должна иметь большее значение, чем max_execution_time .

В конце всех манипуляций не забудьте сохранить файл php.ini и перезагрузить локальный сервер DENWER !

Удачных Вам загрузок!!!

Увеличить или уменьшить ограничения на допустимый размер файлов для загрузки в 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…

Он у меня, к слову, от компании Infobox , я, конечно же, занялся переносом своих сайтов на него. И первой проблемой, с которой я столкнулся, это оказалось что моя база данных MySQL весит уже не много, не мало, а 120Мб, а по-умолчанию поддерживается загрузка файлов размеров, максимум в 2048 килобайт.

Конечно же, меня это не обрадовало и я начал искать пути решения этой проблемы. Их оказалось даже два, один предложенный командой разработчиков MySQL и второй связанный правкой конфига php.ini и увеличения максимального размера файла, загруженного через атрибут POST. Конечно же я напишу об обоих. Хотя если вы используете CMS для загрузки файлов на сайт, тогда лучше использовать второй способ.

1 способ. Указание каталога для загрузки больших файлов баз данных в phpMyAdmin.

Подключаемся через терминал или Putty к нашему серверу и открываем в текстовом редакторе файл конфига phpMyAdmin. Я для этого использую текстовый редактор nano.

nano /etc/phpmyadmin/config.inc.php

В открывшемся окне ищем строчку с параметром $cfg[‘UploadDir’] у меня это была предпоследняя строка. Прописываем в кавычках путь, в который вам нужно будет закачать файл базы данных. Я дли этого буду использовать каталог nginx для сайтов.

/usr/share/nginx/www

Жмем клавиши Ctrl+X и сохраняем файл.

2 способ. Изменение конфига php.ini для возможности загрузки файлов более 2мб.

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

1) Открываем конфиг php.ini в текстовом редакторе.

nano /etc/php5/fpm/php.ini

2) Тут нам нужно найти и изменить два параметра:

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

Я выставлю значение upload_max_filesize равным 150мб, а post_max_size — 200мб.


Ну, я хотел бы добавить свои 2 цента здесь.

Я использую общий веб-хостинг, и я много раз занимался этой проблемой, пытался решить ее самостоятельно, но безрезультатно. Наконец-то мне удалось решить эту проблему, проверив различные веб-источники и связавшись с моим поставщиком услуг хостинга. Мои вопросы: «Как я могу изменить значение php memory_limit в общедоступном веб-хостинге?», «Как мне изменить значение php upload_max_filesize в общем веб-хостинге?», «Как мне изменить значение php max_input_vars в общем веб-хостинге?»,« Как мне изменить значение php max_execution_time в общедоступном веб-хостинге? »,« Как мне изменить значение php max_input_time в совместном веб-хостинге? »И многое другое, настроив или изменив файл php.ini или.htaccess .Я попытался изменить их, но проблемы. возникла Наконец, я связался со своим хостинг-провайдера, и получается, что я могу установить PHP к родным, они изменили его на PHP 5.6, вот их ответ:

«Ваш PHP был установлен в режим„родной“, который означает, что вы не можете переопределить эти значения. Я изменил вам только «5,6», так что вы должны быть хорошо идти.»

После этого я подключил свой веб-сайт через FTP FileZilla, также не забудьте сделать как ваш сервис передачи файлов, чтобы показать скрытые файлы и локальный компьютер для этого, потому что файл.htaccess был скрыт в моем локальном ноутбуке и на моем веб-сайте. Он был доступен в папке public_html, я только что загрузил его и добавил следующие коды в конец файла, а затем загрузил его обратно на сервер:

Php_value memory_limit 256M php_value post_max_size 256M php_value upload_max_filesize 64M php_value max_input_vars 1800 php_value max_execution_time 300 php_value max_input_time 300

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

Еще одна вещь, о которой я почти забыл упомянуть об установке ZipArchive в вашем общем сервисе веб-хостинга, мне удалось установить это требование, просто перейдя на настройки php через мою cpanel, нажмите на расширения селектора php, а затем отметьте раздел zip, вот и все.

PS: Я открыт для хорошей практики, и если вы видите какую-либо плохую практику, пожалуйста, дайте мне знать, я постараюсь изменить их. Благодарю.

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

Речь пойдет о переносе баз данных и о тех особенностях конфигурации серверов, которые могут «всплыть» при работе в 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/название_папки/ .

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

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