1. 程式人生 > >svn+apache搭建版本控制伺服器

svn+apache搭建版本控制伺服器

Centos7(linux)搭建版本控制伺服器(svn+apache)

1.簡介:
版本控制伺服器:
版本控制(Revision control)是一種軟體工程技巧,籍以在開發的過程中,確保由不同人所編輯的同一檔案都得到更新。
SVN:
SVN(subversion)是版本管理工具,是CVS的接班人。目前,絕大多數開源軟體都使用svn作為程式碼版本管理軟體。
作為運維人員來說,安裝和配置SVN伺服器和客戶端是必須要掌握的內容。
常見的版本控制:
Cvs:由於之前cvs編碼的問題,現在大多數軟體開發公司都使用SVN替代了cvs
Svn:集中式版本控制器
Git:分散式版本控制器
2.SVN伺服器執行模式:

模式1:SVN伺服器單獨執行,監聽埠:3690,訪問方式:SVN : //ip
模式2:SVN伺服器+Apache,監聽埠:80,訪問方式:http : //ip
3.安裝:
安裝SVN和Apache伺服器,mod_dav_svn模組
Mod_dav_svn模組:apache http伺服器的外掛,可以讓版本庫通過http協議,在網站上展現
Yum install -y subversion httpd mod_dav_svn

建立版本庫:mkdir /var/repos
專案倉庫:svnadmin create /var/repos/mingdeng3000 (倉庫名隨便取)
svnadmin create /var/repos/nike (建立倉庫 mingdeng3000 和 nike)

 

 

 

svn自帶使用者許可權配置檔案:在/var/repos/mingdeng3000/conf下的 authz , passwd , svnserve.conf檔案
(由於我們用apache的,所以暫時不用svn自帶)
4.啟動SVN:
svnserve -d -r /var/repos/ (-d,指定svn後臺執行;-r,指定svn的根目錄或版本庫)
檢視是否啟動:Ps aux | grep svn; netstat -atnpu | grep 3690;

5.檢視Apache支援subversion的兩個動態庫有沒有安裝成功。
一般預設在/usr/lib64/httpd/modules下,有沒有mod_dav_svn.so和mod_authz_svn.so模組

6.配置Apache通過mod_dav_svn模組訪問到svn伺服器。
編輯:Vim /etc/httpd/conf.d/subversion.conf(手寫,預設7不存在,6存在此檔案)(讓apache支援svn)
寫入的內容:
<Location /svn> #####註釋####apache的虛擬目錄,後面通過http://192.68.27.101/svn來訪問mingdeng3000這個倉庫
DAV svn
SVNParentPath /var/repos ###註釋####存放我這mingdeng3000這個庫的根目錄
AuthType Basic
AuthName "SVN server of mingdeng3000! ###註釋###apache認證時彈出的訊息
AuthUserFile /home/svn/passwd #####註釋####passwd檔案儲存使用者名稱和密碼
AuthzSVNAccessFile /home/svn/auth###註釋###存放使用者的許可權
Require valid-user
</Location>

 

 

 

7.建立本地訪問控制檔案/home/svn/passwd,後期通過httpd伺服器訪問svn時,會使用這個檔案中的使用者資訊驗證使用者和密碼
mkdir /home/svn
htpasswd -c /home/svn/passwd mingdeng,使用者:mingdeng密碼123.123
htpasswd /home/svn/passwd john ,使用者nike,密碼321.321
8.建立使用者許可權管理檔案:
vim /home/svn/auth
[/] #####註釋####專案倉庫根目錄下,有2個倉庫,mingdeng都有讀寫許可權
mingdeng=rw
[nike:/] ########註釋#####nike倉庫目錄下,使用者john只對nike有讀寫許可權
john=rw

 

 

 

修改版本庫許可權
Chown -R apache:apache /var/repos或者 chmod 777 /var/repos
9.啟動apache:
systemctl start httpd.service
10.訪問svn:
瀏覽器:http://ip/svn/倉庫名
輸入賬號密碼就行
第一次訪問會顯示版本0,因為沒檔案

 

 

 

11.下載並安裝svn的Windows客戶端:
http://tortoisesvn.net/about.zh.html 作業系統多少位就下載多少位的,安裝完後,一定要重啟電腦(先關閉虛擬機器)
安裝好後,新建一個資料夾svnclient,裡面滑鼠右鍵點選svn checkout,自動同步伺服器svn

 

 

12.驗證svn:

Windows客戶端:拷貝幾個檔案到新建資料夾svn,沒上傳時檔案上有“?”號識別符號,右鍵點選svn commit上傳檔案到想去的庫。
上傳後黑色?就變成綠色對勾了。版本從0變為1了。
Linux客戶端: svn checkout http://192.168.80.240/svn/mingdeng3000/
先輸入當前Linux登入密碼(我這是root),再輸入svn賬號密碼。
登入完後,會自動下載倉庫的檔案,儲存到當前路徑下自動生成mingdeng3000/資料夾裡(倉庫nike同理)<