Установка Subversion + Trac под Windows

На главную - Статьи

Установка Subversion + Trac под Windows

Компоненты

Перед установкой убеждаемся, что имеются все необходимые компоненты:

Установка

  • Устанавливаем Subversion 1.4.4 - подробнее о работе с subversion можно почитать в книге Управление версиями в Subversion.
  • Заменяем файлы в каталоге "C:\Program Files\Subversion" файлами из архива Subversion 1.4.4 binaries for Apache 2.2.x, т.к. иначе сервис Apache не запустится, когда будут подключены *.so модули от Subversion.
  • Опционально: Устанавливаем TortoiseSVN 1.4.4 и перегружаем компьютер в конце по просьбе инсталятора.
  • Устанавливаем Python 2.5.1. По-умолчанию устанавливается в каталог "C:\Python25". Убеждаемся, что в переменной окружения PATH есть этот путь.
  • Устанавливаем Setuptools командой (потребуется соединение с интернетом):
    python ez_setup.py
  • Опционально: Устанавливаем Pygments 0.8.1 - распаковываем архив и внутри каталога Pygments-0.8.1 выполняем команду:
    python setup.py install
  • Опционально: Устанавливаем pytz 2007f - распаковываем архив и внутри каталога pytz-2007f выполняем команду:
    python setup.py install
  • Опционально: Устанавливаем docutils 0.4 - распаковываем архив и внутри каталога docutils-0.4 выполняем команду:
    python setup.py install
  • Устанавливаем Python 2.5 bindings for Subversion 1.4.4. Обратите внимание, что вы скачали версию скомпилированную под Apache 2.2.x. Если это будет другая версия, то при установке Trac
  • Устанавливаем Genshi 0.4.3 - распаковываем архив и внутри каталога Genshi-0.4.3 выполняем команду:
    python setup.py install
  • Устанавливаем SQLite 2.3.5 bindings for Python 2.5.
  • Устанавливаем SQLite 3.4.1 - распаковываем из архива файл sqlite3.exe в каталог "C:\Python25".
  • Создаём репозиторий
    • Создаём каталог:
      mkdir c:\svn
    • Создаём в нём репозиторий:
      svnadmin create c:\svn\work
  • Устанаваливаем Apache 2.2.4:
    Network domain: localhost
    Server name: localhost
    Administrator's Email Address: admin@email
    Install Apache for All Users, on Port 80, as a Service
    Останваливаем пока сервер:
    • Останавливаем сервис:
      net stop Apache2
    • Убиваем процесс ApacheMonitor:
      taskkill /im apachemonitor.exe
    Меняем порт сервера с 80 на 8080:
    • Идем в каталог "C:\Program Files\Apache Software Foundation\Apache2.2\conf", где по-умолчанию хранятся настройки Apache и редактируем файл httpd.conf.
    • Строку
      Listen 80
      меняем на
      Listen 8080
    • Строку
      ServerName localhost:80
      меняем на
      ServerName localhost:8080
    Конфигурируем Apache:
    • Создаём файл конфигурации для Apache с паролем для пользователя admin:
      "C:\Program Files\Apache Software Foundation\Apache2.2\bin\htpasswd" -cm c:\svn\work\.htpasswd admin
    • В файле httpd.conf раскомментируем строки (убрав перед ними символ '#'):
      LoadModule dav_module modules/mod_dav.so
      LoadModule dav_fs_module modules/mod_dav_fs.so
    • Там же добавляем строки:
      LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"
      LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so"
    • В конце того же файла добавляем строки:
      # Subversion
      <Location /svn/work>
        DAV svn
        SVNPath "c:/svn/work"
        AuthType Basic
        AuthName "Subversion"
        AuthUserFile "c:/svn/work/.htpasswd"
        AuthzSVNAccessFile "c:/svn/work/conf/authz"
        # try anonymous access first, resort to real authentication if necessary.
        Satisfy any
        Require valid-user
      
       Order deny,allow
        Deny from all
        # add granted ip's:
        Allow from localhost
      </Location>
    • Далее редактируем файл "c:/svn/work/conf/authz", чтобы позволить пользователю admin читать и писать в репозиторий, а остальным только читать:
      [groups]
      admins = admin
      
      [/]
      @admins = rw
      * = r
    • Запускаем сервис Apache:
      net start Apache2
    • Тестируем наш Subversion под Apache:
      http://localhost:8080/svn/work/
  • Устанавливаем mod_python 3.3.1. После окончания инсталляции останавливаем сервер Apache:
    net stop Apache2
    и вписываем в конфигурационный файл Apache httpd.conf строку:
    LoadModule python_module modules/mod_python.so
    Проверяем как прошла установка:
    • Дописываем в конец файла httpd.conf строки для тестирования:
      <Location /mpinfo>
       SetHandler mod_python
       PythonHandler mod_python.testhandler
      </Location>
    • Запускаем сервис Apache:
      net start Apache2
    • Проверяем, что mod_python работает:
      http://localhost:8080/mpinfo/
    • В целях безопасности останавливаем сервер:
      net stop Apache2
      и удаляем из файла httpd.conf строки вставленные выше для тестирования .
  • Устанавливаем Trac 0.11dev (потребуется соединение с интернетом):
    cd C:\src
    svn checkout http://svn.edgewall.org/repos/trac/trunk
    cd trunk
    python setup.py install
    На момент моей установки Trac командой checkout я получили последнюю ревизию под номером 5866. Если в будущем возникнет необходимость получить ту же самую ревизию, а не последнюю на момент установки, то команду checkout нужно будет изменить:
    svn checkout -r 5866 http://svn.edgewall.org/repos/trac/trunk
  • Настраиваем Trac:
    • Инициализируем БД Trac для нашего репозитория. Считаем, что всё, что касается Trac, будет располагаться в каталоге "c:\svn\work.db":
      cd C:\Python25\Scripts
      trac-admin c:/svn/work.db initenv
      На вопросы отвечаем примерно так:
      Project Name [My Project]> My Work
      Database connection string [sqlite:db/trac.db]>
      Repository type [svn]>
      Path to repository [/path/to/repos]> c:/svn/work
      Важно правильно указать путь к репозиторию. Если значение по-умолчанию в квадратных скобках совпадает с желаемым, то можно нажать просто Enter.
      После установки последним сообщением должны увидеть:
      Congratulations!
    • Даём пользователю admin все административные привилегии:
      trac-admin c:/svn/work.db permission add admin TRAC_ADMIN
    • Дописываем в конфигурационный файл Apache httpd.conf строки:
      <Location /trac/work>
        SetHandler mod_python
        PythonHandler trac.web.modpython_frontend
        PythonOption TracEnv "c:/svn/work.db"
        PythonOption TracUriRoot /trac/work
      
        AuthType Basic
        AuthName "Work Trac Login"
        AuthUserFile "c:/svn/work/.htpasswd"
        Require valid-user
      
        Order deny,allow
        Deny from all
        Allow from localhost
      </Location>
    • Запускаем сервис Apache:
      net start Apache2
      и проверям работу Trac:
      http://localhost:8080/trac/work/
  • Теперь на компьютере установлены и функционируют Python 2.5.1, Apache 2.2.4, Subversion 1.4.4 и Trac 0.11dev.