?????之前工作中從事開發都是完成功能方面的事情,對于linux配置方面了解到的比較少,一般也都有運維人員來完成。今天有個機會,幫同事搭建svn版本控制器。一邊網上查找資料一邊配置,終于配置完成了。心里還有些小高興,從此我對svn的權限、組之類的有個具象的概念,我要記錄一下。
安裝環境:centos6.+,安裝模式yum
檢查已安裝版本
#檢查是否安裝了低版本的SVN
[root@localhost /]# rpm -qa subversion
#如果存儲舊版本,卸載舊版本SVN
[root@localhost modules]# yum remove subversion
安裝SVN
[root@localhost modules]# yum install subversion
驗證安裝
檢驗已經安裝的SVN版本信息
[root@localhost modules]# svnserve --version
svnserve,版本 1.6.11 (r934486)
編譯于 Jun 23 2012,00:44:03
版權所有 (C) 2000-2009 CollabNet。
Subversion 是開放源代碼軟件,請參閱 http://subversion.tigris.org/ 站點。
此產品包含由 CollabNet(http://www.Collab.Net/) 開發的軟件。
下列版本庫后端(FS) 模塊可用:
* fs_base : 模塊只能操作BDB版本庫。
* fs_fs : 模塊與文本文件(FSFS)版本庫一起工作。
Cyrus SASL 認證可用。
代碼庫創建
SVN軟件安裝完成后還需要建立SVN庫
[root@localhost modules]# mkdir -p /opt/svn/repo
[root@localhost modules]# svnadmin create /opt/svn/repo
執行上面的命令后,自動建立repo測試庫,查看/opt/svn/repo 文件夾發現包含了conf, db,format,hooks, locks, README.txt等文件,說明一個SVN庫已經建立。
配置代碼庫
進入上面生成的文件夾conf下,進行配置
[root@localhost modules]# cd /opt/svn/repo/conf
用戶密碼passwd配置
[root@localhost password]# cd /opt/svn/repos/conf
[root@admin conf]# vim passwd
修改passwd為以下內容:
[users]
# harry = harryssecret
# sally = sallyssecret
hello=123
用戶名=密碼
這樣我們就建立了hello用戶,123密碼
以上語句都必須頂格寫,左側不能留空格,否則會出錯.
權限控制authz配置
[root@admin conf]# vi + authz
目的是設置哪些用戶可以訪問哪些目錄,向authz文件追加以下內容:
[groups]
php=yonghu,yonghu2,yonghu3?#創建用戶分組,可對組遠進行權限、訪問目錄設置
android=yonghu5,yonghu6
#設置[/]代表SVN目錄下所有的資源
[/] 或者寫成[repl:/]
hello = rw #意思是hello用戶對repo測試庫下所有的目錄有讀寫權限,當然也可以限定。
#代表svn目錄下的android文件夾
[/adnroid]
@android=rw #android組的用戶擁有讀寫權限
以上語句都必須頂格寫,左側不能留空格,否則會出錯.
服務svnserve.conf配置
[root@admin conf]# vim svnserve.conf
追加以下內容:
[general]
#匿名訪問的權限,可以是read,write,none,默認為read
anon-access=none
#使授權用戶有寫權限
auth-access=write
#密碼數據庫的路徑
password-db=passwd
#訪問控制文件
authz-db=authz
#認證命名空間,subversion會在認證提示里顯示,并且作為憑證緩存的關鍵字
realm=/opt/svn/repositories
以上語句都必須頂格寫,左側不能留空格,否則會出錯.
配置防火墻端口
[root@localhost conf]# vi /etc/sysconfig/iptables
添加以下內容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重啟防火墻
[root@localhost conf]# service iptables restart
啟動SVN
svnserve -d -r /opt/svn/repo
查看SVN進程
[root@localhost conf]# ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repo
檢測SVN 端口
[root@localhost conf]# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
停止重啟SVN
[root@localhost password]# killall svnserve //停止
[root@localhost password]# svnserve -d -r /opt/svn/repo // 啟動
如果已經有svn在運行,可以換一個端口運行
svnserve -d -r /opt/svn/ --listen-port 3391
測試
SVN服務已經啟動,使用客戶端測試連接。
客戶端連接地址:svn://192.168.15.231
用戶名/密碼: hello/123
測試創建文件夾等操作。