Поискал в инете всё на эту тему - решения не нашёл. Отметил что проблема встречается часто и давно.
Ситуация такая:
есть nginx/1.6.2 и вирутальный сервер в ~/html - настроен на один домен. Всё работает.
nginx работает под пользователем www-data, владелец ~/html - другой пользоователь. Права на на чтение для всех.
Что делаю дальше:
копирую ~/html в ~/html-bc - все права остаются соответственно
копирую /etc/nginx/sites-enabled/site1.conf в /etc/nginx/sites-enabled/site2.conf (имена условные)
в этом файле меняю server_name и root и имена лог-файлов
перезапускаю сервер.
Результат: при обращении к site2 - в логе
2015/04/30 12:54:41 [crit] 29091#0: *76 open() "/home/user/html-bc/test.php" failed (13: Permission denied), client: 194.1.195.216, server: *.site2.com, request: "GET /test.php HTTP/1.1", host: "www.site2.com"
права на этот файл есть, даже если "зайти" под пользователм www-data - и файл виден и содержимое.
если в настройках сервера для домена site2 поменять root - на html (вместо html-bc) тогда всё работает: виден один сайт под разными доменами. Но любое другое значение в поле root приводит к такой ошибке.
на сервере работает ещё php-fpm и memcached - но сервер один и тот-же , настройки для всех одинаковые, но для одной директории (в качетвет root виртуального сайте ) работает, а для других нет.
что за магия?