Энциклопедия мобильной связи

Php максимальный размер файла. PhpMyAdmin: снимаем ограничение на размер загружаемого файла

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…

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

Он у меня, к слову, от компании 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мб.


По умолчанию 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 » дружной командой проекта .

Хорошо Плохо



Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!