move_uploaded_file создание недоступных (403 запрещенных) файлов под nginx

Я создал простой скрипт загрузки на php, который берет файл, отправленный из формы, и помещает его в желаемый каталог. Проблема в том, что по какой-то причине, когда вы пытаетесь показать этот файл в браузере, сервер отвечает сообщением 403 - Forbidden. Фактически, я изменил сценарий, поэтому он сначала делает копию файла из папки tmp, а затем перемещает его с другим именем:

copy($_FILES['photo']['tmp_name'],$new_file_name);
move_uploaded_file($_FILES['photo']['tmp_name'], 'm_'.$new_file_name);

Таким образом, если я загружаю file.jpg, он создает file.jpg (скопировано) и m_file.jpg (перемещено). На сервере оба файла находятся в одной папке и выглядят одинаково, с одинаковыми разрешениями, пользователем и группой, за исключением того, что domain.com/file.jpg показывает изображение, а domain.com/m_file. jpg возвращает ошибку 403.

Если я отключу nginx и заставлю его работать с apache, все будет нормально. Я пересмотрел файлы конфигурации nginx, но в них нет ничего странного (на самом деле используется конфигурация по умолчанию)

Обновление: странным образом кажется, что проблема проявляется только в конфигурациях, где версия PHP выше 5.3 и выполняется как «приложение fpm, обслуживаемое nginx». Таким образом, он отлично работает с 5.3.3, но не работает с php 5.5 или 7, если вы не запустите его как «приложение fastCGI, обслуживаемое Apache».


person Borgtex    schedule 25.08.2016    source источник
comment
Я не совсем понимаю, как это может нормально работать, пока вы останавливаете свой веб-сервер? Кроме того, уверены ли вы, что браузер не показывает кешированную версию изображения при запросе domain.com/file.jpg? Возможно, это тоже недоступно   -  person Pavel Sadchenko    schedule 25.08.2016
comment
Извините, я имел в виду, что он работает при использовании apache (сервер по умолчанию использует его, когда nginx не активен), после его перезапуска и всего остального, а не когда он остановлен (конечно). Кроме того, да, я полностью уверен, что это не кешированная версия   -  person Borgtex    schedule 25.08.2016
comment
Возможно кеширование статических файлов nginx? См. stackoverflow.com/a/13116771/2908724   -  person bishop    schedule 25.08.2016
comment
нет, отключение sendfile в nginx.conf и перезапуск сервера не имеет никакого значения   -  person Borgtex    schedule 25.08.2016