post_max_size и memory_limit - удивительное рядом

slach

Новичок
post_max_size и memory_limit - удивительное рядом

0) php5.2.3 - FastCGI + apc

1) phpinfo() показывает
memory_limit=32M
post_max_size =30M
мануал по этому поводу говорит следующее
http://php.net/manual/en/ini.core.php#ini.post-max-size
If memory limit is enabled by your configure script, memory_limit also affects file uploading. Generally speaking, memory_limit should be larger than post_max_size.
2) wget -d --no-check-certificate --post-file файл_15_мегабайт.zip --header="Content-Type: application/zip" "https://dev.server.ru/upload_test.php" -O response.txt

3) php5-error.log -
[06-Aug-2007 13:10:23] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 15727470 bytes) in Unknown on line 0
когда PHP успевает под мой файл выделить больше 32 мегабайт памяти???

4) текст скрипта обычный phpinfo()

5) при увеличении memory_limit до 64M все отрабатывает НОРМАЛЬНО

при этом memory_get_usage() показывает 47 (= 32 + 15) мегабайт памяти... ЧЕ ЗА ФИГНЯ??? где про это прочитать???
это особенность поведения FastCGI???

в чем грабли??
 

kamatoz

Новичок
а файл точно только закачивается, ничего с ним на сервере не делаете?
 

slach

Новичок
kamatoz
до веб-сервера (nginx) файл доходит нормально

в php не закачивается файл
закачивается БИНАРНЫЙ POST поток, это не File Uploading Handler - это просто запись в POST

Ошибка видите в 0 строке, СООТВЕТСВЕННО с файлом НИЧЕГО сделать не успеваем
никакой код к этому моменту не отработал еще

АУУУУ... ТОНИ, *****, admin ???

может мне кто нибудь НОРМАЛЬНО объяснить как сейчас коррелируется размер буферов memory_limit и post_max_size???

что с чем складывается и по какой причине???

при установке memory_limit=48M и post_max_size=24M
скрипт тоже сработал

при установке memory_limit=44M и post_max_size=22M
скрипт УЖЕ НЕ СРАБОТАЛ вывалился по ошибке

откуда под 15 мегабайт обычного POST выделяется такое нереальное количество памяти???
 
Сверху