尽管chmod和文件路径正确,但在Windows(xampp)上拒绝PHP重命名()目录acces

时间:2018-11-22 22:29:30

标签: php xampp

我知道有成千上万个具有类似问题的问题,但是大多数问题都可以通过使用chmod来解决,或者只是没有提供新名称的完整路径。 我正在尝试更改某些网站的缓存清除行为,因为完成完全清除后,该网站会挂起很长时间(它使用全局和递归功能删除每个文件,并且有成千上万个(如果不是更多)。 主要思想是仅重命名用于存储高速缓存的目录,这样就无需花费一秒钟的时间。旧文件可以稍后删除,也可以删除。 从理论上讲,这很简单,但我已经苦苦挣扎了几个小时,仅仅是因为rename()给我抛出了一个access denied (code 5)错误。我已经尝试了几乎所有可能的方法,设置了父目录和要重命名的目录的chmod,修复了目录分隔符,没有任何帮助。

这是我的代码:

        // $dir = C:\xampp\htdocs\test/cache/posts.cache
        $dirToRename = substr($dir, strrpos($dir, '/')+1); // posts.cache
        $parentDir = realpath($dir. '/..') . '/'; // C:\xampp\htdocs\test/cache/

        error_log('dir '. $dir .' parentDir '. $parentDir .' dirToRename '. $dirToRename);

        rename($parentDir . $dirToRename, $parentDir . 'old_'. uniqid() . '_' .$dirToRename);

我尝试了很多方法,目录分隔符的不同之处在于,在\ test通过PHP脚本添加它们之后,无论如何这应该没有任何区别(并且我已经尝试过对其进行修复而没有任何更改)

我在日志中得到的是:

  

dir C:\ xampp \ htdocs \ test / cache / posts.cache   parentDir C:\ xampp \ htdocs \ test \ cache / dirName posts.cache
  PHP警告:   重命名(C:\ xampp \ htdocs \ test \ cache / posts.cache,C:\ xampp \ htdocs \ test \ cache / old_5bf72ae342d2f_posts.cache):   拒绝访问。在线上的C:\ xampp \ htdocs \ test \ inc \ cache.php中的(代码:5)   308

很显然,该代码在test / inc / cache.php中执行,因此它试图修改CWD之外的目录。 这只是XAMPP的东西,有什么办法可以解决?

编辑:我认为它与目录名称中的点有关,但实际上我可以重命名一个由我自己创建的目录,而不是由PHP生成的目录。

0 个答案:

没有答案