权限被拒绝 \- php取消链接

新手上路,请多包涵

我有两个文件:b.php 和 test.txt

 <?php
$b = "test.txt";
unlink($b);
?>

错误是:警告:unlink(test.txt)[function.unlink]:权限被拒绝

为什么? b.php 和 test.txt 是 777 和相同的组/登录

如果我在父目录上设置 777 我可以执行 unlink 但我必须设置 777 并返回到 755?

原文由 eugui 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 355
2 个回答

您(如在运行 b.php 的进程中,通过 CLI 或网络服务器)需要对文件所在目录的写入权限。您正在更新目录内容,因此访问该文件是不够的。

请注意,如果您使用 PHP chmod() 函数将文件或文件夹的模式设置为 777 您应该使用 0777 以确保正确解释数字作为八进制数。

原文由 Arjan 发布,翻译遵循 CC BY-SA 3.0 许可协议

除了其他朋友的所有答案之外,如果正在查看此帖子的人正在寻找删除 “文件夹”而不是“文件” 的方法,则应注意文件夹必须通过 php rmdir() 函数 删除,如果您想删除 unlink() 的“文件夹”,您将遇到错误的警告消息,显示“权限被拒绝”

但是您可以通过 mkdir() 创建文件夹和文件,但是您删除文件夹的方式( rmdir() )与删除文件的方式不同( unlink()

最终成为事实:

在许多编程语言中,任何与权限相关的错误可能并不直接意味着实际的权限问题

例如,如果你想 readSync 一个不存在的文件 node fs module 你会遇到错误 EPERM 错误

原文由 TechDogLover OR kiaNasirzadeh 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题