Linux Debian: instalacja i konfiguracja SVN z dostępem HTTP (WebDAV)

subversion_logo-150
Tym razem krótkie how to z instalacją serwera SVN z dostępem przez HTTP. W Internecie jest dużo pomocy, ale jak zwykle jak sam szukałem to znalazłem bardzo dużo śmieci w postaci zainstaluj to, wpisz tamto, ale ktoś zapominał np. o podaniu poprawnej konfiguracji apache2 lub utworzeniu użytkowników. Czasem też ktoś w ogóle nigdzie nie wspominał o potrzebie instalacji apache2 (a później ktoś nieobeznany pyta dlaczego to nie działa i się okazuje, ze nie ma zainstalowanego apache2 hehe). Rodzą się pytania, których nie powinno być, a wszystko przez nieudolnie opisany sposób instalacji i konfiguracji serwera. Opisałem poniżej sposób instalacji i konfiguracji serwera, który wymaga zalogowania się do SVN. Ma to być prywatny serwer SVN, a nie publiczny. 🙂

Przejdźmy do rzeczy. Opis obejmuje obsługę przez użytkowników z pełnymi uprawnieniami (zapis/odczyt). W przyszłości opiszę sposób konfiguracji gdzie użytkownicy mają przydzielone uprawnienia do poszczególnych repozytoriów. W warunkach domowych opisana tutaj instalacja i konfiguracja jest prosta, szybka i wystarczająca.

Na początek update apt-get

apt-get update

Najpierw instalujemy apache2, subversion i libapache2-svn

apt-get install apache2 subversion libapache2-svn  -y

Tworzymy katalog dla repozytoriów SVN.

mkdir /svn

Oczywiście to tylko przykład. Ja np. u siebie mam katalog na osobnej macierzy RAID1 i tam przechowuję repozytoria.

Tworzymy pierwsze repozytorium

svnadmin create /svn/project1

Teraz ustawiamy uprawnienia. Bez tego nie będziemy mieli dostępu do naszego repozytorium. Robimy to po komendzie svnadmin create ponieważ ta komenda utworzy repozytorium, ale z uprawnieniami i właścicielem root, a my potrzebujemy www-data.

chown -R www-data:www-data /svn

Przechodzimy do edycji dav_svn.conf. Używam do tego celu nano. Kto nie ma to może zainstalować (apt-get install nano -y).

nano /etc/apache2/mods-enabled/dav_svn.conf

W pliku wpisujemy konfigurację taką jak poniższa. Oczywiście jeśli ktoś ma inne ścieżki dostępu do plików/katalogu z repozytorium to wpisuje swoje.

<Location /svn>
  DAV svn
  SVNParentPath /svn
  SVNListParentPath on
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  Require valid-user 
</Location>    

to alias pod którym wywołujemy nasze SVN. Czyli jeśli wpiszemy /subversion to adres bedzie http://adres_serwera/subversion
SVNParentPath to ścieżka do katalogu z repozytoriami. Ten parametr w odróżnieniu od SVNPath pozwala na wskazanie katalogu, w którym są repozytoria. Przydatne gdy prowadzimy wiele projektów. SVNPath wskazuje tylko na konkretne repozytorium.
SVNListParentPath on – parametr, który włącza możliwość listowania dostępnych repozytoriów w SVNParentPath (np. jak wejdziemy przez przeglądarkę na adres http://adres_serwera/subversion to po zalogowaniu się pokaże się lista repozytoriów).

Tworzymy użytkownika z hasłem

htpasswd -cm /etc/apache2/dav_svn.passwd <username>

Gdzie wpisujemy nazwę użytkownika np. admin. Zostaniemy zapytani o hasło więc podajemy hasło do tego konta i enter.

Restartujemy apache

service apache2 restart

lub

/etc/init.d/apache2 restart

Nasze repozytorium powinno być dostępne pod adresem: http://adres_ip_serwer/svn/project1
Powinniśmy zobaczyć w przeglądarce:

project1 - Revision 0: /

Powered by Subversion version 1.6.17 (r1128011).

Przy użyciu np. TortoiseSVN pod Windowsem możemy swobodnie robić chekcout/update i commitować dane do repozytorium przy użyciu utworzonego użytkownika.

You can leave a response, or trackback from your own site.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Powered by WordPress | Designed by: NewWpThemes | Provided by Free WordPress Themes