http://mhbjava.javaeye.com/blog/26594
http://www.ybfq.com/lamp/svn-subversion-command-flowchart-in-website-design/
1.需要兩個檔案,httpd和subversion. httpd是web伺服器,用來通過web訪問subversion,httpd可以在apache官方網站上下載到
2.建立一個使用者:svnroot
最好不要讓root使用者參與到svn的許可權管理和日常的運行和維護工作中來,但是下面的一些安裝和配置操作還是 需要root使用者來完成的,因為有些操作只有root才能做。許可權問題很重要。曾經因為許可權問題折騰了一天。
3.編譯安裝httpd (root使用者操作):
//解壓apache2安裝包 # tar xvzf httpd-2.2.2.tar.gz //進入解壓後的目錄 # cd httpd-2.2.2 //配置apache安裝,前兩個參數是必須要加的,你還可以根據您的需要添加其他的參數。 //後面的參數制定你要把apache安裝哪裡 # ./configure --enable-dav --enable-so --prefix=/usr/local/apache2/ # make //安裝 # make install # cd /usr/local/apache2/bin //啟動apache服務 # ./apachectl start //開啟瀏覽器http://localhost/如果有測試頁"It works!"出現則證明已經安裝成功。 |
4.
安裝Subversion
//解壓SubVersion安裝包 (root使用者進行下面的操作) # tar xvzf Subversion-1.3.1.tar.gz //進入解壓後的目錄 # cd Subversion-1.3.1 //配置subversion安裝 #./configure --with-apxs=/usr/local/apache2/bin/apxs --prefix=/usr/local/subversion --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2 --with-ssl --with-zlib --enable-maintainer-mode # make //安裝 # make install //建立庫檔案所在的目錄 (svnroot使用者進行下面的操作) # mkdir /home/svnroot/repository //進入subversion的bin目錄 # cd /usr/local/subversion/bin //建立倉庫"test" # ./svnadmin create /home/svnroot/repository/test # cd /home/svnroot/repository/test //看看是不是多了些檔案,如果是則說明Subversion安裝成功了 # ls –l # cd /usr/local/subversion/bin //這條語句將把路徑/home/user/import下找到的檔案匯入到你建立的Subversion 倉庫中去, //提交後的修訂版為1。 # ./svn import /home/user/import file:///home/svnroot/repository/test –m "注釋" //不讓其他人有該目錄的許可權 # chmod 700 /home/svnroot/repository |
5.修改Apache設定檔
# cd /usr/local/apadche2/bin //啟動Apache # ./apachect1 start # vi /usr/local/apache2/conf/httpd.conf //在最下面添加 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /svn> DAV svn SVNParentPath /home/svnroot/repository/ //svn父目錄 AuthzSVNAccessFile /home/svnroot/repository/authz.conf //許可權設定檔 AuthType Basic //連線類型設定 AuthName "Subversion.zoneyump" //串連框提示 AuthUserFile /home/svnroot/repository/authfile //使用者設定檔 Require valid-user //採用何種認證 </Location> //其中authfile是通過"htpasswd [–c] /home/svnroot/repository/authfile username password"來建立的 //"Require valid-user"告訴apache在authfile中所有的使用者都可以訪問。如果沒有它, //則只能第一個使用者可以訪問建立庫 |
6.重啟apache
# ./usr/local/apache2/bin/apachectl restart //開啟瀏覽器訪問http://localhost/svn/test/,如果有東西顯示就說明成功。 |
7.許可權管理
1)增加使用者
# htpasswd [-c] /home/svnroot/repository/authfile wooin //第一次設定使用者時使用-c表示建立一個使用者檔案。斷行符號後輸入使用者密碼,完成對使用者的增加 # htpasswd authfile 使用者名稱(加入新的使用者) |
2)許可權分配
# vi /home/svnroot/repository/authz.conf [test:/] //這表示,倉庫test的根目錄下的存取權限 wooin = rw //test倉庫wooin使用者具有讀和寫入權限 bao = r //test倉庫bao使用者具有讀許可權 [test2:/] //test2倉庫根目錄下的存取權限 wooin = r //wooin使用者在test2倉庫根目錄下只有讀許可權 bao = //bao使用者在 test2倉庫根目錄下無任何許可權 [/] //這個表示在所有倉庫的根目錄下 * = r //這個表示對所有的使用者都具有讀許可權 #[groups] //這個表示群組設定 #svn1-developers = wooin, bao //這個表示某群組裡的成員 #svn2-developers = wooin #[svn1:/] #@svn1-developers = rw //如果在前面加上@符號,則表示這是個群組使用權限設定 |
將這個設定完成後。重啟Apache,就可以通過
http://localhost/svn/test
這個URL來訪問倉庫了,當然,受許可權的限制,必須是合法使用者才能訪問且具有相應的許可權
備忘:
1。apache進程的許可權:因為所有跟倉庫傳輸的操作都是通過apache進程進行的,所以即使你給svn使用者佈建了
很大的許可權,但是apache進程沒有訪問倉庫或者相關檔案的許可權也沒有用,apache進程的使用權限設定在
/usr/local/apache2/conf/httpd.conf 檔案中配置,找到檔案中的這兩行:
User daemon # 將daemon改為svnroot,讓apache進程以svnroot的身份運行 Group daemon |
2。
在/etc/profile的結尾設定一些svn啟動時要做的工作
# start apache server for svn /usr/sbin/apachectl start export SVN_EDITOR=vi |
3。/home/respository/svnroot下的檔案操作許可權有給svnroot.