Symfony警告:重命名(../app/cache/dev,../app/cache/dev_old):访问被拒绝.(代码:5)

Vis*_*mar 7 symfony

我正在研究Symfony项目.

当我尝试做:

php app/console cache:clear
Run Code Online (Sandbox Code Playgroud)

我得到以下ErrorException:

Warning : rename (../app/cache/dev , ../app/cache/dev_old ) : Access Denied . (Code : 5) in ../vendors/Symfony/src/Symfony/Bundle/FrameworkBundle/Command/CacheClearCommand.php on line 76
Run Code Online (Sandbox Code Playgroud)

这里有什么问题?我已经在我的机器上为用户授予了所有权限(Windows 7操作系统).任何想法为什么会发生?

谢谢.

lee*_*eek 11

确保文件未被使用(如meze指出).如果您使用的是TortoiseGit或Netbeans等,请务必将cache文件夹标记为已忽略,以便不访问它们.

如果所有其他方法都失败了,请下载Unlocker之类的免费程序,这样您就可以快速轻松地从您尝试修改的文件/文件夹中分离正在运行的进程.

  • 删除该解锁器的链接.它安装了15个crapware和工具栏,搞砸了一堆文件关联.我花了将近一个小时来修复损坏.扫描我的comp以确保它不会潜入一些病毒. (4认同)
  • 2年后 - >仍然有用. (3认同)

Bla*_* B. 6

为了扩展leek的帖子,Symfony 2缓存清除操作在清理期间将缓存的项目拖放到不同的文件夹中.此过程的一部分包括创建cache/dev-new /和cache/dev-old/folders.

如果您正在使用Eclipse或其他动态监视项目中子文件夹的IDE,IDE将几乎立即发现新文件夹创建并在这些文件夹中查找新文件(在Eclipse中,我注意到DLTK模块在Progress View中不断地执行此操作).遗憾的是,这可能会妨碍想要重命名和/或删除这些文件夹的Symfony.

特别是在Windows 7 64位上使用Eclipse Indigo,您可以通过右键单击项目并选择"构建路径">"配置"来从构建路径中删除缓存/,缓存/ dev /,cache/dev_old /和cache/dev_new /文件夹.构建路径...".这最初对我没有影响; 我一直看到DLTK模块试图索引缓存文件夹.我最终卸载了Aptana Studio插件,关闭所有Editor文档,关闭Eclipse,手动删除缓存/文件夹中的子文件夹,运行Symfony缓存:清除,然后启动Eclipse并重新安装Aptana.似乎到目前为止已经奏效.


qai*_*ais 5

Symfony 2.0.x和Symfony 2.1.x是一个问题。这些的解决方法:

打开文件: src\Symfony\Bundle\FrameworkBundle\Command\CacheClearCommand.php

并sleep(1);在execute()函数中添加目录创建失败的语句:

    //...
    rename($realCacheDir, $oldCacheDir);
    sleep(1);
    rename($warmupDir, $realCacheDir);
    //...
Run Code Online (Sandbox Code Playgroud)

您可能必须重新打开CLI两次并运行cache:clear,但此后它可以解决问题。