Ребята девчата, привет.
Подскажите пожалуйста, в чем моя ошибка в даннм случае.
Я запускаю Docker-контейнер с пробросом в него локальной папки
docker run -d --rm --name devilbox-php-fpm-5-3 -p 9000:9000 -v /var/www/site.ru/www:/var/www/default/htdocs devilbox/php-fpm-5.3
а в апаче при этом в vhosts у одного сайта указал sethandler для файлов .php, чтобы апач их обрабатывал через контейнер через порт 9000.
и все у меня замечательно заработало! Почти все...
При обращении к некоторым файлам .php я получаю ошибку 500, при этом в логах докер-контейнера вижу, что php-fpm в контейнере ругается на Premission denied запрашиваемого файла.
В файлы в папке на хост-машине имеют права
-rwxr-x-r-x www-data:www-data index.php
А php-fpm в контейнере работает от имени www-data.
Но если сделать например
chmod 777 index.php
то все работает.
Также если зайти в консоль контейнера, и попробовать изменить файл в примонтированной директории с файлами, то они меняются и на хост-машине. То есть с доступом на запись все ок.
Вот тут то я и запутался:
Какие права нужно устновить файлам, или наоборот, как запустить контейнер, чтобы php-fpm в контейнере имел доступ к этим файлам.
У меня в голове такая каша нарисовалась:
- хостмашина(root) имеет доступ на чтение/выполнение файла
- хостмашина(www-data) имеет доступ на чтение/выполнение файла
- контейнер(root) имеет доступ на чтение/выполнение файла
- контейнер(www-data)
НЕ имеет доступ на чтение/выполнение файла