基本命令:


?apache2
?apache2-common
?apache2-mpm-prefork
?apache2-utils
?libapache2-svn
?libapache2-mod-auth-pam
?libapache2-mod-auth-sys-group
?subversion
?subversion-tools
創建一個名為subversion的組:groupadd subversion
將自己(eg.:user)和www-data(apapch2帳號)用戶添加入subversion組,可以編輯/etc/group文件,在最后找到subversion添加入帳號名(eg:user,www-data),看上去就像這樣:subversion:x:1001:www-data,exp
然后是創建subversion庫,并賦予subversion組中用戶有讀寫subversion庫的權限:






對于本機,可以直接使用file命令來訪問:



此時對svn庫的權限是基于文件系統的,只要是subversion組中的用戶都可以訪問本svn庫。
接下來,講述如何使用apache服務器來提供對svn庫的訪問
編輯文件/etc/apache2/mods-available/dav_svn.conf
增加如下的內容:










apache會解析url中的/svn/myproject部分,來定位svn庫,當收到此請求時,會查詢svn庫:/home/svn/myproject,這里的認證方式是basic,對于訪問要求valid-user,帳號文件在/etc/subversion/passwd中。
注意重新設置后要重啟apache2:sudo /etc/init.d/apache2 restart
編輯生成帳號文件: sudo htpasswd2 -c /etc/subversion/passwd user? #給user帳號創建口令
這時候可以通過瀏覽器來瀏覽svn庫了
在我的設置中發現,apache2會自動綁定ipv6地址,可能會有些問題,可以強制apache綁定v4地址,在/etc/apache2/port.conf中改成:Listen [bindedip]:[port]的形式
通過https來訪問svn庫
首先生成一個 SSL 簽名,使用命令
?# apache2-ssl-certificate
這里會有一系列關于你的個人隱私的問題,回答完了,自然的簽名也就生成了,然
后我們就要在 apache2 里面打開 SSL 了,現在要做的是開啟 ssl 模塊
?# a2enmod ssl
然后,使用 apache2 的虛擬主機功能來添加 SSL 的支持,將
?/etc/apache2/sites-available/default
復制一份,叫
?/etc/apache2/sites-available/ssl
好啦
修改 default 文件的開頭為
?NameVirtualHost *:80
?<VirtualHost *:80>
修改 ssl 文件的開頭為
?NameVirtualHost *:443
?<VirtualHost *:443>
這里 443 是 SSL 的標準端口。
并在 ssl 文件中加入如下內容,在<VirtualHost></VirtualHost>內
?SSLEngine On
?SSLCertificateFile /etc/apache2/ssl/apache.pem
保存文件后,運行命令
?? # a2ensite ssl
來激活這個虛擬主機
現在,修改文件
?/etc/apache2/ports.conf
加上一行
?Listen 443
好了,到此為止,SSL 服務器配置完成,重新啟動 apache 吧。
?
一些問題:
可能出現 RA layer request failed svn: MKACTIVITY of 400 Bad Request 之類的錯誤,這可能是因為使用了代理的原因,代理不支持svn的擴展命令,see:http://subversion.tigris.org/faq.html#proxy
還有種原因,就是可能是你的客戶端使用的是windowsxp,其他版本的windows我沒試過,也是這樣的錯誤,在linux下正常,解決方法不太清楚。
RA layer request failed svn: MKACTIVITY of 400 Bad Request,無論什么原因都可以用https代替http來暫時解決這樣的問題。
參考:
http://fanqiang.chinaunix.net/app/web/2005-05-18/3257.shtml
http://wiki.ubuntu.org.cn/SubVersion?highlight=%28subversion%29