前一段時間由于伺服器管理上的原因,一直把SVN放到我的PC上(7×24跑了好幾個月),這幾天終于配好了專用的SVN伺服器。
伺服器的作業系統是64位的CentOS,這裡記錄一下SVN在CentOS上配置過程,以下操作都是以root權限進行。
一、安裝Apache和SVN
在安裝之前可以檢查一下是否在作業系統安裝時已經安裝了這些軟體,如果沒有可以使用下面的指令安裝:
> yum install httpd
運作該指令時,會列出要安裝的檔案和依賴的包,輸入y,回車即可。
> yum install mod_dav_svn subversion
如果已經安裝過,會給出相應提示
二、配置Apache
首先使用service指令啟動apache,
>service apache start
有時候會提示找不到service指令,可以使用/sbin/service 代替service。
然後,要将httpd配置可以随系統啟動而啟動的服務,
>setup
這是會出現一個系統配置的界面:
從中選擇System services,就會出現系統所有的服務清單,自動重新開機的服務前面是[*],表示選中。從清單中找到httpd,選中,然後OK儲存即可。
三、配置SVN
在配置完了Apache後,就要将二者結合起來了。如下操作:
1. 建立一個倉庫目錄:
> cd /var/www
如果沒有svn目錄,建立一個
> mkdir svn
使用svnadmin建立一個代碼庫:
> svnadmin create repos
修改apache對repos的通路權限
> chown apache.apache -R repos
2. 修改subversion.conf配置檔案
> cd /etc/httpd/conf.d
> vim subversion.conf
subversion.conf的詳細内容:
#注釋略去
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
#
# 注釋略去
<Location /svn/repos>
DAV svn
SVNPath /var/www/svn/repos
</Location>
重新啟動httpd服務
>service httpd restart
這個配置的内容是最基本,沒有指定認證方式,是以是可以匿名通路的,在通路時使用的路徑是:http://host:port/svn/repos
四、完善SVN配置,增加使用者控制
在實際使用過程中,我們并不希望代碼庫可以匿名任意通路,是以要增加使用者通路控制。
1. 添加使用者
>htpasswd -cm /etc/svn-auth-file tester
提示輸入密碼,確定兩次輸入一次,然後會提示添加使用者密碼成功。
2. 修改subversion.conf增加通路控制
>vim subversion.conf
修改後的Location部分:
<Location /svn/repos>
AuthType Basic
AuthName "Subversion repository"
Require valid-user
五、更多資訊
1. 在上面的配置中通過SVNPath指定了一個代碼倉庫。但是在實際應用,往往是有多個倉庫存放不同的項目代碼,這時可以将SVNPath改為:
SVNParentPath /var/www/svn
2. 使用htpasswd添加使用者時,認證檔案svn-auth-file不存在時,使用:
htpasswd -cm /etc/svn-auth-file tester01
會建立一個的檔案,并且添加tester01使用者。而此後再增加使用者,使用:
htpasswd /etc/svn-auth-file tester02
3. 新增加代碼庫後,一定修改檔案夾權限,否者用戶端會得到Permission Denied的提示。
4. 每次修改過配置檔案以後,都要重新啟動httpd服務。
5. 參考: