У меня есть два RHEL 7 машин.
Я установил nginx и php-fpm и устанавливаю nfs, монтируются. Я могу чтение-запись к nfs монтироваться без проблем, и у меня есть другой сервер приложений (Apache Geronimo), который может считать запись в него.
Когда я установил nginx, он устанавливает nginx пользователя, которого я создал на файловом сервере NFS с тем же uid и ценурозом.
Я могу перечислить файлы на клиенте nfs, монтируют использование nginx пользователя. Однако, когда я пытался подать статический HTML или динамические php файлы с помощью nginx от nfs, я получаю ошибку разрешения:
*5 stat() "/usr/depot/repository/test.php" failed (13: Permission denied)
*5 open() "/usr/depot/repository/test.html" failed (13: Permission denied)
Кроме того, я создал папку под/usr/depot/testing с теми же полномочиями (просто не была nfs), и это работало просто великолепно.
Вот монтирующаяся информация о клиенте.
xxx.xxx.xxx.xxx:/mnt/repository on /usr/depot/repository type nfs4 (rw,nosuid,nodev,noexec,relatime,vers=4.0,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=xxx.xxx.xxx.xxx,local_lock=none,addr=xxx.xxx.xxx.xxx)
Я не вижу ничто плохого с этой установкой, таким образом, я в замешательстве относительно того, почему nginx не может считать файлы из доли nfs.
Обновление
Хорошо я просто отключил перезагрузку SELinux, и это зафиксировало ее. Теперь вопрос состоит в том, как я настраиваю SELinux так, чтобы nginx мог получить доступ к удаленному серверу.
В RHEL 7 те же политики SELinux, которые применяются к Apache, также применяются к nginx. Таким образом, вы можете использовать те же логические значения:
httpd_use_nfs (off , off) Allow httpd to use nfs
Установите правильное логическое значение, чтобы разрешить веб-серверу использовать NFS.
setsebool -P httpd_use_nfs 1
Поскольку это первый результат в Google для этой проблемы, я решил добавить свое решение.
В моем случае SELinux был отключен, так что это не так. Моя проблема заключалась в том, что php-fpm работал как apache. Итак, на моих веб-серверах CentOS 7 (при условии, что вы создали пользователя nginx на файловом сервере в соответствии с OP) я меняю пользователя и группу на nginx в /etc/php-fpm.d/www.conf и перезапускаю php-fpm.