版本控制的軟體有很多,目前較流行的是 Subversion (如 Apache 用的),但上星期看了一篇文章, Linux 教父 Linus Torvalds 偏好用 git,這個改天再研究介紹 ,這次僅介紹 Subversion 的安裝、權限控制與 Apache HTTP Server (SSL) 的整合。
環境上為了與自己的機器隔離,用的是 VMware Server 上裝的模擬機 Ubuntu 8.10,機器名稱為 svn.xxxx.com
關於 Apache HTTP Server (SSL) 的安裝,請先參考
Load balance and clustering with Apache HTTP Server 2.2.x and Tomcat 6.0.x
中的 1, 2 節,因為是安裝 Linux 版的 Apache HTTP Server ,這邊只有簡單介紹 apache2 的安裝方式1. 安裝 Apache HTTP Server 與 Subversion
$ sudo apt-get install apache2 subversion libapache2-svn
這時會安裝 Apache2 2.2.9 與 subversion 1.5.1 版 (寫此文章的版本)
libapache2-svn 是給 svn 用的 apache plugin ,需另外裝
2. 建立 Subversion 的 repositoy
這部份算是簡單的,只要幾行指令就可以完成
$ sudo mkdir /var/svn
$ cd /var/svn
$ sudo svnadmin create repos
$ cd repos
$ sudo chmod -R 777 *
若權限沒設定為 777 ,真正使用時會有權限上的 error.
3. 設定 /repos 的 URL 給 svn 用
$ cd /etc/apache2/mods-enabled
$ sudo ln -s ../mods-available/dav.load dav.load
編輯 /etc/apache2/sites-available/default-ssl
將 SVN 的 location 加入如下
AuthUserFile /var/svn/svn-auth-file
Require valid-user AuthzSVNAccessFile /var/svn/authz
若要與 AD 認證,可以將
AuthUserFile
改為
AuthLDAPEnabled on
AuthLDAPBindDN "CN=xxx,OU=xxx,OU=xxx,OU=xxx,OU=xxx,DC=xxx,DC=com" AuthLDAPBindPassword xxx
AuthLDAPURL "ldap://xxx:389/OU=xxx,OU=xxx,DC=xxx,DC=com?sAMAccountName?sub?(objectClass=*)"
AuthLDAPAuthoritative on
記得 ldap 的 module 要 enable.
4. 設定 SVN 的權限
$ sudo htpasswd -cm /var/svn/svn-auth-file doug
利用編輯 htpasswd 建立認證的檔案並建立 doug 帳號
$ sudo pico /var/svn/authz
然後將以下內容加入
[/]
* = rw
此段表示所以認證過的人都可以 讀、寫 SVN。若要針對單獨目錄作控管,可以加入如下內容
[calc:/branches/calc/bug-142]表示 /branches/calc/bug-142 的目錄 harry 可以讀寫,但 sally 只能讀
harry = rw
sally = r
5. 重新啟動 Apache HTTP Server
$ sudo /etc/init.d/apache2 restart
這時候便可以透過 https://svn.xxx.com/repos 使用 subversion 了
以下是使用 TortoiseSVN 的畫面
0 comments:
Post a Comment