2014-05-10 101 views
5

我在Windows上使用Vagrant与PuPHPet(Debian 7和PHP 5.4)上创建一个框。我使用Symfony 2安装了一个新项目,并且有一些错误可以清除缓存,如“无法重命名”或“无法移除目录”。无法清除与缓步Symfony缓存

我使用的是默认配置,但也试过:

  • 使NSF

  • 遵循的Symfony guide

  • 的 “设置权限” 部分指定WWW的数据为用户/ group for/var/www

  • 更改vagrant as apache用户/组

并没有改变,仍然是相同的错误。

如何在Vagrant上对Symfony的缓存设置正确的权限?

谢谢

+0

当你将'vagrant'改成apache'user/group'时,你也应该为'/ var/www'指定'vagrant'作为用户/组(也可以提早更改为'www-data' )。 – xiidea

+0

Iam不熟悉PhPHPNet ..但我假设您使用的是同步文件夹。你流浪文件是否包含 所有者:“www-data”,组:“www-data”,mount_options:[“dmode = 755,fmode = 644”]。你也可以试试[“dmode = 777,fmode = 777”]。你可以在Windows机器上配置symfony console命令并从Windows执行。如果你不能用vm提供程序(例如VirtualBox的问题)可能会出错,请尝试从虚拟框中删除缓存中的文件夹(例如old_dev) –

+0

我尝试了mount_options:[“dmode = 777,fmode = 777 “]仍然是同样的问题。如果我从Windows清除缓存,那么Symfony会在Windows和Linux路径中混合使用另一个错误:“ContextErrorException:Warning:file_get_contents(E:/ www/test/app/Resources \ views/base.html.twig):failed打开流:没有这样的文件或目录在/var/www/test/vendor/symfony/symfony/src/Symfony/Component/Templating/Storage/FileStorage.php 32行“ – skurty

回答

2

PHPStorm(有社区版)具有自动上传功能,这是我成功地用于流浪文件共享。但是,您需要禁用Vagrant的文件共享(无论如何,NFS都不能在Windows中使用)。

这是一个说同步,因此你需要从盒子里面清除缓存。


设置>部署(路径设置页面取决于IDE版本)增加部署服务器:

连接选项卡:

Type: SFTP 
Host: box IP 
Port: 22 
Username: vagrant 
Password: vagrant 

如果我没有记错PuPHPet禁用密码登录有利于基于密钥 的访问,所以使用适当的方法(密钥公开存储在puphpet的回购中)。

映射选项卡:

Local path: project root locally 
Deployment path: project root in box 

设置>部署>选项:

Upload automatically: Always 
Upload external changes: Yes 
Delete target items when source does not exist: Yes 

有NFS放浪插件适用于Windows,但我无法得到它的运行2015年3月。

还有一个来自Vagrant的同步方法,它同时提供单向同步,但我更喜欢PHPStorm的autoupload。

+0

真的很有帮助。谢谢。 –