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

Проблема с разрешениями инфраструктуры YII на сервере IIS 7.5

У меня есть компьютер с Windows Server 2008 R2 с установленной ролью веб-сервера IIS. Я не отмечал никаких флажков, кроме выбора по умолчанию для установки, и IIS был загружен и установлен с php.iis.net с помощью установщика веб-платформы.

Я скопировал файлы для сайта (панель управления Multicraft) в wwwroot и перешел на localhost, но получаю сообщение об ошибке:

Путь выполнения приложения «C: \ inetpub \ wwwroot \ panel \ protected \ runtime» недействителен. Убедитесь, что это каталог, доступный для записи процессу веб-сервера.

Папка, на которую он ссылается, существует, и IIS_IUSR имеет разрешения на чтение / список / выполнение. Я предполагаю, что это проблема с разрешениями, как если бы я установил для всей папки wwwroot \ panel значение «все» и «полный контроль», страница загружалась без проблем. Я бы не хотел использовать этот параметр из-за проблем с безопасностью. Я до сих пор понял, что это может быть связано с чем-то, называемым фреймворком YII, но все же нужна помощь, в которой процесс или учетные записи должны получить доступ к папке.

В IIS 7.5 пул приложений для веб-сайта по умолчанию работает как IIS AppPool\DefaultAppPool. Если это учетная запись, в которой запущен ваш пул приложений, вам нужно предоставить права для нее. Это задокументировано на IIS.net. если хотите читать дальше.

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

Кажется, что IIS AppPool\DefaultAppPool была неподходящей учетной записью для установки разрешений - с большим количеством проб и ошибок и с использованием страницы с php get-current-user Я обнаружил, что учетной записи IUSR также требуется доступ к папке wwwroot. Я предоставил IUSR доступ к папке - все, кроме удаления и полного доступа - и он загрузил страницу нормально.