试图让一个Symfony2项目启动并运行一个stream浪虚拟机。 我已经看到了很多关于此的文章,但正确地获得caching目录的权限被certificate是非常痛苦的。
在我的Vagrantfile :
config.vm.share_folder("src", "/var/www", "../www")
我的VM的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软件包已经安装在虚拟机上。
当我根据Symfony2安装指示在/ var / www中运行以下内容时:
sudo setfacl -R -mu:apache:rwx -mu:username:rwx app/cache app/logs
我得到:
操作不支持
我可以在FS上的任何其他目录或文件(在共享目录之外)上运行该命令,并且该命令有效。 是什么赋予了?
为了绕过Symfony2和Vagrant的所有权限问题,最简单的解决scheme是将运行apache的用户和组更改为无用的。 要这样做,编辑文件/ etc / apache2 / envvars,并用这些replace第16行和第17行:export APACHE_RUN_USER = vagrant export APACHE_RUN_GROUP = vagrant请注意,这些说明适用于Ubuntu上的apache 2.2,请参考您的apache和操作系统版本所以。
如果你不想改变apache用户和组,你也可以挂载一个ramdisk,并把你的symfony项目放在它上面。 那么vagrant可以修改这个磁盘上的权限。 有关如何安装虚拟磁盘的说明,请参阅此链接 。
更好的解决scheme是使用属性重写。 请参阅Opscode Wiki 。
例如在angular色定义中:
override_attributes({ "apache" => { "user" => "vagrant", "group" => "vagrant" } })
我在Typo3的共享文件夹中遇到了同样的问题,无法创build临时文件。