Попытка запустить проект 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
Я получил:
Операция не поддерживается
Я могу запустить команду в любом другом каталоге или файле на ФС (вне общего каталога), и команда работает. Что дает?
virtualbox
vagrant
symfony
Джош Нанкин
источник
источник
Ответы:
Чтобы обойти все проблемы с разрешениями в Symfony2 и Vagrant, самое простое решение - изменить пользователя и группу, работающую с apache, на vagrant. Для этого отредактируйте файл / etc / apache2 / envvars и замените строки 16 и 17 на следующие: export APACHE_RUN_USER = vagrant export APACHE_RUN_GROUP = vagrant Обратите внимание, что эти инструкции относятся к apache 2.2 в Ubuntu, обратитесь к вашей версии apache и OS, чтобы сделать так.
Если вы не хотите менять пользователя и группу apache, вы также можете смонтировать виртуальный диск и поместить на него свой проект symfony. Затем vagrant может изменить разрешения на этом диске. Смотрите эту ссылку для получения инструкций о том, как смонтировать виртуальный диск.
источник
Лучшее решение - переопределение атрибутов. Смотрите Opscode Wiki .
Например, в определении ролей:
У меня была та же проблема с Typo3 в общей папке, не удалось создать временные файлы.
источник