五.支持http訪問linux
通過以上配置,svn服務基本上就算配置完成了,不過此時只能經過svn://192.168.xx.xx/project的方式訪問,若是但願經過http的方式訪問,則還需進行以下配置。web
上面安裝工具時已經安裝了Apache和Perl。apache
1,轉換SVN服務器的密碼服務器
因爲SVN服務器的密碼是明文的,HTTP服務器不與支持,因此須要轉換成HTTP支持的格式。能夠寫了一個Perl腳本完成這個工做.ide
cd /home/svn/project/conf/svn
vi PtoWP.pl工具
use warnings; ui
use strict; 加密
#open the svn passwd file
open (FILE, "passwd") or die ("Cannot open the passwd file!!!\n");
#clear the apache passwd file
open (OUT_FILE, ">webpasswd") or die ("Cannot open the webpasswd file!!!\n");
close (OUT_FILE);
#begin
foreach (<FILE>) {
if($_ =~ m/^[^#].*=/) {
$_ =~ s/=//;
`htpasswd -b webpasswd $_`; #核心語句就這個,若是之後添加或者修改用戶密碼,能夠使用 htpasswd -nb username password ,加密後的信息會被顯示在屏幕上,複製內容到webpasswd文件便可。
}
}
perl PtoWP.pl #執行腳步後會在當前路徑下生成webpasswd文件,裏面就是已經加過密的密碼信息。
2,修改httpd.conf,添加關於SVN服務器的內容
編輯/etc/httpd/conf/httpd.conf,在最後添加以下信息:
<Location /project>
DAV svn
SVNPath /home/svn/project/
AuthType Basic
AuthName "svn for project"
AuthUserFile /home/svn/project/conf/webpasswd #這裏必定要使用webpasswd
AuthzSVNAccessFile /home/svn/project/conf/authz
Satisfy all
Require valid-user
</Location>
須要加載三個模塊,若是是手工編譯Apache時應該加上--enable-dav
LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
3,啓動HTTPD服務器
service httpd restart
4,授予txn-current-lock文件777權限
緣由是svn目錄是使用root用戶建立,而Apache可能不是root用戶啓動的,因此在提交svn時Apache用戶沒有/home/svn/project/db/txn-current-lock文件的訪問權限
chmod 777 /home/svn/project/db/txn-current-lock
5,測試
使用svn客戶端工具,或者找一臺安裝了subversion的linux服務器進行測試
svn co http://192.168.xx.xx/project