Как-то искал подходящую систему контроля версий с возможностью установки на IIS7. Остановился на Mercurial. Ранее здесь уже рассказывалось как выполнить такую установку, но с выходом новой версии Mercurial все изменилось.
Итак, начнем установку. Предполагается, что у вас уже установлен IIS7.
Материал подготовлен при помощи JeanLouis, личного опыта, а также с использованием этой, этой и этой ссылки. Про работу с Mercurial (в частности с репозиторием, находящимся на сервере) советую почитать здесь.
Итак, начнем установку. Предполагается, что у вас уже установлен IIS7.
Установка необходимых программ
- Установить Python 2.6.6 в папку c:\python26.
- Установить PyWin32 Build 214 (именно эту версию, так как она совместима с установленной версией Python)
- Установить ISAPI_WSGI
- Установить Mercurial. Фактически, установленный Mercurial мы будем использовать лишь для создания начального репозитория. Поэтому если есть готовый репозиторий, то можно не устанавливать Mercurial.
Компиляция Mercurial
- Добавляем строку c:\python26 в переменные среды (Мой компьютер -> Свойства -> Дополнительно -> Переменные среды). Это можно не делать, но так намного удобнее в дальнейшем будет компилировать Mercurial
- Скачать исходный код Mercurial. Необходимо распаковать его в папку c:\hgsource
- В командном окне переходим в папку c:\hgsource и компилируем Mercurial c помощью команд
python setup.py --pure build_py -c -d . build_ext -i build_mo --force
python setup.py --pure install --force
Настройка IIS7
- Создаем папку c:\inetpub\wwwroot\hg, в которой в дальнейшем будет храниться репозиторий, доступ к которому можно будет получить через сервер. В созданную папку копируем файл
c:\hgsource\cMercurialontrib\win32\hgwebdir_wsgi.py. Открываем файл и меняем значение одного из параметров:
hgweb_config = r'c:\inetpub\wwwroot\hg\hgweb.config'
- Также в этой папке создаем файл hgweb.config со следующим содержимым:
[collections]
C:\inetpub\wwwroot\hg = C:\inetpub\wwwroot\hg - Чтобы получить файл _hgwebdir_wsgy.dll, в командном окне переходим в папку
c:\inetpub\wwwroot\hg и выполняем команду
python hgwebdir_wsgy.py
Выполнение команды должно завершиться выводом надписи Installation complete - Открываем диспетчер служб IIS7 и создаем новый пул приложений с именем Mercurial без управляемого кода (!)
- В созданном пуле создаем новый сайт с именем hg
- Для созданного сайта выбираем «Сопоставления обработчиков»(Handler Mappings), далее «Добавить сопоставление модуля»
- Затем для созданного сопоставления ISAPI-Mercurial выбираем в контекстном меню «Изменение разрешении функции...» и отмечаем все пункты.
Настройка доступа к репозиторию Mercurial
- В папке c:\inetpub\wwwroot\hg создаем (или копируем) репозиторий с именем myrepo. О том как создавать репозитории, можно почитать здесь. Необходимо убедиться что в файле
c:\inetpub\wwwroot\hg\myrepo\.hg\hgrc прописана конфигурация и права доступа
[ui]
username = NieAR <mymail@example.com>
[web]
push_ssl=False
allow_push=*
Конечно же, если работать удаленно с репозиторием то username включать в файл не нужно. - В адресной строке браузера переходим на localhost/hg/myrepo
Материал подготовлен при помощи JeanLouis, личного опыта, а также с использованием этой, этой и этой ссылки. Про работу с Mercurial (в частности с репозиторием, находящимся на сервере) советую почитать здесь.