max_execution_time = 30 ; Maximum execution time of each script, in seconds max_input_time = 60 ; Maximum amount of time each script may spend parsing request data ;max_input_nesting_level = 64 ; Maximum input variable nesting level memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)
По умолчанию 128 МБ, все в порядке
Но когда я редактирую php.ini как это
memory_limit = 128000000 ; Maximum amount of memory a script may consume (128MB)
Я узнал:
Неустранимая ошибка: допустимый размер памяти 262144
128000000 @ 128MB или apache не знают 128000000
Мы не знаем, как обработчик php ini обрабатывает ваш запрос, когда вы не используете стандартный способ записи объема памяти с помощью буквы в конце.
Одно можно сказать наверняка, хотя даже не до 262144, 128 000 000 никогда не будет 128 Мбайт, но больше как 122 МБ, потому что, как я уверен, вы знаете 1 МБ = 1024 * 1024 байта!
Если вам действительно нужно то, что вы делаете, вы можете попробовать: 128000000b (обратите внимание на «b» в конце номера), но я не уверен, что разработчик php ini parser думал, что кто-то будет бросать в них байты.
Правильный способ – использовать блок ( 128M
)
Поведение по умолчанию, если задано целое число, состоит в том, чтобы интерпретировать его как байты. См. http://php.net/manual/en/ini.core.php . И как сказал Яхель 1МБ = 1024 байта. Поэтому, если вы хотите 128 МБ, вы либо пишете в «128M», либо «134217728»,
Также помните, что вы всегда можете проверить, для чего установлен лимит памяти с помощью phpinfo();
Если ваш php не был скомпилирован с пределом –enable-memory-limit в строке конфигурации (если вы используете версию раньше 5.2.1), то ничего из этого не будет работать.
Вы должны написать, как показано ниже.
он должен быть кратным 8 memory_limit = 128M; Максимальный объем памяти, который может потреблять сценарий (128 МБ)
По умолчанию он занимает память в МБ.