Как победить [crit] 8909#8909: *12930 openat() «link file» failed (13: Permission denied), client: 192.168.0.1, server: site.ru?

Ошибка "openat() «link file» failed (13: Permission denied)" в nginx обычно возникает из-за проблем с разрешениями доступа к файлам или каталогам. В данном случае сервер nginx пытается открыть файл, но у него нет необходимых прав на это действие.

Чтобы решить эту проблему, вам необходимо выполнить следующие шаги:

1. Проверьте права доступа к файлам и каталогам, указанным в конфигурации nginx. Убедитесь, что пользователь, от имени которого работает nginx (обычно это пользователь www-data или nginx), имеет права на чтение и выполнение файлов и на чтение и выполнение каталогов.

2. Убедитесь, что права доступа к файлам и каталогам установлены правильно. Для файлов это обычно 644 (rw-r--r--) или 755 (rwxr-xr-x), а для каталогов 755 (rwxr-xr-x) или 775 (rwxrwxr-x).

3. Проверьте наличие SELinux или AppArmor на сервере. Они могут ограничивать доступ к файлам и каталогам. Если они установлены, настройте их правила таким образом, чтобы nginx мог получить доступ к нужным файлам.

4. Перезапустите сервис nginx после внесения изменений в конфигурацию или права доступа к файлам и каталогам.

5. Если проблема все еще остается, попробуйте изменить владельца и группу файла на пользователя, от имени которого работает nginx. Это можно сделать с помощью команды chown:

sudo chown www-data:www-data /путь/к/файлу

Следуя этим шагам, вы сможете решить проблему с доступом к файлам и каталогам в nginx и избежать ошибки "openat() «link file» failed (13: Permission denied)".