| О программе Скачать Цены Клиенты Поддержка Партнеры Контакты | ![]() |
|
| Служба поддержки Вопрос-ответ Документация О разработчиках |
Данное руководство применимо для IPI.Manager 8.3.0 и выше. Для более ранних версий используйте:
Если Вы обновляетесь со старой версии - IPI.Manager 8.3.0 будет продолжать работать со старым способом (через модуль FastCGI у IIS, однако в версии 8.4.0 перестанет. Поэтому рекомендуем переехать на новую связку с IIS. Подробнее читайте в Переход на новую схему работы с IIS в версии 8.3.0
Contents
Версии IIS выходили вместе с разными версиями Windows по следующей схеме:
Версия IIS |
Версии Windows |
Поддержка IPI.Manager |
IIS 5.1 |
Windows XP 32bit |
не поддерживается |
IIS 6.0 |
Windows XP 64bit |
поддерживается |
IIS 7.0 |
Windows Vista 32/64bit |
поддерживается |
IIS 7.5 |
Windows 7 32/64bit |
поддерживается |
Таким образом IPI.Manager может работать в паре с IIS всех версий, начиная с IIS 6.0.
Для работы IPI.Manager под Windows XP 32bit можно использовать либо встроенный веб-сервер, либо Apache 2.
Здесь и дальше употребляются следующие псевдо-термины:
<PROFILE_DIR>: папка с профилем, который Вы должны были создать ранее (например, C:\ipi\my_profile). Подробнее о профилях
<SERVICE_ACCOUNT>: аккаунт, под которым будет запускаться IPI.Manager Service
<ISAPI_ACCOUNT>: аккаунт, под которым будет запускаться пул приложения IPI.Manager в IIS
Принцип связи с IIS следующий: с одной стороны запускается сервис с IPI.Manager, который слушает соединения на каком-либо порту (на любом =)). Информация о созданном сервисе (включая порт) сохраняется в <PROFILE_DIR>/share/settings.yaml и используется как для запуска сервиса, так и для соединения к нему модуля ISAPI. Затем с другой стороны в IIS вставляется модуль ipimanager_isapi.dll и docroot сайта ставится в <PROFILE_DIR>/share/htdocs. Наш ISAPI модуль смотрит на docroot и ищет <PROFILE_DIR>/share/settings.yaml. Когда находит - видит, что сервис IPI.Manager запущен на порту NNNN и пытается соединится с ним.
Таким образом, краткий порядок действий для настройки таков (ниже эти шаги будут расписаны более подробно):
Установить docroot сайта в IIS на <PROFILE_DIR>/share/htdocs
В дальнейшем у вас будет запускаться два процесса - один будет сервисом Windows, другой будет запускать IIS при создании пула приложения IPI.Manager. По умолчанию IIS запускает приложения от имени NETWORK_SERVICE, а сервис Windows запускает от имени System Logon Account. Если вы не особо заботитесь о безопасности - Вас это волновать не должно, но лучше создать отдельного пользователя, скажем, IPI.Manager User и прописать его в обоих местах.
В любом случае права на доступ к файлам должны быть следующими:
чтение и запись в папку профиля (<PROFILE_DIR>, см. врезку выше)
только чтение в папку с системными файлами IPI.Manager (C:\Program Files\IPI...)
Пользователь, под которым IIS создаёт пул приложений
только чтение в папку профиля (<PROFILE_DIR>, см. врезку выше)
только чтение в папку с системными файлами IPI.Manager (C:\Program Files\IPI...)
Если же у вас всё запускаться планируется под 1 пользователем - значит он должен иметь права на чтение и запись в папку профиля и только чтение в папку C:\Program Files\IPI\...
В случае, если отдельного пользователя не создавать, это означает что пользователю NETWORK_SERVICE нужно дать права на чтение и в папку C:\Program Files\IPI и в папку <PROFILE_DIR>.
Нужно перейти в папку профиля в консоли (cmd.exe) и выполнить:
cd <PROFILE_DIR> ipi-admin runfcgi --port=51000 --service-install ipi-admin runfcgi --service-run
Порт можно выбрать любой. Но как правило, это порты выше 10000-го и те, которые не заняты ничем другим. Консоль после этого можно закрыть - сервис будет работать самостоятельно.
Сервис будет создан со следующими параметрами:
пользователь: локальный системный аккаунт
запуск: автоматический (при старте Windows)
действия при исключениях: ничего не делать
С умолчательными параметрами всё будет работать тоже, но для тонкой и правильной настройки любой уважающий себя администратор захочет ещё кое-что изменить. Это все изменяемо стандартными средствами Windows. Для изменения нужно открыть свойства сервиса (My computer (Мой компьютер)-> Правый клик -> Manage (Управление) -> Services and Applications -> Services). Там в списке сервисов найти IPI.Manager Command runfcgi -> правый клик -> Properties (свойства).

Во-первых целесообразно изменить действия операционной системе при сбое сервиса. Во всех случаях - перезапуск:

Во-вторых хорошо бы запускать сервис не от имени системного пользователя, а от имени какого-либо другого. Мы советуем создать специального пользователя.

