php ini post max size
php memory limit или как увеличить лимиты на размер загружаемых файлов и объем выделяемой памяти
Если вы запускаете сайт с большим количеством контента, эти лимиты могут стать проблемой. Можно получить ошибку при загрузке:
Если достигнут предел выделяемой памяти, то выведется другое сообщение об ошибке:
Обновление файла php.ini
M — означает мегабайты. Измените лимиты 1000M, 2000M и 3000M на значения, которые необходимы. Изменение значения max_execution_time ограничит время загрузки скрипта.
Во многих случаях используемые значения должны увеличиваться по мере перехода в списке от первой до третьей строки. Upload_max_filesize должен быть самым маленьким, memory limit php ini — самым большим. При этом post_max_size должен иметь среднее значение.
Прежде чем проверить, не исчезла ли ошибка, очистите кэш браузера.
Измените значения php ini set memory limit так, как вам нужно. Не забудьте сохранить файл и очистить кэш браузера.
Изменение файла wp-config.php
Сохраните файл и очистите кэш браузера.
Изменение лимитов в WHM
Введите нужные вам значения и нажмите кнопку « Сохранить ».
Нажмите кнопку « Сохранить » и очистите кэш браузера.
Заключение
Если ни один из вариантов не дал результата, свяжитесь со своим хостинг-провайдером.
Пожалуйста, опубликуйте ваши комментарии по текущей теме статьи. За комментарии, подписки, дизлайки, отклики, лайки огромное вам спасибо!
Настройка опций для загрузки файлов на PHP любого размера
В этом материале мы рассмотрим настройку опций сервера PHP, которые сказываются на загрузке файлов на сервер. Под словом «сказываются» подразумевается ограничение по размеру, длительности соединения и тд. и ошибки связанные с неудачной загрузкой.
Опции
Опции, влияющие на загрузку файлов:
Измеряется в секундах. Дефолтное значение: «2M»
Измеряется в штуках. Дефолтное значение: «20»
Измеряется в секундах. Дефолтное значение: «8M»
Измеряется в секундах. Дефолтное значение: «30»
Измеряется в секундах.
Измеряется в Мегабайтах. Дефолтное значение: «128M»
Применение опций
Для того чтобы задать вышеописанные опции с индивидуальными параметрами, необходимо, прописать их в одном из нескольких специальных файлов. Сейчас мы вам расскажем и покажем то как это можно сделать и какими способами.
1. PHP.INI
Файл php.ini является основным файлом где хранятся настройки исполнения php скриптов. Пользовательский файл настроек обычно находится на несколько уровней выше папки www сайта. Иногда помещён в папку php-bin.
Применение: опция = значение
Пример настройки добавленной в файл php.ini:
post_max_size = 500M
upload_max_filesize = 400M
max_execution_time = 3000
max_input_time = 6000
Применение: php_value опция значение
php_value post_max_size 500M
php_value upload_max_filesize 400M
php_value max_execution_time 3000
php_value max_input_time 6000
3. Любой PHP файл
Помимо вышеописанных способов, можно также сделать настройки к одному индивидуальному php-файлу.
Применение: ini_set(‘опция’, ‘значение’);
ini_set(‘post_max_size’, ‘500M’);
ini_set(‘upload_max_filesize’, ‘400M’);
ini_set(‘max_execution_time’, ‘3000’);
ini_set(‘max_input_time’, ‘6000’);
* Необходимо учесть, что бывают хостеры, которые блокируют изменение некоторых опций.
На этом наша статья подходит к концу. Надеемся вы подчерпнули для себя полезную информацию из этого материала.
Php ini post max size
Представленные здесь значения по умолчанию используются в случае, если не был подключён php.ini ; значения для боевого php.ini и для разработки могут различаться.
Языковые опции
Имя | По умолчанию | Место изменения | Список изменений |
---|---|---|---|
short_open_tag | «1» | PHP_INI_PERDIR | |
precision | «14» | PHP_INI_ALL | |
serialize_precision | «-1» | PHP_INI_ALL | До версии PHP 7.1.0 значение по умолчанию было равно 17. |
disable_functions | «» | Только PHP_INI_SYSTEM | |
disable_classes | «» | Только php.ini | |
exit_on_timeout | «» | PHP_INI_ALL | |
expose_php | «1» | Только php.ini | |
hard_timeout | «2» | PHP_INI_SYSTEM | Доступна с версии PHP 7.1.0. |
zend.exception_ignore_args | «0» | PHP_INI_ALL | Доступна с версии PHP 7.4.0 |
zend.multibyte | «0» | PHP_INI_ALL | |
zend.script_encoding | NULL | PHP_INI_ALL | |
zend.detect_unicode | NULL | PHP_INI_ALL | |
zend.signal_check | «0» | PHP_INI_SYSTEM | |
zend.assertions | «1» | PHP_INI_ALL с ограничениями |
Краткое разъяснение конфигурационных директив.
Выдаёт факт присутствия PHP на сервере, включая передачу версии PHP в HTTP-заголовке (например, X-Powered-By: PHP/5.3.7).
Эта директива позволяет отключить некоторые функции. Она принимает список имён функций, разделённый запятыми.
Только внутренние функции могут быть отключены с помощью этой директивы. Пользовательские функции ей не подвержены.
Если процесс стартован в режиме релиза, zend.assertions не может быть изменён во время выполнения, так как код утверждений не генерируется.
Когда истечёт время ожидания, установленное в max_execution_time, среда выполнения PHP аккуратно отключит ресурсы. Если во время этого что-то застрянет, время ожидания будет установлено на указанное количество секунд. Когда истечёт жёсткое время ожидания, PHP завершит работу с ошибкой. Если установлено значение 0, жёсткое время ожидания никогда не активируется.
Когда PHP останавливается после жёсткого времени ожидания, это будет выглядеть примерно так:
Исключает аргументы из трассировки стека, сгенерированных из исключений.
Разрешает парсинг исходных файлов в многобайтных кодировках. Включение zend.multibyte требуется для использования кодировок символов подобных SJIS, BIG5 и т.д., содержащих специальные символы в многобайтных строковых данных. Совместимые с ISO-8859-1 кодировки, например UTF-8, EUC и т.д., не требуют эту опцию.
Модуль zend.multibyte требует установленного модуля «mbstring».
Данное значение будет использовано, только при отсутствии директивы declare(encoding=. ) в начале скрипта. При использовании кодировок несовместимых с ISO-8859-1, нужно использовать опции и zend.multibyte и zend.script_encoding.
Определяет, нужно ли проверять заменённые обработчики сигналов при завершении скрипта.
Эта директива только для Apache1 mod_php, которая заставляет потомка Apache завершиться, если произошёл тайм-аут исполнения скрипта PHP. Такой тайм-аут приводит к внутреннему вызову longjmp() в Apache1, который оставляет некоторые модули в несогласованном состоянии. По завершении процесса все неснятые блокировки или память будут очищены.
Ограничения ресурсов
Имя | По умолчанию | Место изменения | Список изменений |
---|---|---|---|
memory_limit | «128M» | PHP_INI_ALL |
Краткое разъяснение конфигурационных директив.
Настройка производительности
Имя | По умолчанию | Место изменения | Список изменений |
---|---|---|---|
realpath_cache_size | «4M» | PHP_INI_SYSTEM | До PHP 7.0.16 и 7.1.2, по умолчанию было «16K» |
realpath_cache_ttl | «120» | PHP_INI_SYSTEM |
Использование open_basedir отключит кеш realpath.
Краткое разъяснение конфигурационных директив.
Определяет размера кеша realpath, используемого в PHP. Это значение должно быть увеличено на системах, в которых PHP открывает большое количество файлов соответственно количеству выполняемых файловых операций.
Размер равный общему числу байт, хранящимся в строках путей, плюс размер данных связанных с кешируемым элементом. Это значит, что для хранения длинных путей в кеше, размер этого кеша должен быть больше. Это значение не определяет напрямую количество разных путей, которые могут быть закешированы.
Размер, необходимый для кеширования, зависит от системы.
Время (в секундах) в течение которого будет использован кеш realpath для указанного файла или директории. Для систем с редко меняющимися файлами это значение можно увеличить.
Обработка данных
Имя | По умолчанию | Место изменения | Список изменений |
---|---|---|---|
arg_separator.output | «&» | PHP_INI_ALL | |
arg_separator.input | «&» | PHP_INI_PERDIR | |
variables_order | «EGPCS» | PHP_INI_PERDIR | |
request_order | «» | PHP_INI_PERDIR | |
auto_globals_jit | «1» | PHP_INI_PERDIR | |
register_argc_argv | «1» | PHP_INI_PERDIR | |
enable_post_data_reading | «1» | PHP_INI_PERDIR | |
post_max_size | «8M» | PHP_INI_PERDIR | |
auto_prepend_file | NULL | PHP_INI_PERDIR | |
auto_append_file | NULL | PHP_INI_PERDIR | |
default_mimetype | «text/html» | PHP_INI_ALL | |
default_charset | «UTF-8» | PHP_INI_ALL | |
input_encoding | «» | PHP_INI_ALL | |
output_encoding | «» | PHP_INI_ALL | |
internal_encoding | «» | PHP_INI_ALL |
Краткое разъяснение конфигурационных директив.
Этот разделитель используется в генерируемых PHP URL в качестве разделителя аргументов.
Список разделителей, используемых PHP для получения переменных из URL.
Каждый символ в этой директиве считается разделителем!
Эта директива регулирует порядок, в котором PHP добавляет переменные GET, POST и Cookie в массив _REQUEST. Добавление производится слева направо, новые значения перезаписывают старые.
Когда включено, переменные SERVER, REQUEST и ENV создаются в тот момент, когда они впервые используются (Just In Time), а не в начале выполнения скрипта. Если эти переменные в скрипте не используются, включение этой директивы приведёт к росту производительности.
Использование переменных SERVER, REQUEST и ENV проверяется на стадии компиляции, поэтому их использование с помощью, например, переменных переменных не запустит их инициализацию.
Увеличиваем максимальный размер файла загрузки (Maximum File Upload Size) и др.параметры
Как-то раз при установке премиум шаблона WordPress начал выдавать странную ошибку «The link you followed has expired» (типа ваша ссылка устарела). Только в ходе гугления удалось понять, что система просто не способна «обработать» архив большого размера. Подобная ситуация часто приводит к ошибке HTTP при загрузке картинок и файлов в медиабиблиотеку, но и с плагинами/темами, как видите, также может появиться проблема. Сегодня в посте разберем как разрешить загрузку файлов больших размеров в Вордпресс.
Максимальный размер загружаемого файла задается в настройках вашего хостинга. За это отвечает параметр upload_max_filesize в PHP. Изменить данное значение можно несколькими способами, в статье приведу их все, а вы уж выбирайте какой из них вам больше всего нравится.
Итак, при слишком большом размере файла ошибка загрузки может возникнуть как для шаблонов, так и в медиабилиотеке. Собственно в последней вы сможете посмотреть текущее установленное ограничение:
Как же его изменить?
1. Настройки хостинга
Самый простой метод – воспользоваться админ-панелью хостинга, где расположен сайт. Допустим, у вас cPanel. Находите в ней пункт “Выбор версии PHP” и после перехода на соответствующую страницу кликаете по кнопке “PHP параметры”:
Здесь вам могут пригодиться такие параметры:
Первое и второе значения как раз нам сегодня и нужно будет менять. Они используется при любых загрузках файлов. Третье и четвертое пригодится при импорте Демо наполнения шаблонов. Про увеличения Memory Limit я уже когда-то рассказывал, чем больше там значение, тем комфортнее будет работать в админке и тем шустрее загружается сайт.
Какие значения устанавливать?
Тут все зависит от ваших задач – например, когда надо загрузить шаблон в 25Мб, тогда задаете upload_max_filesize = 32Мб. Для memory_limit ставьте максимальное значение, разрешенное купленным тарифным планом. Параметры max_execution_time (обычно 300) и max_input_vars (обычно 5000), по сути, требуются для загрузки демо-контента, и если она не проводится, их можно не трогать.
После выбора того или иного значения в cPanel, оно будет применено автоматически. Сохранять ничего не требуется. Вы лишь переходите обратно в WordPress админку и проверяете изменился ли лимит загрузки файла.
Если у вас что-то не получается, всегда есть вариант написать в тех.поддержку хостера, и там помогут решить вопрос. Они даже могут установить все требуемые значения вместо вас.
2. Файл функций
Дальше идут менее объемные методы, но уже с элементами правки кодов. Тут вам надо зайти в файл functions.php и добавляете там следующие строки:
3. Через htaccess
В него нужно добавить строки:
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++, Блокноте или другом текстовом редакторе.
Затем вводите туда строки:
upload_max_filesize = 32M post_max_size = 32M max_execution_time = 300
После сохранения заливаете php.ini на хостинг в корень сайта.
Если на FTP уже есть подобный файл, то скачиваете его для редактирования и находите там соответствующие параметры. Внимание! Иногда бывает так, что заданные значения не срабатывают, т.к. слишком большие, — попробуйте тогда числа поменьше.
Итого. Как по мне, самый простой для рядового пользователя способ задания максимального размера файла при ошибке загрузки картинок/макетов – через панель хостинга. Также параметр Maximum File Upload Size и другие легко задаются через файлы functions.php, htaccess, php.ini, но тут, как минимум, надо уметь работать с FTP.
Важно! Если вы используете самый простой (shared) хостинг, то методы могут не сработать. В таком случае пишите в тех.поддержку хостера с соответствующим запросом.
Php ini post max size
В случае, если установлены ограничения памяти, вам может понадобиться увеличить значение опции memory_limit. Убедитесь в том, что значение memory_limit достаточно велико.
В случае, если опция max_execution_time установлена слишком маленьким значением, необходимое время работы скрипта может превышать это значение. Убедитесь в том, что значение max_execution_time достаточно велико.
Директива max_input_time указывает максимально допустимое время в секундах для получения входящих данных, в том числе и загружаемых файлов. В случае, если вы имеете дело с несколькими или большими файлами, либо удалённые пользователи используют медленный канал, ограничение по умолчанию в 60 секунд может быть превышено.
Если директива post_max_size слишком мала, большие файлы не смогут быть загружены на сервер. Убедитесь, что значение директивы post_max_size достаточно велико.
Если не проверять, с какими файлами вы работаете, пользователи могут получить доступ к конфиденциальной информации, расположенной в других директориях.
Следует заметить, что CERN httpd может отсечь всё, что идёт после первого пробела в получаемом от клиента заголовке content-type. Если у вас именно такой случай, CERN httpd не сможет корректно загрузить файлы.
Поскольку разные системы по-разному работают с файловой структурой, нет никаких гарантий того, что файлы с экзотическими именами (например, которые содержат пробельные символы) будут обработаны корректно.
Разработчики не должны использовать одинаковые имена для обычных полей ввода (тег input ) и полей выбора файла в пределах одной и той же формы (например, используя имя для тега input наподобие foo[] ).