2014-05-10 97 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

真的很有幫助。謝謝。 –