Настройка удаленной (ftp) публикации вебсайтов в IIS 7 (Windows Server 2008)
Ожидает приглашения
Приспичило вчера настроить удаленную публикацию сайта на хостинге под WS08. Дело оказалось не таким тривиальным… Поиск в гугле далеко не с первого раза выдал хоть что-то, кроме рекламы хостерских услуг. В менеджере сайтов ftp-публикация тоже как-то не спешила попадаться на глаза. Хелп загадочно отмалчивался.
Пришлось теребить гугл снова и снова. И в какой-то момент тот сдался. Что же выяснилось?
А выяснилось следующее. Для удаленной публикации для IIS есть аж два ftp сервера. Назовем их «нехороший» и «хороший». Один интегрирован в WS08, но не интегрирован с IIS7 (явно нехороший), другой интегрируется с IIS7, но в поставке его нет — нужно скачивать (он — хороший, он же не виноват, что его в поставку не включили). С нехорошим возиться у меня мозгов не хватает, а вот канал достаточно толстый, чтобы скачать ~2мб хорошего ftp.
Естественно, что у нас должен быть установлен IIS 7.0 на нашем Windows Server 2008:
Нужно скачать и установить собственно сам новый ftp сервер (кстати, его зовут FTP 7.5 for IIS7):
Дальше можно пойти двумя путями — воспользоваться мастером установки или поправить конфигурационные файлы ручками. И у того и у другого есть свои недостатки.
Тут все просто. Щелкаете на веб-сайт, к которому нужно прикрутить публикацию и видите что в правой панели в разделе конфигурация появилась строчка «Add FTP Publishing...». Тыц. Открывается мастер установки.
В самом простом варианте можно оставить настройки
Щелкаем «Next»
Щелкаем Finish. Все готово, можно давать автору пару логин/пароль.
Несколько замечаний:
Будем править файл applicationHost.config — естественно для этого нужно быть или казаться системе локальным администратором. Идем в %SystemRoot%\System32\inetsrv\config и открываем applicationHost.config.
Не забываем сохранить файл и выдать логин/пароль авторам сайта.
Microsoft FTP Publishing Service for IIS 7.0 for Windows Server 2008, Daniel Petri; January 8, 2009
Adding FTP to a Web Site, Robert McMurray; March 18, 2009
Пришлось теребить гугл снова и снова. И в какой-то момент тот сдался. Что же выяснилось?
А выяснилось следующее. Для удаленной публикации для IIS есть аж два ftp сервера. Назовем их «нехороший» и «хороший». Один интегрирован в WS08, но не интегрирован с IIS7 (явно нехороший), другой интегрируется с IIS7, но в поставке его нет — нужно скачивать (он — хороший, он же не виноват, что его в поставку не включили). С нехорошим возиться у меня мозгов не хватает, а вот канал достаточно толстый, чтобы скачать ~2мб хорошего ftp.
Что нам понадобиться?
Естественно, что у нас должен быть установлен IIS 7.0 на нашем Windows Server 2008:
- Веб-сайт по умолчанию (Default Web Site), создаваемый установщиком IIS 7.0 должен быть.
- Должен быть установлен Менеджер IIS 7.0 (не знаю как обычно, а у меня по умолчанию стоял).
Нужно скачать и установить собственно сам новый ftp сервер (кстати, его зовут FTP 7.5 for IIS7):
- FTP 7.5 for IIS 7.0 (x64)
- FTP 7.5 for IIS 7.0 (x86) — если WS08 стоит в виртуальной среде Virtual PC, то нам сюда
Дальше можно пойти двумя путями — воспользоваться мастером установки или поправить конфигурационные файлы ручками. И у того и у другого есть свои недостатки.
Настройка ftp-публикации с помощью мастера
Тут все просто. Щелкаете на веб-сайт, к которому нужно прикрутить публикацию и видите что в правой панели в разделе конфигурация появилась строчка «Add FTP Publishing...». Тыц. Открывается мастер установки.
В самом простом варианте можно оставить настройки
- IP: all unassigned
- порт 21 по умолчанию
- галочку «start ftp automatically» ставим/оставляем
- SSL: allow SSL
Щелкаем «Next»
- Аутентификация: отключаем анонимусов, ставим тип basic
- Авторизацию выбираем для указанных ролей/групп пользователей: Specified roles or user groups *или* указанных пользователей: specified users
- Перечисляем группы или пользователей
- Отмечаем доступ на чтение, запись
Щелкаем Finish. Все готово, можно давать автору пару логин/пароль.
Несколько замечаний:
- Пользователи и группы, которых вы указываете, должны уже существовать и им должны быть выданы соответствующие разрешения на сайт. Например, если у вас пользователю даны разрешения на сайт по умолчанию (т.е. смотреть, выполнять, листать директорию), то даже если вы в настройках ftp-публикации отметите галочку write, никакого write на самом деле не будет, а будет ошибка 505: access denied. Следите за этим.
- Если вы ошиблись/хотите изменить настройки, то логичным выглядит запустить мастер еще раз. Не тут то было. Мастер начнет создавать новые параметры публикации. Через это у вас не получится изменить настройки уже заданной публикации, а также не получится настроить публикацию на тот же самый порт повторно (в нашем примере порт 21). Обход — удалить биндинг ftp протокола на 21 порт, но при этом в файле конфигурации остаются хвосты, которые придется удалять ручками.
Настройка добавлением нужных строк в файлы конфигурации
Будем править файл applicationHost.config — естественно для этого нужно быть или казаться системе локальным администратором. Идем в %SystemRoot%\System32\inetsrv\config и открываем applicationHost.config.
- Добавляем биндинг для протокола ftp
<site name="Default Web Site" id="1">
<application path="/">
<virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:" />
</bindings>
</site>
- Добавляем секцию ftp и настройки безопасности:
<ftpServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<basicAuthentication enabled="true" />
</authentication>
<ssl controlChannelPolicy="SslAllow" dataChannelPolicy="SslAllow"/>
</security>
</ftpServer> - Теперь в самом конце файла добавьте настройки авторизации, вот так:
<location path="Default Web Site">
<system.ftpServer>
<security>
<authorization>
<add accessType="Allow" users="administrator" permissions="Read, Write" />
</authorization>
</security>
</system.ftpServer>
</location>
Не забываем сохранить файл и выдать логин/пароль авторам сайта.
Ссылки:
Microsoft FTP Publishing Service for IIS 7.0 for Windows Server 2008, Daniel Petri; January 8, 2009
Adding FTP to a Web Site, Robert McMurray; March 18, 2009