По идее, php вообще здесь участвовать не должен. Все, что делает php, это
проверяет ключ доступа. Далее делается редирект на nginx для отдачи файла.
В конфиге у меня прописано:
location /files {
internal;
root /usr/local/www/apache22/data/sites/mysite/htdocs;
}
а в скрипте после проверки доступа выполняется следующий код:
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $filename . '";');
header("X-Accel-Redirect: /files/" . $filename);
В таком случае (как я понимаю) php и apache при отдаче файла задействоваться не
должны.
Вы уверены, что у Вас этот локейшн работает? Судя по логу, у Вас
файлообменник, и если Вы не правили движок, то там переменные немного
другие. Проверить, работает ли у Вас локейшн можно путем установки
ограничения в движке на скорость скачки файла, если ограничение будет
выполнятся, локейшн у вас не работает.