【问题标题】:Symfony Warning : rename (../app/cache/dev , ../app/cache/dev_old ) : Access Denied . (Code : 5)Symfony 警告:重命名(../app/cache/dev,../app/cache/dev_old):访问被拒绝。 (代码:5)
【发布时间】:2012-01-30 10:22:11
【问题描述】:

我正在从事 Symfony 项目。

当我尝试这样做时:

php app/console cache:clear

我得到以下错误异常:

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 操作系统)。任何想法为什么会发生?

谢谢。

【问题讨论】:

  • 有时在使用缓存文件时会发生。您可以手动删除缓存文件夹吗?
  • 不,我不会尝试手动删除它们。我应该这样做吗?
  • 我通常自己写脚本,只是清空缓存文件夹,我发现它比内置的cache:clear更好用
  • 手动删除缓存文件夹帮我解决了。

标签: symfony


【解决方案1】:

确保文件没有被使用(正如meze 指出的那样)。如果您使用的是 TortoiseGit 或 Netbeans 等 - 请务必将 cache 文件夹标记为已忽略,以免访问它们。

如果一切都失败了,请下载像Unlocker 这样的免费程序,它可以让您快速轻松地从您尝试修改的文件/文件夹中分离正在运行的进程。

【讨论】:

  • 关闭任何 IDE,重新启动本地服务器(对我来说是 wamp),运行“php composer.phar update”,它正在工作并解决我的问题
  • 2 年后->仍然有用。
  • 删除该解锁器的链接。它安装了 15 个垃圾软件和工具栏,并弄乱了一堆文件关联。我花了将近一个小时才修复损坏。扫描我的电脑以确保它没有潜入一些病毒。
  • @afilina:工具栏是可选的;您必须进行自定义/高级安装并拒绝其安装。
  • 太棒了! 2017 年还在工作!我使用 Sublime Text,并排除项目中的文件夹检查:coderwall.com/p/dza-mw/exclude-files-folders-in-sublime-text
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

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

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

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

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

    【讨论】:

    • 关闭任何 IDE,重新启动本地服务器(对我来说是 wamp),运行“php composer.phar update”,它正在工作并解决我的问题
    • 您不应编辑供应商文件本身。每次安装库时,您的更改都会被覆盖。
    【解决方案4】:

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

    转到首选项/设置

    编辑配置文件

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

    就我而言

    缓存文件夹容器。

    Symfony 4

    /var

    Symfony 2

    /app/缓存

    编码不错!

    【讨论】:

      【解决方案5】:

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

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

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

      请看以下步骤:

      1º 步长:

      2º步骤搜索“排除”字,然后添加**/var/cache如下图:

      它对我有用。

      【讨论】:

      • 感谢 Caique... 对我来说,只需在“Watcher Exclude”配置中添加文件夹即可。
      【解决方案6】:

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

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

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

      【讨论】:

        【解决方案7】:

        SYMFONY 和杀毒软件

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

        【讨论】:

          猜你喜欢
          • 2021-08-10
          • 2021-07-15
          • 2021-12-31
          • 1970-01-01
          • 2016-11-23
          • 2013-09-17
          • 2015-07-16
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多