最近寫程式時發現程式管理上有點不順,上網查了一下,發現有些人是用SVN來做管理,看起來還不錯用,就來給它架一個用用,方法如下:
1. 先裝應用程式及相關軟體
sudo apt-get install subversion libapache2-svn apache2
2. 建立相關目錄及新增設定到apache2
sudo mkdir /svn
sudo mkdir /svn/repo
# build project name to svn
sudo svnadmin create /svn/repo/alldata
# modify apache2 settings
sudo vim /etc/apache2/mods-enabled/dav_svn.conf
<Location /svn> DAV svn SVNParentPath /svn/repo/ SVNListParentPath On AuthType Basic AuthName "Project backup" #AuthUserFile /etc/apache2/dav_svn_passwd AuthUserFile /etc/subversion/passwd AuthzSVNAccessFile /svn/repo/alldata/conf/authz Require valid-user </Location>3. 建立使用者
sudo htpasswd -cm /etc/subversion/passwd username
會要求你輸入使用者的密碼二次。-c的參數在建立第一個使用者時使用,第二位使用者就不用加了,不然會把passwd檔重建。
4. 設定project目錄權限給apache2
sudo chown -R www-data:www-data /svn/repo/alldata
5. 設定project使用者權限
sudo gedit /svn/repo/alldata/conf/authz
[groups] admin = gordon # 建立群組 # [/] * = @admin = rw [SVN:/] @admin = rw [alldata:/] @admin = rw
[project name:/] project name
@admin = rw 群組名稱及權限, r read, w write
6. 重開apache2
sudo /etc/init.d/apache2 restart
7. 若發生AuthzSVNAccessFile錯誤,請以下列方式修改,再重開apache2
sudo vim /etc/apache2/mods-enabled/dav.load
加入
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so