Subversion (svn)的安裝配置

Linux下SVN服務器的搭建與配置 
一、準備 
OS:Linux  
二、安裝 

[plain] view plaincopy
  1. #cd /usr/local/src/tarbag  
  2. #tar –xzvf subversion-1.6.6.tar.gz –C ../software/  
  3. #cd /usr/local/src/software/subversion-1.6.6  
  4. #./configure /  
  5. --prefix=/usr/local/subversion /     //設置安裝目錄  
  6. --with-apr=/usr/local/apache2.2.15 /     //指向apr配置文件所在目錄,爲了和apache同步所以指到這  
  7. --with-apr-util=/usr/local/apache2.2.15 /    //同上  
  8. --with-apxs=/usr/local/apache2.2.15/bin/apxs /  
  9. --with-ssl /   //ssl加密  
  10. --with-zlib /  
  11. --enable-maintainer-mode  
  12. #make && make install  //編譯安裝  

[plain] view plaincopy
  1. ( 如果./configure編譯出錯:  
  2. get the sqlite 3.6.13 amalgamation from:  
  3. http://www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz  
  4. unpack the archive using tar/gunzip and copy sqlite3.c from the  
  5. resulting directory to:  
  6. This file also ships as part of the subversion-deps distribution.  
  7. configure: error: Subversion requires SQLite  
  8. 按照以上提示下載sqlite-amalgamation-3.6.13.tar.gz  
  9. #cd /usr/local/src/tarbag  
  10. #wget http://www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz  
  11. #tar zxvf sqlite-amalgamation-3.6.13.tar.gz -C ../software  
  12. # mkdir /usr/local/src/software/subversion-1.6.6/sqlite-amalgamation  
  13. # cp /usr/local/src/software/sqlite-3.6.13/sqlite3.c /usr/local/software/subversion-1.6.6/sqlite-amalgamation/  
  14. #cd /usr/local/src/software/subversion-1.6.6  
  15. 再次configure,報錯如下:  
  16. configure: maintainer-mode: adding GCC warning flags  
  17. configure: error: –with-zlib requires an argument.  
  18. 安裝zlib,下載subversion-deps-1.6.6.tar.bz2  
  19. #cd /usr/local/src/tarbag  
  20. #wget http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.bz2  
  21. #tar jxvf subversion-deps-1.6.6.tar.bz2 -C ../software  
  22. # cd ../software/subversion-1.6.6/zlib/  
  23. # ./configure –shared  
  24. # make  
  25. #cd /usr/local/src/software/subversion-1.6.6  
  26. 再次configure:  
  27. #./configure /  
  28. --prefix=/usr/local/subversion /     //設置安裝目錄  
  29. --with-apr=/usr/local/apache2 /     //指向apr配置文件所在目錄,爲了和apache同步所以指到這  
  30. --with-apr-util=/usr/local/apache2 /    //同上  
  31. --with-apxs=/usr/local/apache2/bin/apxs /  
  32. --with-ssl /   //ssl加密  
  33. --with-zlib--with-zlib=/usr/local/src/software/subversion-1.6.6/zlib/  /  //指定剛剛安裝的zlib目錄  
  34. --enable-maintainer-mode  
  35. # make && make install )   
三、建庫 

[plain] view plaincopy
  1. #mkdir /usr/local/subversion/repos   //把所有的庫建在repos這個目錄中  
  2. #/usr/local/subversion/svnadmin create /usr/local/subversion/repos/garden  //建garden庫   
四、導入文件到庫中 
//把data下的garden文件全部倒入庫garden中

[plain] view plaincopy
  1. #./svn import /data/garden file://usr/local/subversion/repos/garden –m "註釋"   
五、遷移庫(老svn庫中的文件倒入新的svn中)--附加 
//先前svn有個庫名叫php,具體目錄是/www/svn/php 
[plain] view plaincopy
  1. #./svnadmin hotcopy /www/svn/php /usr/local/subversion/repos/php   
六、apache的相關配置

apache編譯時候需要加 "--enable-dav"  "--enable-dav-fs" "--enable-dav-lock"這三個選項.

[plain] view plaincopy
  1. #vi http.conf  
  2. LoadModule dav_svn_module     modules/mod_dav_svn.so  
  3. LoadModule authz_svn_module   modules/mod_authz_svn.so    //這兩編譯時候會自己添加的  
  4. Include conf/extra/httpd-dav.conf   //將這行的註釋去掉.  
編輯httpd-dav.conf   文件

[plain] view plaincopy
  1. <Location /svn/ >          //注意svn後面要加 "/"  不然不能顯示主目錄  
  2.     Dav svn  
  3.     SVNListParentPath on  
  4.     SVNPathAuthz off  
  5.     SVNParentPath   /usr/local/subversion/repos/            //此處配置你的版本庫根目錄.  
  6.     Options Indexes FollowSymLinks  
  7.     Order Allow,Deny  
  8.     Allow from all  
  9.     AuthType Basic  
  10.     AuthName "Subversion repository"                            //提示對話框標題  
  11.     AuthzSVNAccessFile "/usr/local/subversion/conf/authz"    //用戶權限配置文件   
  12.     AuthUserFile "/usr/local/subversion/conf/passwd"   //訪問版本庫用戶的文件,須用apache 的 htpasswd命令生成  
  13.     Require valid-user  
  14. </Location>  
  15.     
七、新建svn用戶 

第一次添加用戶需要加上-c參數,以後都不需要參數 

[plain] view plaincopy
  1. # htpasswd -c /usr/local/subversion/conf/passwd  
八、用戶權限分配 
[plain] view plaincopy
  1. # cd /usr/local/subversion/conf  
  2. # vi authz   
對用戶權限進行分配 
[plain] view plaincopy
  1. [groups]  
  2. administrator = svnadmin #定義組,一個組內可以包括多個用戶  
  3. garden = gardenuser,gardenuser1,testuser  
  4. php = phpuser,phpuser2,phpuser3  #  
  5. [garden:/]  
  6. @administrator = rw #administrator 這個組對garden整個庫有讀寫(rw)權限  
  7. @garden = rw #這個組也是讀寫,設定組的話,前面要加上“@”符號。  
  8. Phpuser = rw #不帶@,表示它爲用戶,phpuser這個用戶對這個庫有讀寫權限  
  9. * = r #"*"表示其他任何用戶,而且只讀  
  10. //以下是對garden庫下的tip目錄的權限配置  
  11. [garden:/tip]  
  12. @administrator = rw  
  13. @garden = rw  
  14. * = r  
  15. //以下是對php這個庫做的權限配置  
  16. [php:/]  
  17. @administrator = rw  
  18. @php = rw  
  19. * = r   
九、測試 
//打開http://192.168.50.203/svn/garden,在認證框中輸入用戶名。如果看到garden - Revision 0: /,說明成功了.
//或者打開http://192.168.50.203/svn/php,在認證框中輸入用戶名。如果看到garden - Revision 11: /,說明成功了.

 十、常見錯誤 
1、 服務器發送了意外的返回值(403 Forbidden),在響應 OPTIONS 的請求 
檢查apache日誌/usr/local/apache/logs/error_log.如果出現類似" Failed to load the AuthzSVNAccessFile: An authz rule refers to group '@deployers', which is undefined" 的錯誤代碼。請仔細檢查你的authz文件中是否有定義@deployers這個組(group).

 十一、庫的簡單備份.導入

[plain] view plaincopy
  1. 備份: /usr/local/subversion/bin/svnadmin dump /usr/local/subversion/repos/garden/ > /tmp/garden.dump  
  2. 導入:/usr/local/subversion/bin/svnadmin load /usr/local/subversion/repos/garden/ < /tmp/garden.dump   
原文:CSDN



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章