Проблема с разрешениями на загрузку файлов в 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