【问题标题】:open_basedir restriction in effect, but the directory *is specified* in php.iniopen_basedir 限制有效,但目录*在 php.ini 中指定*
【发布时间】:2015-02-21 22:35:45
【问题描述】:

我在带有 IIS7 和 FastCGI 的 Windows Server 2008 上运行 php 5.5.12。

这是我得到的日志错误之一:

file_put_contents(): open_basedir restriction in effect. File(C:\Program Files (x86)\Wowza Media Systems\Wowza Streaming Engine 4.0.3\content\vod\test.smil) is not within the allowed path(s): (C:\Program Files (x86)\Wowza Media Systems\Wowza Streaming Engine 4.0.3\content\vod;C:\Windows\TEMP\;E:\webpage;C:\php) in E:\webpage\dev\vod\createsettings.php on line 41

这是我在php.ini 中的open_basedir 行:

open_basedir = "C:\Program Files (x86)\Wowza Media Systems\Wowza Streaming Engine 4.0.3\content\vod;C:\Windows\TEMP\;E:\webpage;C:\php"

如您所见,目标目录实际上是在open_basedir 中指定的,但它的行为就像是受到限制一样。

注释掉 open_basedir 并重新启动 IIS 不会导致任何错误,并且一切正常。

将目标目录更改为其他打开的目录之一(例如C:\Windows\TEMP)也可以正常工作,没有错误。

我在这里阅读了八页的问题,但没有看到匹配的问题。提前感谢您提供的任何帮助!

【问题讨论】:

  • 我还应该补充一点,尽管可能实际上并不相关——如果目标文件已经存在,一切正常,没有错误。
  • 您在尝试使用 PHP 和 C:\Program Files (x86) 时会遇到很多权限问题。如果您不了解 Windows 权限,我建议您在使用 PHP 时避免使用该目录。
  • 我对 all 有很多不明白的地方,但我在 Windows 中很舒服(至少我认为)和对 vod 目录的有效权限似乎适合IUSR。 NTFS 权限问题会导致 open_basedir 限制错误吗?
  • 是的,当没有为 PHP 用户正确设置权限时,我已经让它抛出了这个错误以及其他几个文件/文件夹错误。话虽如此,我已经添加了一个可能解决问题的答案。
  • 决定只将目标目录移动到 C:\vod,一切正常,没有大惊小怪。不知道为什么 php 返回一个 open_basedir 限制错误,而实际上它可能是 NTFS 权限,但似乎确实如此。如果您提交您的建议作为答案,我很乐意将其标记为这样。谢谢!

标签: php iis-7 fastcgi open-basedir


【解决方案1】:

您在尝试使用 PHP 和 C:\Program Files (x86) 时会遇到很多权限问题。 Windows 中的 32 位和 64 位 Program Files 目录在写入权限方面都非常挑剔。如果您将目录移到 Program Files 之外并直接进入 C:\ 驱动器,它应该可以缓解一些问题。 (即,在进行文件上传、会话存储等时,通常可以使用 PHP 轻松访问 C:\temp...)。

【讨论】:

  • 试过了,同样的错误。留下反斜杠,我知道它是首选。不过感谢您的建议!
猜你喜欢
  • 2011-03-16
  • 1970-01-01
  • 2012-05-02
  • 1970-01-01
  • 2020-05-21
  • 2012-05-26
  • 2014-09-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多