Я использую php 5.5.12 на Windows Server 2008 с IIS7 и FastCGI.
Вот одна из ошибок журнала, которую я получаю:
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
Вот мой open_basedir
линия в php.ini
:
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). Как 32-битные, так и 64-битные каталоги Program Files в Windows очень требовательны к разрешениям записи. Если вы переместите каталог за пределы Program Files и прямо на диск C: \, это должно устранить некоторые проблемы. (т. е. C: \ temp обычно легко доступен с помощью PHP при загрузке файлов, хранении сеансов и т. д.).
Других решений пока нет …