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