實戰:使用SVN+apache搭建一個版本控制服務器


今天講的內容:

  • 實戰使用SVN+apache搭建一個版本控制服務器

每天: 10:00

晚上:21:00

服務端:xuegod63.cn   IP:192.168.10.63

服務概述:

SVN(subversion)是近年來崛起的版本管理工具,是CVS的接班人。目前,絕大多數開源軟件都使用svn作為代碼版本管理軟件。作為一個運維人員安裝和配置SVN服務器和客戶端是必須要掌握的內容。

版本控制:

 

 

常見版本控制軟件:

Cvs  由於之前CVS編碼的問題,現在大多數軟件開發公司都使用SVN替代了CVS

Svn  

git  分布式版本控制器

SVN服務器運行模式:

模式1:svn服務器單獨運行  監聽: 3690端口    訪問: svn://IP

模式2: svn 服務器+ apache   : 80 端口  訪問: http://IP     今天要講的

 

實戰:搭建svn 服務器+ apache 實現版本控制服務器

 

安裝: svn服務器,apache, mod_dav_svn 軟件包

運行機制:

 

實戰:RHEL6 上安裝配置 svn server+apache

 

#安裝svn服務器和 apache服務器,  mod_dav_svn模塊

# yum install subversion  httpd  mod_dav_svn  -y

mod_dav_svn模塊 apache http 服務器的插件,可以讓版本庫通過http協議,在網站上展現。

 

創建版本庫目錄,並修改相應權限。

[root@xuegod63 ~]# mkdir /var/repos

 

創建兩個項目倉庫。 xuegod.cn和svn2

[root@xuegod63 ~]# svnadmin create /var/repos/xuegod.cn

[root@xuegod63 ~]# svnadmin create /var/repos/svn2

[root@xuegod63 ~]# ls /var/repos/xuegod.cn

conf  db  format  hooks  locks  README.txt

 

[root@xuegod63 conf]#ls /var/repos/xuegod.cn/conf

authz  passwd  svnserve.conf

#注:用戶權限配置我們使用apache的,這里暫時不用svn自帶

啟動:SVN服務器

[svn@xuegod63 conf]# svnserve -d -r /var/repos/

  -d表示以daemon方式(后台運行)運行

  -r  /var/repos指定根目錄是/var/repos

 

[svn@xuegod63 conf]# ps -axu | grep svn

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

root      6982  0.0  0.0 161476  1924 pts/2    S    18:09   0:00 su - svn

svn       6983  0.0  0.0 108392  1864 pts/2    S    18:09   0:00 -bash

svn       7262  0.0  0.0 182760  1056 ?        Ss   18:26   0:00 svnserve -d -r /var/repos/

[svn@xuegod63 conf]# netstat -antup | grep 3690

(Not all processes could be identified, non-owned process info

 will not be shown, you would have to be root to see it all.)

tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN      7262/svnserve      

 

總結:svn服務器搭建

1、安裝:  yum install subversion httpd mod_dav_svn

2、創建倉庫存儲代碼: svnadmin create /var/repos/xuegod.cn

3、啟動svn服務器:svnserve -d -r /var/repos/

 

APACHE部分

 

第一步,查看apache支持subversion兩個動態庫有沒有安裝成功。

查看:

[root@xuegod63 conf]# vim /etc/httpd/conf.d/subversion.conf  #看到下面配置文件中兩個模塊相關信息,說明安裝成功。

     LoadModule dav_svn_module     modules/mod_dav_svn.so

LoadModule authz_svn_module   modules/mod_authz_svn.so

 

配置apache通過mod_dav_svn模塊訪問SVN服務器

[root@xuegod63 ~]# vim /etc/httpd/conf.d/subversion.conf

<Location /svn>

       DAV svn

       SVNParentPath /var/repos

        AuthType Basic

AuthName " SVN server of xuegod!"

   AuthUserFile /home/svn/passwd

        AuthzSVNAccessFile /home/svn/auth

        Require valid-user

</Location>

注釋:

<Location /svn>    #apache的虛擬目錄。后期通過鏈接:http://192.168.1.63/svn 來訪問兩個倉庫:xuegod和svn2

       DAV svn

       SVNParentPath /var/repos   #存放兩個倉庫:xuegod和svn2的真實目錄

        AuthType Basic

        AuthName " SVN server of xuegod!"   #apache認證時彈出的消息

        AuthUserFile /home/svn/passwd   # passwd存儲用戶名和密碼

        AuthzSVNAccessFile /home/svn/auth  #存放用戶的權限

        Require valid-user

