nginx не читает смонтированные / usr / share / nginx / html

881
AJN

Цель:

Я использую контейнер NGINX, в котором я монтирую удаленную файловую систему SSHFS в / usr / share / nginx / html, цель состоит в том, чтобы каждый раз использовать новый контейнер nginx без сохранения состояния, но с таким же постоянным содержимым.

Выполненные шаги:

Убедитесь, что сервер SSHFS запущен и работает.
В контейнере nginx (клиент sshfs) я смонтировал удаленную файловую систему sshfs в / usr / share / nginx / html

/ # sshfs root@X.X.106.181:/data /usr/share/nginx/html root@X.X.106.181's password: / # 

-Гора выглядит отлично:

/ # mount | grep sshfs  root@35.185.106.181:/data on /usr/share/nginx/html type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)   / # df -h Filesystem Size Used Avail Use% Mounted on  rootfs 886G 681G 161G 81% /  none 886G 681G 161G 81% /  tmpfs 7.9G 0 7.9G 0% /dev  tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup  /dev/sda1 886G 681G 161G 81% /gns3  shm 64M 0 64M 0% /dev/shm  root@X.X.106.181:/data 976M 2.6M 907M 1% /usr/share/nginx/html  

-Поставьте туда пару файлов, и они будут доступны для чтения всем:

/ # ls -la /usr/share/nginx/html  total 36 drwxr-xr-x 1 root root 4096 Aug 20 11:48 . drwxr-xr-x 5 root root 4096 Aug 20 11:36 .. -rw-r--r-- 1 root root 537 Aug 20 11:48 50x.html -rw-r--r-- 1 root root 612 Aug 20 11:48 index.html  drwx------ 1 root root 16384 Aug 20 11:23 lost+found -rw-r--r-- 1 root root 310 Aug 20 11:48 test.php 

Желаемый результат:

Каким бы ни был новый контейнер nginx, я монтирую удаленный SSHFS, и у меня есть та же информация, которую просматривает пользователь.

Полученный результат:

Nginx не читает содержимое / usr / share / nginx / html. Он действует как нет индексного файла.
В браузере ничего не отображается:

nginx не читает смонтированные / usr / share / nginx / html


Журналы nginx:

/ # tail /var/log/nginx/error.log 2017/08/20 15:47:16 [crit] 139#0: *3 stat() "/usr/share/nginx/html/" failed (13: Permission denied), client: 192.168.122.247, server: ajnouri.local, request: "GET / HTTP/1.1", host: "192.168.122.100"  2017/08/20 15:47:16 [crit] 139#0: *3 stat() "/usr/share/nginx/html/404.html" failed (13: Permission denied), client: 192.168.122.247, server: ajnouri.local, request: "GET / HTTP/1.1", host: "192.168.122.100"  2017/08/20 15:47:16 [crit] 139#0: *3 stat() "/usr/share/nginx/html/404.html" failed (13: Permission denied), client: 192.168.122.247, server: ajnouri.local, request: "GET / HTTP/1.1", host: "192.168.122.100"  

Похоже, "www-data" нужно записать в каталог.

####################### ОБНОВИТЬ

Итак, удалось сделать пользователя «www-data» обычным пользователем на сервере, и клиенту sshfs удалось смонтировать «/ var / www» с помощью «www-data»

На сервере я сменил владельца домашнего каталога "www-data" (/ var / www) на www-data: www-data

/ # chown -R www-data: www-data / var / www

/ # ls -la /var/www total 36 drwxr-xr-x 1 www-data www-data 4096 Aug 20 11:48 . drwxr-xr-x 5 root root 4096 Aug 20 11:36 .. -rw-r--r-- 1 www-data www-data 537 Aug 20 11:48 50x.html -rw-r--r-- 1 www-data www-data 612 Aug 20 11:48 index.html drwx------ 1 www-data www-data 16384 Aug 20 11:23 lost+found -rw-r--r-- 1 www-data www-data 310 Aug 20 11:48 test.php 

######################

Кажется, не решить проблему.


Контейнер Nginx (клиент sshfs) и сервер sshfs используют одну и ту же ОС:

/ # lsb_release -a  Distributor ID: Ubuntu Description: Ubuntu 14.04.1 LTS Release: 14.04 Codename: trusty 
0
Какие ошибки вы видите в логах сервера nginx? Jakuje 6 лет назад 2
Спасибо @Jakuje. Я забыл про логи. Добавлено к вопросу. AJN 6 лет назад 0
Не будет ли хорошей идеей монтировать каталог с разрешениями пользователя nginx, а не оставлять его доступным для чтения? Ошибка очевидно в том, что он не может их прочитать (по какой-либо причине). Jakuje 6 лет назад 0
@Jakuje Я изменил владельца каталога на www-data: www-data, но это не решает проблему. AJN 6 лет назад 0

2 ответа на вопрос

0
Quarind
  1. Попробуйте смонтировать sshfs по www-данным как здесь
  2. Попробуйте установить корневой каталог вне sshfs и подключиться к сайту.
  3. Проверьте, что у вас есть строка в конфигурации

    index index.html index.htm;

или подключитесь к сайту по полной ссылке, например 192.168.0.20/index.html

  1. tail -f вы nginx доступ и журналы ошибок
Привет @Quarind, мне удалось подключиться к серверу sshfs с помощью пользователя www-data (как обычного пользователя) и сменить владельца его домашнего каталога на сервере на www-data. без изменений, но в разрешении отказано AJN 6 лет назад 0
0
LordAro

Для тех, кому это может помочь в будущем, у меня возникла эта проблема, и после небольшого поиска я обнаружил, что добавление -o allow_otherк вызову монтирования сумело заставить его работать

Понятия не имею, что он делает под капотом или почему это необходимо (установка uid или gid ничего не делает), но мы идем.

Источник: https://stackoverflow.com/questions/29330382/how-to-enable-writing-to-sshfs-directory-in-php

Похожие вопросы