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

时间:2012-01-30 10:22:12

标签: symfony

我正在研究Symfony项目。

当我尝试做的时候:

php app/console cache:clear

我收到以下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

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

谢谢。

7 个答案:

答案 0 :(得分:11)

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

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

答案 1 :(得分:6)

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

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

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

答案 2 :(得分:5)

这是Symfony 2.0.x和Symfony 2.1.x的问题。这是一个workaround

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

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

    //...
    rename($realCacheDir, $oldCacheDir);
    sleep(1);
    rename($warmupDir, $realCacheDir);
    //...

您可能需要重新打开CLI两次并运行cache:clear,但之后会解决问题

答案 3 :(得分:1)

如果您将文本编辑器用作Sublime Text,请尝试忽略缓存文件的路径

转到“偏好设置/设置”

编辑配置文件

{
...
     "folder_exclude_patterns": ["var","node_modules",  ".git"],
...
}

就我而言

缓存文件夹容器。

Symfony 4

/ var

Symfony 2

/ app / cache

好的编码!

答案 4 :(得分:0)

为了让我一劳永逸,我在Windows 7下的MyProject文件夹中创建 clear.bat 文件。

rmdir d:\symfony\framework-standard-edition\app\cache\  /S /Q

我保证100%有效清理缓存。第一次刷新网站后可能会出现一些小问题:Symfony必须重新创建一些他们需要的文件夹。

答案 5 :(得分:0)

我在Symfony 4.1.13中遇到了同样的问题,根本原因是VS代码正在使用文件“ var / cache / dev / srcDevDebugProjectContainer.xml4QSKuA”。

问题是无法重命名“ var / cache / dev / srcDevDebugProjectContainer.xml4QSKuA”。

我修复了在“要排除的文件”字段上添加** / var的问题,

请参阅以下步骤:

1º步骤:

Firs Step

2º步骤搜索“ exclude”(排除)单词,然后将** / var / cache添加为下图:

Second Step

对我有用。

答案 6 :(得分:-1)

SYMFONY和ANTIVIRUS

在我的情况下,本地Windows机器中的多个symfony调用与一些防病毒软件(如NOD)交叉。从实时保护中排除symfony缓存文件夹