1. 程式人生 > 實用技巧 >linux(centos) 下搭建svn伺服器

linux(centos) 下搭建svn伺服器

1. 使用yum安裝svn

yum -y install subversion

安裝完成之後,驗證安裝結果

此命令會全自動安裝svn伺服器相關服務和依賴,安裝完成會自動停止命令執行

若需檢視svn安裝位置,可以用以下命令:

rpm -ql subversion

2. 新建倉庫目錄

在/home目錄下面建立一個svn目錄,用來作為svn儲存目錄,目錄可以自己指定其它的,命令如下

mkdir  /home/svn

3. 建立一個測試倉庫

執行以下命令 建立一個倉庫

svnadmin create /home/svn/sztf

此時倉庫以及建立好了,我們先進入倉庫的目錄看看有什麼

cd /home/svn/sztf

ll命令檢視目錄

關於倉庫檔案的說明:

hooks目錄:放置hook腳步檔案的目錄

locks目錄:用來放置subversion的db鎖檔案和db_logs鎖檔案的目錄,用來追蹤存取檔案庫的客戶端

format目錄:是一個文字檔案,裡邊只放了一個整數,表示當前檔案庫配置的版本號

conf目錄:是這個倉庫配置檔案(倉庫使用者訪問賬戶,許可權)

注意:subversion預設以/var/svn作為資料根目錄,可以通過/etc/sysconfig/svnserve修改這個預設位置,不修改也沒關係!筆者就是沒有修改,沒有進一步深度研究,知道這個作用的也可以告知一下。

附:我們可以把sztf這個專案中conf中的authz和passwd兩個檔案拷貝到svn倉庫的根資料夾中去,也就是/home/svn下,這樣整個svn就共享使用者資料和配置資訊了,當然,你也可以放到每個專案中去,以下就是按照沒有共享使用者配置的方式去實現

如果配置共享使用者 如下:

anon-access = none //禁止匿名訪問

auth-access = write

password-db = /usr/svnhome/passwd //統一使用密碼檔案

authz-db = /usr/svnhome/authz

realm = project1 //許可權域名,很重要,寫你的工程名

參考url:https://www.cnblogs.com/zwue/p/4953541.html

以上【附】部分不感興趣的,可以忽略掉

4. 配置sztf專案中的svnserver.conf

進入到conf下的svnserve.conf 編輯這個配置檔案

vim conf/svnserve.conf

按I 進入編輯模式

在svnserver.conf檔案中,anon-access前面的註釋去掉,將對應的值設定為none,將auth-access前面的註釋也去掉,將password-db前面的註釋也去掉,還有將authz-db前面的註釋也去掉,顯示如下:

最重要的一點,去掉註釋之後,配置項前面不能有空格

修改完成後按esc退出編輯模式,然後按:wq(冒號加wq)命令 強制儲存並退出

5. 配置訪問的使用者及密碼

在conf目錄下有個passwd檔案,接下來編輯passwd檔案,在檔案的末尾加上自己需要新增的使用者名稱和密碼,passwd負責賬號和密碼的使用者名稱單管理

顯示如圖:

注意:使用者和密碼都是明文顯示的,=號前後都有個空格,我也是按照上面提供的樣例來的,可以試試不帶空格,應該沒什麼問題

6. 配置新使用者的授權訪問的檔案

authz檔案負責賬號許可權的管理,控制賬號是否讀寫許可權

編輯authz檔案,在該檔案中追加如下內容:

[/]
zhangsan=rw
lisi=rw

注意:前面有個[/]

r 讀許可權 w 寫許可權

[/]這個中括號可以寫具體的倉庫的名稱,如[/sztf],這樣就配置的是本倉庫的許可權,但是我們按照一個庫一套配置的話,就沒必要了,我直接建議就這麼寫[/],這樣避免出錯

7. 啟動svn服務

svnserve -d -r /home/svn

其中-d表示後臺執行, -r指定根目錄,這裡需要注意:絕對不能將啟動命令寫成:svnserve -d -r /home/svn/sztf 只需要啟動總的svn根目錄就行

還有啟動的時候可能會出現如下錯誤:

這個是由於已經啟動了SVN服務,所以需要先關閉程序,重新啟動即可,命令如下:

killall svnserve
svnserve -d -r /home/svn

也可以用 kill -9 埠號 來殺死程序

8. windows系統拉取程式碼

本地要先按照svn客戶端,沒有安裝的話,請自行百度安裝了

安裝完成了

在本地客戶端遷出輸入url:svn:123.12.55.89/sztf

輸入使用者名稱密碼即可

注意:svn使用的是3690埠,如果是雲伺服器,比如是阿里雲的,還需要上雲伺服器開通埠,然後在伺服器本地防火牆也開通

/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT 

參考文獻:https://www.jianshu.com/p/e7037e010635?utm_source=oschina-app