Heavymind
Gdyby ludzie rozmawiali tylko o tym, co rozumieją, zapadłaby nad światem wielka cisza.

02/04/2011

Instalacja servera svn na ubuntu 10.04 /32bit

Opublikowane jako: Apache, Subversion — Tags: , , — Kubek Bartosz @ 15:51

Możliwe są 3 rodzaje instalacji serwera svn:

  • SVN+SSH
  • SVN+Apache
  • SVNServe

Ja wybrałem “SVN+Apache”.
Generalnie, instrukcje te powinny działać dla przedziału wersji ubuntu 7.x do 10.x, jednak zaznaczam że testowane było na 10.04 32bit.

Apache2 musi już działać (i być dostępne z zewnątrz (z internetu) jeśli do SVN też chcesz mieć dostęp), a program `svnadmin` powinien być zainstalowany. Wywołując ‘svnadmin help‘ sprawdzam czy działa. Jak nie, to należy doinstalować pakiet `subversion`.

Czas rozpocząć.
Tworzę katalog na repozytoria svn:
sudo mkdir -pv /var/svnRepositories
oraz nadaję my prawa 777:
sudo chmod 777 /var/svnRepositories

Na później, tworzę standardową strukturę katalogów dla projektu, gdzie “myProject” to nazwa projektu:

mkdir -pv /tmp/layout/myProject/branches/work #( tutaj trzyma się wersję rozwojową )
mkdir -pv /tmp/layout/myProject/tags #( tutaj tworzy się tagi wersji stabilnych )

Przelogowuję się na użytkownika www-data (czyli apache2), tak by przez niego stworzone pliki i katalogi miały właściciela apache2, które to apache2 później będzie pisało i czytało z repozytorium podczas korzystania z SVN):
sudo su www-data

Tworzę jedno główne repozytorium svn:

cd /var/svnRepositories
svnadmin create --fs-type fsfs /var/svnRepositories/svn

Tworzę plik z uprawnieniami dostępu do wyżej stworzonego repozytorium:

cd /var/svnRepositories
touch svn/conf/svn-auth-file
htpasswd -cmd svn/conf/svn-auth-file bkubek

…gdzie “bkubek” to nazwa usera. Po tym trzeba wpisac hasło by je stworzyć dla tego usera.

Importuję standardowy zestaw katalogów dla projektu (stworzony w punkcie 4 )
svn import /tmp/layout http://127.0.0.1/svn -m"initial structure"
jeśli CLI zapyta o:
    Hasło ‘www-data’:
to klikam “enter” by zapytał o innego usera svn, dla którego znam hasło. Dokładnie to podam mu usera “bkubek” z punktu 7. Czyli :
    Obszar uwierzytelniania: Subversion repository
    Użytkownik: bkubek
    Hasło ‘bkubek’: #… podaję wcześniej stworzone hasło
gdy CLI zapyta mnie:
    Zapisać hasło bez szyfrowania (tak/nie)?
…odpowiadam “tak”

Wychodzę z usera www-data poleceniem:
exit

Repozytorium stworzone. Teraz trzeba SVN sprzęgnąć z Apache.
Apache2 raczej posiada już MOD “dav”. Aby to sprawdzić, sprawdzam czy w katalogu:
    /etc/apache2/mods-available
…istnieją pliki:
    dav.load
    dav_fs.conf
    dav_fs.load
    dav_lock.load
Powinny. Trzeba zrobić im linki symboliczne do lokalizacji:
    /etc/apache2/mods-enabled

Apache2 raczej nie posiada domyślnie MODa “dav” do svn. Czyli w katalogu
    /etc/apache2/mods-available
…raczej nie istnieją pliki:
    dav_svn.conf
    dav_svn.load
…dlatego instaluję pakiet:
sudo aptitude install libapache2-svn

Po tym sprawdzić mi należy czy te dwa pliki :
    dav_svn.conf
    dav_svn.load
…mają automatycznie już symlinki w:
    /etc/apache2/mods-available
…i jeśli nie, to trzeba je stworzyć, z orginałów w:
    /etc/apache2/mods-available

Teraz konkret sprawa: dopisanie do konfiguracji apache informacji o tym gdzie leży svn repozytorium:
sudo mcedit /etc/apache2/apache2.conf

…i dopisuję na końcu pliku :

<Location /svn>
    DAV svn
    SVNPath /var/svnRepositories/svn/
    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile /var/svnRepositories/svn/conf/svn-auth-file
    Require valid-user
</Location>

Teraz restart apache2:
sudo /etc/init.d/apache2 restart

…i wypadało by usunąć katalog:
    /tmp/layout

Koniec. Serwer SVN działa :) Powinien ;)

Stawianie lokalnej kopii svn (checkout)

Ot taki bonus. Powiedzmy że chcemy nowy projekt postawić w :
    /var/www/myProject/
więc jedziemy:

sudo mkdir -pv /var/www/myProject
sudo chmod 777 /var/www/myProject
cd /var/www/myProject

teraz wystarczy przez svn wskazać że tutaj jest nasz projekt i “z-checkout-ować” repo svn tutaj:
svn co http://127.0.0.1/svn/myProject/branches/work .

teraz można dodać i wysłać przykładowy plik do servera svn:

touch example.txt
svn add example.txt
svn ci -m"example file"

fine.



12/04/2008

Dostęp do kodów źródłowych samouczków Zend Framework

Opublikowane jako: Subversion, Zend — Tags: , , , , — Kubek Bartosz @ 15:08

Świadom zapotrzebowania, przygotowałem drodzy moi czytelnicy, dostęp do kodów źródłowych, gotowych przykładów samouczków z serii Zend Framework. Dostęp do źródeł za pośrednictwem serwera SVN, udostępniam dzięki usługom Google Code.

Osobom nie znającym jeszcze systemu kontrolowania wersji Subversion (SVN), polacam zapoznanie się z jego możliwościami i obsługą, ponieważ jest to jedno z podstawowych narzędzi każdego programisty. Aktualnie, czasowo nie jestem w stanie, by streścić podstawy obsługi jakiegokolwiek klienta SVN, dlatego odsyłam do źródeł wujka Google.

Szczegóły nt. dostępu do kolejnych tagów repozytoriów odpowiednich części samouczka, znajdują sie w dodanych przez mnie sekcjach owych samouczków. Są nimi kolejno:

Celowo nie zamieściłem odnośników do repozytorium z kodem źródłowym aplikacji z III części samouczka “Zend Framework Tutorial - Rozwijanie Zend View - Zend Layout“, dlatego że po opublikowaniu Zend Framework w wersji 1.5.1, treść tego artykułu wymaga gruntownego przepisania. Wiąże się to bezpośrednio z faktem załączenia do jądra Zend Frameworka biblioteki Zend_Layout, która w III części samouczka jest opisana jako dodatkowa biblioteka rozszerzająca. Przy tej okazji nie radzę wręcz, by starać się korzystać z treści tej części samouczka.



Oparte na WordPress