在Windows上的Symfony2项目中清除缓存和缓存目录权限的问题

时间:2017-03-24 10:44:15

标签: windows symfony caching permissions ntfs

我正在使用Windows 10并在各种版本的Symfony上运行各种Sf项目,从2.3到3.2。我永远都存在这些问题(也在Win 7上)。在某些项目中,它是永久性的,在其他项目中是偶然的 - 当清除缓存时,事情变得疯狂 - 有时它无法重命名目录,有时它无法删除文件,有时它无法打开文件。例子:

[Symfony\Component\Debug\Exception\ContextErrorException] Warning: file_put_contents(H:\_Moje_dydy\Documents\Projekty\atm\src/var/cache/dev/classes.map): failed to open stream: Permission denied

这个很常见(但仅限于某些项目!):

[Symfony\Component\Filesystem\Exception\IOException] Cannot rename "H:\_Moje_dydy\Documents\Projekty\friendly_score\src_rainfin\app\cache\de_" to "H:\_Moje_dydy\Documents\Projekty\friendly_score\src_rainfin\app\cache\dev".

在某些情况下,使用管理员权限完全擦除缓存目录会有所帮助。在某些情况下,它没有,在其他一些情况下,它是完全不可能的(删除目录的内容)。很多时候,当我无法删除目录并查看缓存目录中某些文件夹的NTFS权限时,我看到完全混乱:

enter image description here

注意相同用户的重复记录,多个“特殊”权限(他们内部拥有非常奇怪的权限集,这些权限经常相互矛盾)。

在一些“较重”的情况下,它不仅干扰了cache:clear命令,而且还完全破坏了应用程序。在大多数情况下,它需要非常深入的干预才能让我简单地删除缓存目录(一些子目录具有如此疯狂的权限,即使管理员用户我无法删除它们并且必须首先与权限混合)。

这就是我现在正在使用的内容:

  • Windows 10(也发生在Windows 7上);
  • 使用PHP 7.1和Apache 2.4的XAMPP(也发生在PHP 5.6和5.4的旧版本上);
  • Netbeans 8.2作为IDE(也发生在之前的版本中);
  • cygwin运行CLI命令;
  • GIT中。

我的主要问题是:什么以这种疯狂的方式与这些权限混合? Apache + PHP在运行时创建缓存? Netbeans,即使它忽略了缓存和日志目标(理论上 - 我还没有明确地将它们忽略在NB中的列表中)? Git,即使是那些这些dirs在每个回购中都被忽略了(相当不可能)?我,通过cygwin运行CLI命令(也是不太可能)?

我一直在与它斗争很长时间无济于事......

你们对此有什么见解吗?感谢。

2 个答案:

答案 0 :(得分:0)

我有类似的问题.... 直到我从xampp切换到laragon

我知道这听起来很奇怪,但就我而言,它解决了所有问题。

答案 1 :(得分:0)

Symfony提供了有关这些权限问题的文档: http://symfony.com/doc/current/setup/file_permissions.html

您可以在整个应用程序之前使用umask(002),也可以设置ACL。 ACL和umask都为所有新文件设置了默认访问权限。