SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統。說得簡單一點SVN就是用於多個人共同開發同一個項目,共用資源的目的。
svn服務器有2種運行方式:獨立服務器和藉助apache運行。兩種方式各有利弊,用戶可以自行選擇
獨立模式安裝svn環境並創建倉庫
- 安裝Subversion:
yum install -y subversion //直接安裝
- 檢測是否安裝成功(查看svn版本號)
svnserve --version
創建版本庫
svnadmin命令:這是svn管理員所用的命令,可用svnadmin help 來查詢幫助信息
比如要在一個空文件夾下建立SVN庫,
svnadmin create PATH
svn 命令:這是svn常用的命令,對於提交,修改,刪除等操作都是根據這個命令來完成的。svn help 來查看幫助信息
所以現在建立一個project目錄,並生成svn版本庫相關信息
mkdir /var/svn //先建目錄
cd /var/svn //進入這個目錄
svnadmin create /var/svn/project //創建版本庫
cd project //進入
conf db format hooks locks README.txt //會看到自動生成的版本庫文件
svn服務器搭建成功
創建用戶和組
進入版本庫中的配置目錄conf,此目錄有三個文件: svn服務綜合配置文件(svnserve.conf)、 用戶名口令文件(passwd)、權限配置文件(authz)。
vim authz //修改權限配置文件:
vim passwd //修改用戶信息
vim svnserve.conf //配置SVN服務綜合配置文件svnserve.conf
//找到以下配置項,將前面的#號去掉,然後做相應的配置
anon-access = none //匿名用戶訪問權限:無
auth-access = write //普通用戶訪問權限:讀、寫
password-db = passwd //密碼文件
authz-db = authz //權限配置文件
realm = /var/svn/project //版本庫所在處
!! 注意:所有以上的配置項都需要頂格,即前面不能預留空格,否則報錯
啓動服務
svnserve -d -r /var/svn
ps -ef | grep svn
測試
svn co svn://[ip]/project
成功
安裝SVN服務器 和 http
- 安裝svn
yum install subversion
- 安裝httpd
yum install httpd //or apache2
- 安裝apache的svn操作模塊
yum install mod_dav_svn
配置httpd 進入配置文件夾:cd /etc/httpd/conf/httpd.conf 首先備份配置文件:cp httpd.conf httpd.conf.bak
修改httpd.conf文件 在文件的末尾添加:
<Location /svn>
DAV svn
SVNParentPath /var/svn/
# Authentication: Basic
AuthName "Subversion repository"
AuthType Basic
AuthUserFile /etc/httpd/svn-auth.htpasswd
# Authorization: Authenticated users only
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
說明
“<Location /svn>”中的”/svn”表示我們的svn的訪問URL爲”http://ip/svn”,
“DAV svn”表示使用”mod_dav_svn”模塊,dav是一種http 1.1擴展協議,mod_dav_svn只是該協議的一種應用。
“SVNParentPath /var/svn”表示服務”http://ip/svn”請求時,使用”/var/svn”路徑下相應的內容。
AuthName 表示輸入用戶名和密碼時的提示信息
AuthType 認證類型,這裏我們使用基本的認證類型
AuthUserFile 表示認證文件的位置,我們待會創建它。
LimitExcept節點指示只對寫請求需要用戶認證。
- 創建svn-auth.htppasswd文件
htpasswd –c -m /etc/httpd/svn-auth.htpasswd test //創建test 用戶名
- 將apache用戶對svn目錄授權
usermod -a -G root apache
chmod -R g+w /home/svn/project
groups apache
- 重啓apache
systemctl restart httpd
- http訪問
http://[IP]:[PORT]/svn/project/
!! 在這裏很可能會遇到selinux 的策略限制,可以關掉
- 關閉SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #註釋掉
#SELINUXTYPE=targeted #註釋掉
SELINUX=disabled #增加
:wq! #保存退出
setenforce 0 #使配置立即生效
參考文章: