Назад | Перейти на главную страницу

Разрешения IIS_IUSRS и DefaultAppPool не работают

Я настраиваю приложение PHP на IIS 8.5 на Windows Server 2012 R2. Я уже успешно настраивал это приложение на нескольких компьютерах с Windows Server 2008 R2 и Windows Server 2012, но это первая машина 2012 R2, которую я использую.

В приложении PHP есть log и cache каталоги, в которые нужно писать.

На всех предыдущих машинах я настроил сайт PHP для работы в пуле приложений по умолчанию, а затем дал разрешение на IIS_IUSRS группа для чтения всего сайта и записи в эти каталоги. До сих пор это работало на всех предыдущих серверах, которые я использовал.

Однако на этом новом сервере PHP по-прежнему сообщает, что у него нет разрешения на запись в необходимые места.

Я проверил диспетчер задач, чтобы убедиться, что процесс IIS (и процесс PHP CGI) выполняется от имени ожидаемого пользователя, и обнаружил, что они работают как DefaultAppPool, как и ожидалось. Однако разрешения, похоже, не сработали. Я попытался остановить и перезапустить IIS, перезапустил пул приложений и добавил IIS AppPool\DefaultAppPool права пользователя прямо в папки, ни одна из которых не помогла.

Что здесь не так? Почему это не работает, если на четырех старых серверах все работало без проблем?

Похоже, что было какое-то кеширование разрешений на уровне файловой системы или на уровне ОС, потому что проблема, похоже, решилась сама собой после полной перезагрузки системы (даже если перезапуск IIS (W3SVC) и переработка пулов приложений действительно должна была решить эту проблему).