Chr*_*non 13 php iis permissions iis-7 windows-server-2008
我在Windows Server 2008上运行IIS 7上的PHP网站时遇到问题.
有一行代码调用mkdir,这是错误的,错误日志读取:
"... 没有权限 ..."
我已经排除了与文件夹权限有关的任何事情(我尝试了多个组:Everyone,Users,IUSR,Network Service等没有运气).
我需要知道mkdir是如何工作的,它是否检查了父文件夹的只读属性?
如果是这样,那么这可能是问题的根源,因为Windows Server 2008中的所有文件夹都被标记为"只读"而复选框是灰色的 - 微软称它是"按设计"但我觉得它真的很糟糕设计".
请帮忙.
PS可以在这里找到错误的代码行https://github.com/LimeSurvey/LimeSurvey/blob/070d255ba381d7abcd231d7c9e0c7d11f5578c97/admin/templates.php#L1182这是第1182行.
解:
echo输出$target值得到教训:
Bounty被授予@BOMEz,因为mkdir()文档中的有用引用表明我应该双重考虑权限.@BOMEz还提供了量身定制的答案,并通过评论帮助我与我互动.
作为测试(最好在开发环境中),为IIS用户提供对父文件夹的完全访问权限.如果这使它工作,慢慢开始取消权限,看看你需要哪些.
尝试改变:
if(mkdir($target,0777))
至:
if(mkdir($target))
Windows忽略模式选项.可能是一些奇怪的错误导致它失败.
另外,对于$ target变量,您可以尝试强制它链接到完整的Windows路径吗?如C:\Program Files\ IIS\...
我已经遇到过Windows的情况,之前拒绝访问尝试使用相对路径,但完整路径工作得很好.
编辑:查看mkdir()文档的注释,一位评论者提到您可能还需要向用户添加执行权限:
如果您收到"权限被拒绝"错误,但确定您尝试创建目录的权限和所有权是正确的,请再次检查:
您尝试创建目录的位置必须具有尝试创建目录的所有者的"执行"权限,无论该文件夹是"可读"还是"可写".
这对某些人来说可能是显而易见的,但起初并不适合我.希望这能为您省去我遇到的麻烦.
| 归档时间: |
|
| 查看次数: |
12404 次 |
| 最近记录: |