PHP opendir() не работает в IIS

У меня есть PHP-скрипт, который пытается открыть каталог «C:\Users\userA\Desktop». Однако вызов opendir() возвращает false. Вот мой код:

$path = 'C:\Users\userA\Desktop';
var_dump (is_dir($path)); //prints TRUE
var_dump (is_readable($path)); //prints TRUE
var_dump (is_writable($path)); //prints TRUE
var_dump (open_dir($path)); //prints FALSE

Когда я запускаю вышеизложенное из командной строки, все ИСТИНА и работает так, как ожидалось. Когда я запускаю его через вызов Ajax из веб-браузера, opendir не работает. Это работает в IIS 7.5. Я установил разрешения для этого каталога на полные разрешения для «Все». Тем не менее, похоже, что это какая-то проблема с разрешениями. Я не уверен, куда идти отсюда.


person scott80109    schedule 19.03.2013    source источник
comment
Какая версия PHP? как насчет scandir ?   -  person Baba    schedule 19.03.2013
comment
Извините. Опечатка. Это opendir().   -  person scott80109    schedule 20.03.2013
comment
Версия PHP 5.3.13. scandir() также возвращает false.   -  person scott80109    schedule 20.03.2013


Ответы (1)


Я нашел решение своей проблемы. Я добавил разрешения для «C:\Users\userA\Desktop». Мне нужно было подняться еще на один каталог. Я предоставил привилегии IIS_IUSRS для «C:\Users\userA», и это решило мою проблему.

person scott80109    schedule 19.03.2013
comment
Я столкнулся с этой проблемой также с Apache и PHP. И обнаружил, что это действительно права на файл. Как пользователь Apache, я попробовал каталог% DIRECTORY%, он перечислил все. dir %DIRECTORY%/subdir не удалось найти. cd %DIRECTORY%/subdir не удалось с отказом в доступе. Если вы не уверены, используйте runas /user:serveruser cmd и попробуйте сами. - person Pihhan; 25.04.2013