Задать вопрос
@NonRealDeveloper

Nginx возвращает 403, при том, что index имеется?

В nginx не силён, сегодня столкнулся с небольшой проблемой.


Если указать:
location / {
		root   /home/www/site.ru;
		index  index.html index.htm;
	}


то всё работает


Если же указать:
location / {
		root   /home/anotheruser/repos/site.ru;
		index  index.html index.htm;
	}


то возращает 403 при запросе site.ru и это при том, что директория имеется, и в ней лежит файл index.html.


Собственно вопрос — как мне заставить работать сайт из директории /home/anotheruser/repos/site.ru?


Версия nginx: 1.0.4.

В директории /home/anotheruser/repos/site.ru находится репозиторий mercurial, сервер mercurial запущен от пользователя anotheruser — может это как-то влияет?


p.s.: Была идея создать жесткую ссылку с директории /home/anotheruser/repos/site.ru на директорию /home/www/site.ru
  • Вопрос задан
  • 14430 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 8
xaker1
@xaker1
403 — доступ запрещен.
Может у пользователя, под которым работает nginx нет прав на чтение /home/anotheruser/repos/site.ru?
Ответ написан
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Чудес не бывает. Смотрите chmod, chown, acl, apparmor, selinux. Так же энджайникс не всегда ходит по симлинкам и хардлинкам, условия я уже не помню.
Ответ написан
VBart
@VBart
Почему бы не добавить пользователя от которого работает nginx в группу от которой работает ваш mercurial? Вы ведь именно этого хотите.
Ответ написан
Комментировать
@NonRealDeveloper Автор вопроса
права имеются, 755 на все папки начиная с /home/anotheruser и заканчивая /home/anotheruser/repos/site.ru
Ответ написан
@b0beR
И все таки вероятнее всего не выставлены права на одну из родительских папок
Если хотя бы к одной из них у пользователя, от имени которого запущен nginx, нет прав на чтение, то будет 403.
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
ls -lF
файлов и папки
Ответ написан
@NonRealDeveloper Автор вопроса
Временно решил проблему — в .hg/hgrc проекта прописал:
[hooks]
changegroup = hg update >&2 && cp -R /home/hg/repos/site.ru/* /home/www/site.ru >&2

И поставил права на запись на директорию /home/www/site.ru.
Теперь при каждом hg push происходит автообновление сайта.
Ответ написан
Комментировать
Ermak1
@Ermak1
Web-dev
Тоже столкнулся с такой проблемой. site.ru/index.php открывается, а просто site.ru выдаёт 403. Решил проблему оставив в настройках хоста root /var/www/site.ru и создал символическую ссылку site.ru в папке /var/www/ на /home/user/www/site.ru
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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