После любых изменений сервис нужно перезапускать. Это можно делать как средствами Windows (либо в диалоговом окне свойств, либо через sc.exe), либо средствами комманды ipi-admin:
# Способ через ipi-admin:
C:\Documents and Settings\Administrator>cd C:\ipimanager_profile
C:\ipimanager_profile>ipi-admin runfcgi --service-stop
Service "IPI.Manager Command -- runfcgi (C|ipimanager_profile)" stopped successfully
C:\ipimanager_profile>ipi-admin runfcgi --service-run
Service "IPI.Manager Command -- runfcgi (C|ipimanager_profile)" started successfully
# Способ через sc.exe:
C:\ipimanager_profile>sc stop "IPI.Manager Command -- runfcgi (C|ipimanager_profile)"
SERVICE_NAME: IPI.Manager Command -- runfcgi (C|ipimanager_profile)
TYPE : 10 WIN32_OWN_PROCESS
STATE : 3 STOP_PENDING
(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN))
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x1
WAIT_HINT : 0x1388
C:\ipimanager_profile>sc start "IPI.Manager Command -- runfcgi (C|ipimanager_profile)"
SERVICE_NAME: IPI.Manager Command -- runfcgi (C|ipimanager_profile)
TYPE : 10 WIN32_OWN_PROCESS
STATE : 2 START_PENDING
(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN))
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x7d0
PID : 3556
FLAGS :
Если IIS ещё не установлен, его нужно установить. Для этого достаточно добавить роль веб-сервера с нужными параметрами.

Далее обязательно нужно выбрать сервис ISAPI Extensions:

У вас уже должен быть установлен пакет IIS для Windows!
Применимо для:
Откройте менеджер настроек IIS (Пуск -> Выполнить -> inetmgr).
Создайте новый веб-сайт:

Описание - любое (лучше всего использовать имя будущего домена, например ipimanager.mycompany.ru). Домашнюю папку укажите как <PROFILE_DIR>\share\htdocs. Если установить неправильно - впоследствии вам будет об этом сообщено. Естественно, в виде ошибки =).


Затем создайте новый пул приложений. Назовите его IPI.Manager App Pool.


Вы можете так же изменить учётную запись пула (по-умолчанию это будет NETWORK_SERVICE, то есть процесс IPI.Manager ISAPI будет запускаться от имени этого пользователя). При этом нужно обязательно добавить эту учётную запись в группу IIS_WPG, иначе ничего работать не будет. Если всё сделаете правильно, и процесс ipimanager_service.exe и w3wp.exe (это процесс IIS) будут запущены от имени одного пользователя:

Затем откройте свойства сайта. На вкладке Home Directory сначала удалите приложение, а затем создайте заново (кликнуть на Remove, затем на Create). В качестве пула приложений для только чт созданного приложения выберите созданный вами ранее пул IPI.Manager App Pool. Название приложения укажите как IPI.Manager ISAPI Handler. Нажмите Применить и потом зайдите в настройки приложения (кнопка Configuration там же, рядом).
В блоке Wildcard application maps нажмите Insert. В появившемся диалоговом окне выберите файл C:\Program Files\IPI\IPI.Manager\ipimanager_isapi.dll. Уберите галочку Verify that file exists и попрбуйте сохранить. Если диалоговое окно недовольно скажет, что имена файлов с пробелами нужно обрамлять кавычками - сделайте это (т.е. получится что-то вроде "C:\Program Files\IPI\IPI.Manager\ipimanager_isapi.dll"). Сохраните всё.
В старых версиях IPI.Manager использовался хендлер fcgiext.dll. Если он есть в списке Wildcard application maps, нужно его оттуда удалить.

Затем в диалоговом окне управления IIS (Пуск -> Выполнить -> inetmgr) кликните правой кнопкой по Web Service Extensions и выберите Add new Web service extension.... В появившемся окне задайте любое имя расширению (например, IPI.Manager ISAPI Handler), в качестве требуемых файлов добавьте C:\Program Files\IPI\IPI.Manager\ipimanager_isapi.dll и статус расширения выберите как Allowed (Разрешённое).


Теперь не забудьте запустить сам веб-сайт

После этого можете попробовать открыть сайт в браузере (для начала, http://localhost). По идее всё будет работать сразу же.

Возможные ошибки будут такими же как и для IIS7 / IIS7.5, о них смотрите в разделе ниже.
Применимо для:
Откройте менеджер настроек IIS (Пуск -> Выполнить -> inetmgr).
Создайте новый веб-сайт:

Название сайта - любое. Удобнее всего использовать название будущего домена (например, manager.mycompany.ru). Домашнюю папку укажите как <PROFILE_DIR>\share\htdocs. Если установить неправильно - впоследствии вам будет об этом сообщено. Естественно, в виде ошибки =). Выключите галочку Start web site immidiately.

Зайдите в список пулов приложений, там будет только что созданный пул специально для нового сайта. Откройте его базовые опции и выключите ASP.NET


Откройте расширенные опции и разрешите запуск 32-битных приложений


Откройте Handler Mappings

Добавьте Wildcard script map

В старых версиях IPI.Manager использовался хендлер fcgiext.dll. Если он есть в списке Handler Mappings, нужно его оттуда удалить.

На вопрос - создавать ли исключение для ISAPI/CGI, ответье Yes (Да):

Теперь откройте ISAPI/CGI Restrictions

И измените описание созданного правила:

Теперь не забудьте запустить сам веб-сайт

После этого можете попробовать открыть сайт в браузере (для начала, http://localhost). По идее всё будет работать сразу же.

| Конфиденциальность Правовые ограничения Лицензия Контактная информация | © 1998-2012 |
|