Я пытаюсь настроить Vagrant с проектом Symfony, используя поле "ubuntu/trusty64". В моем файле инициализации есть следующее:
echo "Installing acl"
apt-get install acl
mount -o remount,acl /
echo "Setting symfony log and cache permissions"
HTTPDUSER='ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1'
setfacl -R -m u:"$HTTPDUSER":rwX -m u:'whoami':rwX /var/www/app/cache /var/www/app/logs
setfacl -dR -m u:"$HTTPDUSER":rwX -m u:'whoami':rwX /var/www/app/cache /var/www/app/logs
Однако setfacl не работает с setfacl: /var/www/app/cache: Operation not supported
Если я запустил mount | grep acl
mount | grep acl
Я вижу корневой диск, который предполагает, что acl - это правильная настройка в корневом разделе.
Без этих настроек разрешений я не могу запускать какие-либо команды генератора symfony.
Я решил решить эту проблему с помощью решения Vagrant для доступа к папке с помощью nginx, который должен изменить пользователя nginx для бродяг.
Проверить ссылку: http://symfony.com/doc/current/book/installation.html
3. Использование ACL в системе, которая не поддерживает chmod +a
Некоторые системы не поддерживают chmod +a, но поддерживают другую утилиту, называемую setfacl. Возможно, вам потребуется включить поддержку ACL на вашем разделе и установить setfacl перед ее использованием (как в случае с Ubuntu). Это использует команду, чтобы попытаться определить вашего пользователя веб-сервера и установить его как HTTPDUSER:
$ HTTPDUSER='ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1'
$ sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:'whoami':rwX app/cache app/logs
$ sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:'whoami':rwX app/cache app/logs