gpt4 book ai didi

PHP mkdir 权限由于只读属性而被拒绝在 Windows Server 2008 IIS 7 上运行?

转载 作者:行者123 更新时间:2023-12-03 00:09:51 24 4
gpt4 key购买 nike

我在 Windows Server 2008 上的 IIS 7 上运行 PHP 网站时遇到问题。

有一行调用 mkdir 的代码出错,错误日志显示:

“...权限被拒绝...”

我已经排除了与文件夹权限有关的任何内容(我尝试了多个组:每个人、用户、IUSR、网络服务等,但没有成功)。

我需要知道 mkdir 是如何工作的,它是否检查父文件夹的只读属性?

如果是这样,那么这可能是问题的根源,因为 Windows Server 2008 中的所有文件夹都被标记为“只读”,并且该复选框呈灰色 - 微软说这是“设计使然”,但我认为它是真的是“糟糕的设计”。

请帮忙。

附注出错的代码行可以在这里找到https://github.com/LimeSurvey/LimeSurvey/blob/070d255ba381d7abcd231d7c9e0c7d11f5578c97/admin/templates.php#L1182这是第 1182 行。

解决方案:

  • 这毕竟是权限问题!
  • 我们向错误的文件夹应用了权限(用手拍打额头)
  • 有两个"template"文件夹:/Templates 和/Uploads/Templates
  • /Template 用于默认模板,而/Uploads/Templates 用于用户创建的模板
  • 我们授予“Users”组对/Uploads/Templates 文件夹的读写/执行/修改权限
  • 而之前我们是向/Templates 应用权限
  • 为了调试此问题,我使用 echo 输出 $target

经验教训:

  • 总是阅读错误消息 - 它说“权限被拒绝”,但我不相信它
  • 不要假设显而易见的事实是正确的 -/Templates 不是正确的文件夹
  • 如果代码出错,请调试代码,不要尝试猜测问题
  • 使用简单的技术调试代码,例如输出变量值 - 例如 echo
  • 听取大多数人的意见 - 这里的大多数人都说这是一个权限问题!
  • 大多数错误都有一个简单的修复方法 - 不要去寻找复杂的东西

由于 mkdir() 文档中的有用引用而授予 @BOMEz 赏金,这表明我应该仔细考虑权限。 @BOMEz 还提供了量身定制的答案,并通过评论与我互动,这很有帮助。

最佳答案

  • 作为测试(最好在开发环境中),为 IIS 用户提供对父文件夹的完全访问权限。如果这有效,请慢慢开始取消权限,看看您需要哪些权限。

  • 尝试改变:

    if(mkdir($target,0777))

至:

if(mkdir($target))

Windows 忽略模式选项。可能是一些奇怪的错误导致它失败。

此外,对于您的 $target 变量,您可以尝试强制它链接到完整的 Windows 路径吗?如C:\Program Files\IIS\...

我之前遇到过 Windows 的情况,尝试使用相对路径时访问被拒绝,但完整路径工作得很好。

编辑:查看 mkdir() 文档上的评论一位评论者提到您可能还需要向用户添加执行权限:

If you're getting a Permission Denied error, but are certain thepermissions and ownership where you are trying to create the directoryare correct, check again:

The location where you are trying to create the directory in must havethe Execute permission for the owner trying to create it, regardlessof if the folder is Readable, or Writable.

This may be obvious to some, but was not to me at first. Hopefullythis will save you the trouble I went through.

关于PHP mkdir 权限由于只读属性而被拒绝在 Windows Server 2008 IIS 7 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11089368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com