Миха Панкратов: 2016/05/31 07:58:44 [emerg] 8893#8893: open() "/home/max/work/tizbi/log/fhca_access.log" failed (2: No such file or directory)
проверьте путь, какой-то директории нет
Дмитрий: будет не совсем корректно сравнивать, ngnx+fpm а apache + php_module. Но вы попробуйте. А чем вам проверка на клиенте не подходит? Вроде все браузеры это умеют.
Думаю что на ваш вопрос кроме разработчиков пхп никто не ответит. Можете еще почитать исходники самого пхп. Ну или я плохо умею гуглить :)
Предположу лишь то, что для проверки на стороне пхп, нужно дождаться сигнала о том заливка произошла (сырые данные будут в темповой папке) и после этого делается на уровне системы get size && check size
Дмитрий: не, я понял, вы нас не до конца понимаете. Смотрите, первое с чем взаимодействует браузер, это сервер nginx. Забудьте про php. На странице заливки файла вы выбираете файл 1гб, затем жмете отправить, и этот запрос уходит на nginx. PHP узнает об этом файле только тогда когда nginx загрузит весь файл целиком.
Дмитрий: у нас в продакшене разные версии nginx. Поверьте, если там нет огромной логики, а у вас скорее всего нет, то на любой версии будет одинаково +-.
Вам Сергей Протько уже написал. Давайте попробую я.
Nginx (1G) -> PHP (100M) -> ваше приложение (в коде могут быть тоже ограничения любые)
Вся эта цепочка синхронная. Т.е. пока nginx не загрузит файл к себе в кеш -- дальше файл не пойдет. Как только он загрузил весь файл он его отдает в php и так далее.
Можете представить правила как воронку. Каждый раз разрешенный размер уменьшается.
Дмитрий: у нас связка nginx+php-fpm и мы держим примерно 500 rps. Nginx проверен временем давно. В вашем случае нужно внимательно смотреть конфиги и читать логи.