</Location>

 

  

建立本地訪問控制文件/home/svn/passwd#后期通過httpd服務器訪問svn時,會使用這個文件中的用戶信息驗證用戶和密碼。

 

[root@xuegod63 ~]# mkdir /home/svn

[root@xuegod63 ~]# htpasswd -c /home/svn/passwd  tube   

# -c create, 創建/home/svn/passwd文件。會提示你輸入密碼,默認是MD5加密

New password: 123456

Re-type new password:

Adding password for user tube

 

第二次添加用戶是否需要加 -c 參數:  要1 : 不要:2

 

[root@xuegod63 ~]# htpasswd  /home/svn/passwd  cd   #后期再創建時,就不需要加-c參數,否則,會把之前添加到/home/svn/passwd中信息,全部覆蓋。

New password: 123456

Re-type new password:123456 

Adding password for user tree

 

查看用戶名和密碼:

[root@xuegod63 ~]# cat /home/svn/passwd

cd:sjplr6rMtpN3E

tube:gZEcmDnMwFsMc

注:tube和cd兩個用戶的明文密碼都一樣,但是加完密碼以后是不一樣。

 

加密時:  (密碼+用戶名 ) md5  -》  ll7IH3i5G0JfU

 

第四步,建立本地項目版本庫,權限控制文件。

達到以下目標:

用戶     倉庫                  權限

tube    xuegod.cn,svn2     rw

cd       xuegod.cn            rw

 

[root@xuegod63 ~]# vim /home/svn/auth   #寫入以下內容

[/]         

tube = rw    

[xuegod.cn:/]

cd = rw

 

解釋:

[/]          #  這個表示在所有倉庫的根目錄下

tube = rw    #  表示tube用戶對所有倉庫根目錄下的軟件版本庫有rm權限

[xuegod.cn:/]        #這表示,倉庫xuegod.cn的根目錄下的訪問權限

cd= rw        # cd用戶對xuegod.cn倉庫具有讀和寫權限

 

給目錄權限

[root@xuegod63 conf.d]# chmod  777  /var/repos/ -R

 

[root@xuegod63 ~]# service httpd restart

svn的訪問地址是:       http://192.168.10.63/svn/xuegod.cn

 

 

 

 

 

 

總結:配置apache+svn

1、修改配置文件:vim /etc/httpd/conf.d/subversion.conf  apache可以支持svn

2、創建SVN用戶和密碼文件: /home/svn/passwd

3、創建SVN權限管理文件:/home/svn/auth

 

SVN客戶端使用說明

subversion windows客戶端TortoiseSVN配置:

 

http://tortoisesvn.net/about.zh.html

 

 

注: 32位的軟件只能安裝在32位操作系統上。 我是64位,所以在安裝在64上。

 

新一個文件夾:www.xuegod.cn

取出版本為0的源代碼:

 

 

 

 

 

上傳代碼:

隨意保存一個網頁,把網頁源代碼復制到目錄www.xuegod.cn中,然后提交第一個網站代碼:

 

 

 

 

 

 

 

 

Linux下測試客戶端:

[root@xuegod64 ~]# svn checkout http://192.168.10.63/svn/xuegod.cn xuegod.cn

認證領域: <http://192.168.10.63:80>  SVN server of xuegod!

“root”的密碼:

認證領域: <http://192.168.10.63:80>  SVN server of xuegod!

用戶名: tube

“tube”的密碼:

 

-----------------------------------------------------------------------

注意!  你的密碼,對於認證域:

 

   <http://192.168.10.63:80>  SVN server of xuegod!

 

只能明文保存在磁盤上!  如果可能的話,請考慮配置你的系統,讓 Subversion

可以保存加密后的密碼。請參閱文檔以獲得詳細信息。

 

你可以通過在“/root/.subversion/servers”中設置選項“store-plaintext-passwords”為“yes”或“no”,

來避免再次出現此警告。

-----------------------------------------------------------------------

保存未加密的密碼(yes/no)?no

A    xuegod.cn/salt主機地址密碼.txt

A    xuegod.cn/新建虛機需知.txt

取出版本 1。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM