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:
- 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,
- 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: /“
Dzięki – na pewno się przyda
Comment - autor: motoryzacja | 24 sierpień, 2009 |