10 нояб. 2011 г.

Установка SVN + mod-dav в Linux

Недавно был такой таск - установить на клиентский тазик связку svn + mod_dav для апача с соединением по HTTPS. ОС там была Ubuntu, а в ней настройка апача не совсем как везде :) Так что смотрите.

Пошагово делаем так:

1. Устанавливаем subversion:

sudo apt-get install subversion libapache2-svn apache2

2. Включаем ssl модуль для апача. Если нам ssl не нужен, то пропускаем пункты 2-4.

sudo a2enmod ssl

3. Копируем наш ключ в /etc/apache2/ssl либо создаем новый командой:

sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

4. Выставляем права доступа к сертификату иначе "кина не будет".

sudo chmod 600 /etc/apache2/ssl/apache.pem

5. Включаем модуль dav для апача:

sudo a2enmod dav dav_svn

6. Добавляем конфиг для mod_dav в файл apache2.conf в конец или в файл /etc/apache2/mods-available/dav_svn.conf


<Location /opt/testrepo>
DAV svn
SVNPath /opt/testrepo/
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /opt/testrepo/svnpasswd
require valid-user
SSLRequireSSL                  #закомментировать если не надо ssl
Order deny,allow
</Location>


7. Перезагружаем апач после внесения всех изменений:

sudo /etc/init.d/apache2 reload

8. Создаем репозиторий svn и его структуру:

sudo svn mkdir file:///opt/testrepo -m "Testing Initial SVN Structure"
sudo svnadmin create /opt/testrepo

Далее импортируем существующий код в репозиторий:

sudo svn mkdir file:///opt/testrepo/project -m "Project zero"
sudo svn import /home/user/project file:///opt/testrepo/project

Содержимое папки /home/user/project будет добавлено в папку /opt/testrepo/project Просмотреть что мы наимпортировали можно командой:

sudo svn ls file:///opt/testrepo/poject/

9. Создаем пользователя:

sudo htpasswd -cm /opt/testrepo/svnpasswd usera

Когда будем создавать 2го и т. д., то необходимо убрать опцию -c - она нужна для создания файла. А опция -m нужна для указания криптовать пароли md5 алгоритмом.

Теперь наш репозиторий будет доступен по адресу https://ourdomain.int/opt/testrepo после авторизации.

Если нужно добавить еще репозитории, то повторяем шаги 6-9 только с новыми путями, проверьте внимательно.

Вроде бы усё... Ну, может что-то забыл, но в таком случае гугл вам точно поможет - а то память не резиновая :)