ServerA-> 64 бит Windows 2008 (IIS 7 && PHP 5.3.6)
ServerB-> 32 бит Windows 2003 (файловый сервер)
Я пытаюсь получить доступ к \ ServerB \ directory1 \ directory2 \ file.abc через fopen через сайт, размещенный на ServerA, и получаю ошибку с разрешением отказа. Это веб-сайт по умолчанию, использующий пул приложений по умолчанию.
Я попытался предоставить следующие учетные записи или группы в AD полные разрешения для каталога (и файл через наследование), и он все еще дал ошибку:
Identity для DefaultAppPool является NetworkService и имеет 32-разрядные приложения.
IUSR_SERVERA имеет полные разрешения для локального каталога php.
Любая помощь приветствуется. Я временно решил проблему, скопировав файл, необходимый локально, в папку wwwroot SERVERA, но это не может быть постоянным решением.
благодаря
-Майк
Спасибо за предложение ProcMon, это привело меня к ответу. Я неправильно настроил приложение по умолчанию.
Я читал и перечитывал все, что мог найти, но ничего не сказал об этом конкретно:
Если вам необходимо получить доступ к сетевым файлам с помощью PHP через IIS 7, настройте учетную запись с надлежащими учетными данными в настройках по умолчанию для сайта, на котором вы работаете.
Для этого зайдите в диспетчер IIS
Знайте, что изменение модели процесса -> Идентификация в дополнительных настройках пула приложений по умолчанию не повлияло на то, чтобы это произошло.
Учетная запись IUSR_SERVERA не будет очень полезной, учитывая, что PHP работает под пулом приложений по умолчанию, который, как вы сказали, работает как NetworkService.
Что вам нужно сделать, так это предоставить разрешения на ServerB в SERVERA \ NetworkService, потому что это локальная учетная запись, а не учетная запись AD.
В противном случае вы можете изменить пул приложений по умолчанию для запуска как IUSR_SERVERA, а затем он должен работать, считая, что учетная запись является учетной записью AD, а не локальной.
Если вы все еще не можете понять это, возьмите копию ProcMon и просмотрите сообщения для доступа, содержащие нужный путь, и посмотрите, что такое фактическая причина отказа ОС и какая учетная запись пытается использовать.