Назад | Перейти на главную страницу

запуск setfacl в бродячем общем каталоге

Попытка запустить проект Symfony2 с бродячей виртуальной машиной. Я видел миллионы статей по этому поводу, но получение правильных разрешений для каталога кэша оказалось мучительно болезненным.

В моем Vagrantfile:

config.vm.share_folder("src", "/var/www", "../www")

Моя виртуальная машина fstab файл:

proc            /proc           proc    nodev,noexec,nosuid 0       0
/dev/mapper/ubuntu--1110-root /               ext4    acl,errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=4ed7eaaf-6f42-48ba-b5ed-f0c1df9add38 /boot           ext2    defaults        0       2
/dev/mapper/ubuntu--1110-swap_1 none            swap    sw              0       0

На виртуальную машину установлен пакет acl.

Когда я запускаю следующее в / var / www в соответствии с инструкциями по установке Symfony2:

 sudo setfacl -R -m u:apache:rwx -m u:username:rwx app/cache app/logs

Я получил:

Операция не поддерживается

Я могу запустить команду в любом другом каталоге или файле в FS (вне общего каталога), и команда работает. Что дает?

Чтобы обойти все проблемы с разрешениями с Symfony2 и Vagrant, самым простым решением является изменение пользователя и группы, запускающей apache, на vagrant. Для этого отредактируйте файл / etc / apache2 / envvars и замените строки 16 и 17 следующими: export APACHE_RUN_USER = vagrant export APACHE_RUN_GROUP = vagrant Обратите внимание, что эти инструкции предназначены для apache 2.2 в Ubuntu, обратитесь к вашей версии apache и ОС, чтобы сделать так.

Если вы не хотите менять пользователя и группу apache, вы также можете смонтировать ramdisk и поместить на него свой проект Symfony. Затем бродяга может изменить разрешения на этом диске. Видеть эта ссылка для получения инструкций о том, как смонтировать рамдиск.

Лучшее решение - использовать переопределение атрибутов. Видеть Opscode вики.

Например, в определении ролей:

override_attributes({
    "apache" => {
      "user" => "vagrant",
      "group" => "vagrant"
    }
})

У меня была такая же проблема с Typo3 в общей папке, когда не удалось создать временные файлы.