SVN服务器的搭建,它不是最全面的却是最详细易懂的~
? ?剛接到這個任務的時候,我的臉上寫著兩個大大的懵逼倆字!可以說是零基礎,那時候的我對于svn客戶端的熟練程度也許還不如公司內的文職,更別說服務端了!
? ?任務到手,死扛到底,這才是我的性格~我的作戰環境可以說是很艱苦,沒有技術文檔,而且就我一個運維!
? ?跟個無頭蒼蠅一樣在網上亂轉把資料翻個底朝天,才漸漸有了邏輯和思路。不過也廢了好些周折才搞定!那幾天每天在網上看資料下班之后眼都是紅的!
? ?研究了好久,終于成功了,由于網上的資料參差不全,凌亂無章樓主飽受其苦,所以決定寫下來與君共勉以免其苦。
?一、 ?首先了解下svn的簡介和基本原理:
簡介: ??
? ? subversion(簡稱svn)是近幾年崛起的版本管理軟件,是cvs的接班人,目前絕大多數開源軟件都使用svn作為代碼版本管理軟件。Subversion支持linux和windows,但較多安裝在linux下。
? ? svn服務器常用的有兩種運行方式:獨立服務器svn://ip地址, 和基于apache?http:// ip地址(也可基于nginx等服務)
? ? ?svn客戶端是tortoisesvn
原理:
? ? 在一臺服務器上建立一個源代碼庫,庫里可以存放許多不同項目的源程序。由源代碼庫管理員統一管理這些源程序。每個用戶在使用源代碼庫之前,首先要把源代碼庫里的項目文件下載到本地,然后開發人員可以在本地修改,然后用svn命令進行提交。而不同的部門也可以上傳些資料提供本部門的人員上傳下載,類似于ftp,網盤之類的功能。
二、安裝svn的方式
首先介紹獨立svn服務器的安裝和配置,而apache方式訪問的svn是基于獨立服務器之上建立的。
安裝svn常用的有兩種方式:yum安裝,源碼安裝。個人推薦想簡單點的話使用yum安裝,就不用在考慮各種依賴關系和變量了,而源碼安裝這里就不在贅述網上有很多教程!
yum安裝:
1.yum install -y ?subversion
2.安裝完之后查看下:rpm -ql??subversion,之后拉到最上面如圖所示,代表安裝成功
3.配置svn
首先創建版本庫目錄:mkdir ?-p ?/opt/svn/ ? ? ? ? ? ? ? "目錄可以隨意創建指定"。
創建你想要的版本庫:svnadmin ?create /opt/svn/zt,創建好之后會在zt版本庫中生成如圖所示的幾個文件
進入到conf中會有三個配置文件分別添加如下文所示:
authz:權限配置文件 ?
passwd:密碼文件
svnserve.conf:版本庫配置文件
進入版本庫配置文件,打開下面的幾個注釋,注意:得頂頭寫:
anon-access = read ? ? ? ? ? ? ? ?#匿名用戶可讀
auth-access = write ? ? ? ? ? ? ? ?#授權用戶可寫
password-db = passwd ? ? ? ? ?#使用哪個文件作為賬號文件
authz-db = authz ? ? ? ? ? ? ? ? ? #使用哪個文件作為權限文件
realm = /opt/svn/zt ? ? ? ? ? ? ? # 認證空間名,版本庫所在目錄
4.上訴配置完成之后啟動版本庫:svnserve ? -d ? -r /opt/svn/zt
若是出現下圖所報錯誤,請執行netstat -anpt |grep svn ? ————> kill ?pid號之后即可成功執行
5.然后在客戶端執行如下操作即可成功,前提是可以ping通
新建文件夾右擊checkout,下圖所示:
?
svn服務器ip/版本庫
passwd中指定的賬號密碼
(2.)如果想在獨立svn服務器上運行多個版本庫需要為其指定端口。
?svnserve --listen-port 3691 -d -r ?/opt/svn/zt/
?svnserve --listen-port 3692 -d -r ?/opt/svn/repos/
?svnserve -d -r /opt/svn/
重啟完各個版本庫之后再把整個版本庫目錄啟動
三、基于apache方式訪問的svn安裝與配置
這個是在獨立svn服務器成功的基礎上搭建的,首先ps -ef |grep httpd查詢下httpd是否屬于apache
反之需yum -y install mod_dav_svn httpd
ls /etc/httpd/modules/ | grep svn ?:svn驗證模塊
mod_authz_svn.so ? mod_dav_svn.so
2.apache相關配置:vim /etc/httpd/conf.d/subversion.conf
SVNPath 定義單個的庫
SVNParentpath 定義多個庫
注意:apache配置的地方實在版本庫目錄中建立 密碼和權限 配置文件,而svn服務器是在版本庫中創建,創建方法大同小異。
3.創建訪問用戶(第一創建需要加 -c,代表新建的第一個用戶)
htpasswd -c /opt/svn/passwd abc
密碼:
再次輸入密碼:
abc用戶創建成功
刪除用戶:htpasswd -D passwd abc
4.賦予權限問題
chown -R apache.apache /opt/svn/版本庫
chmod -R 777 /opt/svn/
5.authz的權限問題
[groups] #在這里設置組,= 后面跟的是用戶以,分割
admin = admin,admin1,admin2?
users = user,user1,user2
[zt:/]
#這里是版本庫zt,表示對此庫有某種權限,@admin代表組,不加@代表單個用戶
#注意更改的配置需要頂到頭不可以有空格否則會報錯
@admin = rw
user = r
[zt:/123]
#這里指的是對zt版本庫下的123目錄有什么權限
@users = rw
創建完成之后只需要重啟httpd 就好了service httpd restart
然后照著第二步執行客戶端的操作只需要把路徑改一下就可以了:http://ip地址/svn/zt
#注意
原本正常運行的svn服務器突然崩掉了,很奇怪為什么會這樣,檢查了一整天,才發現權限文件沖突也會照成整個服務器崩掉,然后重新把權限調整了下才正常了。
而且版本庫路徑在authz中不可以有亂碼否則也不行
? 也許 照著此文完完整整的做下來也會報一些的錯誤,但是相信我,此文已經給了你完整的思路和配置步驟而你只需要再根據錯誤信息針對性的去網上找找答案,問題便可游刃而解,而你也可以借著這個機會更深一步的了解svn的層次架構。
? 覺得有用就轉發點贊,多多評論一起交流
轉載于:https://blog.51cto.com/11432312/1791074
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的SVN服务器的搭建,它不是最全面的却是最详细易懂的~的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android开发(50) Androi
- 下一篇: 我目前在做的东西