Subversion
Fejlesztésekhez jól jön egy verziókövető rendszer, amelyre én a Subversion-t (röviden svn-t) használom, az svn jail feladata, hogy futtassa ezt a programot. Hozzuk létre, és a ejtsük meg a már megszokott tevékenységeket, majd telepítsük fel a subversion programot (kell majd MOD_DAV_SVN és SVNSERVE_WRAPPER). Mivel kiválasztottuk a mod_dav_svn készítését, ezért függőségben feltelepülne egy Apache kiszolgáló is, amely majd a DAV elérést adja, de mivel az svn használatához elég a 2.0.x verzió, ezért inkább tegyünk fel előre egy 2.2.x verziót (a BDB opciót válasszuk ki!), ha már mindenhova azt tettünk...
Kezdjük azzal, hogy ide is felmásoljuk a mod_logging.conf és a mod_vhost.conf állományokat (lásd Web), mivel itt is azt szeretnénk, hogy a logserver kapja a naplóbejegyzéseket, illetve szeretnénk virtuális hosztokat kezelni. Ezen túl az svn repó elérését az alábbiak szerint tudjuk beállítani:
## svn.javaforum.hu <VirtualHost *:80> ServerAdmin auth.gabor@javakocsma.hu ServerName svn.javaforum.hu DocumentRoot /usr/local/www/apache22/data/ <IfModule dav_svn_module> <Location "/svn"> DAV svn SVNParentPath /data/svn SVNListParentPath on DefaultType text/plain Satisfy Any Require valid-user <IfModule authz_svn_module> AuthzSVNAccessFile /data/svn/access.conf </IfModule> AuthType Basic AuthName "Java Forum 2.0 Subversion Repository" AuthUserFile /data/svn/passwd </Location> </IfModule> </VirtualHost>
Három lényeges beállítást láthatunk itt:
- SVNParentPath, amely megmondja, hogy hol találhatók a repók
- AuthzSVNAccessFile, amely megmondja, hogy hol van az az állomány, ahol a hozzáférési jogokat tároljuk
- AuthUserFile, amely megmondja, hogy a felhasználókat és jelszavakat hol tároljuk
Az Apache és az svn beállítása nagyon jól dokumentált, ezért nem részletezném a többit (repó létrehozása, stb.), ellenben az rc.conf állományba több sort is írnunk kell:
apache22_enable="YES" svnserve_enable="YES" svnserve_data="/data/svn/" svnserve_user="www" svnserve_group="www" svnserve_flags="-d --listen-port=3690 --listen-host=svn.jails.javaforum.hu"
Az Apache futását kívül engedélyezzük az svnserve futását is, amely az svn saját protokollján is hozzáférést enged a repókhoz.
Subversion Access Manager
Az svn kezelhető parancssorból is, hiszen egy szöveges állományt kell csak kezelni, illetve a jelszavakat a htpasswd segítségével, de célszerűbb erre egy PHP alapú webes program, mint amilyen például a http://sourceforge.net/projects/svn-access-mana/ címről letölthető SVN Access Manager, amely sajnos máig nincs a Ports adatbázisban.
A már telepített MySQL-t fogjuk használni hozzá, ezért első lépésként hozzuk létre a szükséges felhasználót és adatbázist (a mysql jail-ben):
mysql> CREATE DATABASE svnadmin; Query OK, 1 row affected (0.02 sec) mysql> CREATE USER 'svnadmin'@'192.168.%' IDENTIFIED BY 'svnPass'; Query OK, 0 rows affected (0.04 sec) mysql> GRANT USAGE ON *.* TO 'svnadmin'@'192.168.%' IDENTIFIED BY 'svnPass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0; Query OK, 0 rows affected (0.01 sec) mysql> GRANT ALL PRIVILEGES ON `svnadmin`.* TO 'svnadmin'@'192.168.%'; Query OK, 0 rows affected (0.00 sec)
A PHP program miatt szükséges a php5 csomag telepítése (APACHE és MULTIBYTE opciókkal, illetve a php5-session, a php5-mysql és a php5-gettext csomag is szükséges. A letöltött programot csomagoljuk ki a /data könyvtárban, és hozzuk létre egy virtuális hoszt fájlt az Apache számára. Ezek után a http://svnadmin.javaforum.hu/install/install.php címen be tudjuk állítani a szükséges konfigurációs adatokat.