Проблема с разрешениями на загрузку файлов в Windows Server 2008 R2 IIS 7.5 PHP 5.3 с Drupal v.7.26

У меня есть веб-сайт на версии Drupal: 7.26 ОС на сервере - Windows Server 2008 R2 Веб-сервер $_SERVER["SERVER_SOFTWARE"]: Microsoft-IIS/7.5 Server API: CGI/FastCGI

ядро

PHP Version: 5.3.28
file_uploads: On
post_max_size: 75M
upload_max_filesize: 50M
upload_tmp_dir: C:\inetpub\wwwroot\tmp
memory_limit: 128M
open_basedir: C:\inetpub\wwwroot;C:\inetpub\wwwroot\tmp

Когда я иду в /admin/config/media/file-system

Я вижу сообщения об ошибках:

The directory sites\default\files exists but is not writable and could not be made writable.
The directory tmp exists but is not writable and could not be made writable.

Путь к общей файловой системе: sites\default\files Временный каталог: tmp

Я установил разрешения для папок

C:\inetpub\wwwroot\tmp : IIS_IUSRS : Full control
C:\inetpub\wwwroot\sites\default\files : IIS_IUSRS : Full control

Я работаю как пользователь-администратор: C:\Users\Administrator\Downloads>echo %username% Administrator

Я не могу изменить атрибуты только для чтения для этих папок. Каждый раз, когда я делаю это изменение и нажимаю кнопку "Применить", проверяется применение "Применить изменения к этой папке, подпапкам и файлам", и нажимает кнопку "ОК". Появляется диалоговое окно "Применить атрибуты...". Когда оно заканчивается, я нажимаю кнопку "ОК" в диалоговом окне свойств папки, закрывая его. Когда я снова открываю диалоговое окно Свойства, я вижу, что только для чтения проверяется снова. Как я могу это исправить?

1 ответ

Я выяснил причину этой проблемы.

Починить это:

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

Прочитайте подробные инструкции по адресу: http://www.iis.net/learn/get-started/planning-for-security/understanding-built-in-user-and-group-accounts-in-iis

Чтобы предоставить анонимные права учетной записи в сети с помощью диспетчера IIS:

Нажмите кнопку Пуск, введите INetMgr.exe и нажмите клавишу ВВОД. При появлении запроса нажмите "Продолжить", чтобы повысить уровень разрешений.

В разделе "Подключения" нажмите кнопку "+" рядом с именем вашего компьютера.

В диспетчере IIS дважды щелкните сайт, который вы хотите администрировать.

В представлении "Функции" дважды щелкните "Аутентификация".

Выберите "Анонимная аутентификация", а затем нажмите "Изменить" на панели "Действия".

В диалоговом окне "Изменить учетные данные для анонимной аутентификации" выберите параметр "Определенный пользователь" и нажмите "Установить".

В диалоговом окне "Установить учетные данные" введите желаемое имя пользователя и пароль, а затем нажмите кнопку "ОК".

Кроме того, установите Полные разрешения для IIS AppPool\DefaultAppPool для папок, которые должны быть доступны для записи веб-приложением Drupal. В моем случае это две папки:

icacls "c:\inetpub\wwwroot\sites\default\files" /grant "IIS AppPool\DefaultAppPool":F
icacls "c:\inetpub\wwwroot\tmp" /grant "IIS AppPool\DefaultAppPool":F

Также установите правильные пути в файловой системе admin /admin/config/media/file-system:

Путь к публичной файловой системе: sites\default\files

Временный каталог: tmp

Другие вопросы по тегам