Zenedith's dev blog

Dałem się namówić.., szatanowi chyba..

Repozytorium kodu SVN – debian + apache2

Dziś na szybko o instalacji i konfiguracji repozytorium SVN jako modułu dla apache2.

Instalacja

Zakładając, że sam apache2 jest poprawnie skonfigurowany (o czym można przeczytać tutaj), należy dograć do systemu sam system kontroli wersji:

aptitude install subversion

Następnie będziemy potrzebować odpowiedniego modułu dla apache2 – ściągniemy go dzięki poleceniu:

aptitude install libapache2-svn

Po zrestartowaniu apache2 moduł automatycznie powinien zostać załadowany, co może potwierdzić phpinfo(). Jeśli się tak jednak nie stało, trzeba go (oraz zależny dla niego moduł dav) aktywować poleceniem:

a2enmod dav_svn

Po ponownym restarcie powinien już być widoczny w phpinfo().

Konfiguracja

Konfiguracji możemy dokonać globalnie (dla wszystkich vhost’ów) lub dla wybranych.
Taka konfiguracja różni się tylko tym, że modyfikowane są inne pliki:

  1. Dla ustawień globalnych będzie to plik: /etc/apache2/mods-enabled/dav_svn.conf, w którym znajdziemy również dużo informacji na temat konfiguracji,
  2. Dla ustawień per vhost : każdy z plików vhosta w katalogu: /etc/apache2/sites-enabled, czyli np. domyślny plik 000-default.

Objaśnię to na przykładowej konfiguracji:

 # URL controls how the repository appears to the outside world.
 # In this example clients access the repository as http://hostname/svn/
 # Note, a literal /svn should NOT exist in your document root.

 # Wskazujemy tutaj nazwe (alias) pod jakim będzie dostępne repozytorium,
 # w poniższym przykładzie będzie to http://hostname/svn/, czyli standarowe
 # http://localhost/svn/

  <Location /svn>

  # Uncomment this to enable the repository
  # Żeby moduł wogóle włączyć, musimy mieć tę linię odkomentowaną
  DAV svn

  # Set this to the path to your repository
  # Jeśli posiadamy jedno repozytorium to podajemy tutaj całą ścieżkę (absolutną) do katalogu
  # z repozytorium. W podanym przypadku łączę się z repozytorium, które zostało stworzone w
  # systemie windows na partycji E, która została zmapowana w debianie jako dysk /media/programs/,
  # a więc do katalogu E:/Program Files/SVN/, w którym jest repo.
  # Ponieważ w nazwie katalogu jest spacja, ścieżka musi zostać wzięta w "".

  # W przypadku, gdy w katalogu posiadamy więcej repozytoriów, należy użyć SVNParentPath,
  # gdzie po http://localhost/svn/ dopisujemy jeszcze nazwę wybranego repozytorium,
  # czyli np. http://loclahost/svn/repo1/

  SVNPath "/media/programs/Program Files/SVN/"

 # Uprawnienia - mamy 3 sposoby sterowania uprawnieniami, omówię tylko jeden najprostszy,
 # doskonały w domowych zastosowaniach.
 # Daje on możliwość zapisu i odczytu dla wszystkich użytkowników (bez identyfikacji).
 # Jeśli chcemy dać prawo readonly to usuwamy # sprzed Deny from all dla sekcji LimitExcept.

 # write acces - mozliwosc zapisu
  <LimitExcept GET PROPFIND OPTIONS REPORT>
   #Deny from all
  </LimitExcept>

  # read access
  <Limit GET PROPFIND OPTIONS REPORT>
    #Deny from all
  </Limit>

</Location>

Jeśli nie posiadamy repo, utworzymy je dzięki:

svnadmin create /url/to/repo

gdzie /url/to/repo to cała ścieżka (absolutna) do katalogu repozytorium, któremu należy nadać odpowiednie uprawnienia (najlepiej wszystkie):

chmod -R 777 /url/to/repo/

W tym momencie należy zmienić zapis do naszego repo w sekcji Location pliku konfiguracji apache2, zrestartować serwer apache2 i sprawdzić zawartość strony http://localhost/svn/.
Jeśli wszystko się powiodło, będziemy mogli przeglądać repo, które po utworzeniu będzie puste, o czym będzie świadczył napis “svn – Revision 0: /

22 sierpień, 2009 - Opublikował/a zenedith | debian, web | , , | 1 komentarz

1 komentarz »

  1. Dzięki – na pewno się przyda

    Comment - autor: motoryzacja | 24 sierpień, 2009 | Odpowiedz


Dodaj komentarz