Похоже, это проблема с разрешениями. Nginx работает как пользователь nginx
, но файлы принадлежат root
и не имеют глобальных разрешений на чтение, то есть пользователь nginx
не может их видеть.
Во-первых, не запускайте ngninx от имени root! Это очень плохо. Если кто-то скомпрометирует ваш сайт, он может получить root-доступ к серверу.
Существует несколько подходов к решению этой проблемы. Это самый простой способ - просто изменить владельца файлов на nginx
:
chown -R nginx:nginx /home/nginx/domains/XYZDomain.com
Конечно, вы должны помнить, чтобы сделать это для любых новых файлов, которые вы создаете
Вы также можете изменить только группу для файла на nginx
и сделать их читабельными для группы:
chgrp -R nginx /home/nginx/domains/XYZDomain.com
chmod -R g+r /home/nginx/domains/XYZDomain.com
Второй подход немного более безопасен, потому что nginx не имеет разрешений на запись и может только читать файлы. Однако это может вызвать другие проблемы, если у вас есть сценарии, которые должны динамически создавать или редактировать файлы.
В отношении разрешений и веб-серверов есть еще много чего, что может привести к проблемам с безопасностью, а здесь слишком много. Вы можете найти много информации на stackoverflow.com, если вам интересно.