1. 程式人生 > >CentOS7搭建SVN+http訪問

CentOS7搭建SVN+http訪問

-perm 服務 sys dav_svn 創建倉庫 firewall system -s firewalld

1,準備工作

關閉SELINUX

查看下狀態getenforce,如果是Enforcing則關閉
臨時關閉:setenforce 0
永久關閉:vi /etc/selinux/config將SELINUX=enforcing改為SELINUX=disabled(這個reboot生效)

2,安裝相應軟件

安裝subversion:yum install subversion
安裝apache:yum install httpd
apache安裝svn模塊:yum iinstall mod_dav_svn

3,創建svn倉庫

cd /var/svndata(這裏我在/var路徑下創建了svndata目錄,進入svndata)
svnadmin create repo1

(創建倉庫repo1,倉庫名字隨便)

4,在repo1/conf下配置相關文件

配置authz文件(認證規則)

添加如下信息:[svndata:/]換行admin = rw(這個admin用戶為後面apache要創建的)
[repo1:/]換行test = rw(這個用戶先用來測試svn是否部署成功)

passwd文件(用戶帳戶信息,這裏不配置admin,因為admin用戶的密碼信息apache會配置)

添加如下信息:test=test(測試是test的密碼)

svnserve.conf(主要配置權限控制文件)

取消以下註釋:
anon-access = read匿名訪問權限,默認read
auth-access = write

授權用戶權限
password-db = passwd密碼數據庫位置
authz-db = authz訪問控制文件

5,配置防護墻開啟3690端口(svn服務),重啟防火墻(關閉防火墻的忽略這步)

firewall-cmd --permanent --zone=public --add-port=3690/tcp
systemctl restart firewalld.service

6,測試svn是否安裝成功

啟動svn:svnserve -d -r /var/svndata
這裏我安裝了客戶端TortoiseSVN ,直接checkout,地址欄輸入svn://ip/repo1(這個ip為你centos服務器的ip),賬戶密碼為之前設置的test

7,修改apache的httpd.conf配置文件,apache默認安裝時該配置文件在/etc/httpd/conf/路徑下

找到’LoadModule‘,在其下添加一下信息


LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so
<Location /svndata>
DAV svn
SVNPath /var/svndata/repo1
AuthType Basic
AuthName "Subversion repos"
AuthUserFile /etc/httpd/svn.htpasswd
AuthzSVNAccessFile /var/svndata/repo1/conf/authz
Require valid-user
</Location>

相關配置解釋

DAV svn 表示使用mod_dav_svn模塊
SVNPath /var/svndata/repo1 表示你倉庫的地址,註意因為我只有一個倉庫所以用SVNPath而不是SVNParentPath
svn.htpasswd文件是http訪問時配置的賬戶密碼信息

8,創建svn.htpasswd文件

htpasswd -cm /etc/httpd/svn.htpasswd admin(然後輸入admin的密碼,密碼隨便,註意這個admin賬戶的svn訪問權限之前有配置過)

9,讓apache用戶對svn有讀寫權限

首先我的svndata的用戶和用戶組都是root,所以我把apache加入到root用戶組
usermod -a -G root apache
然後給用戶組加個寫權限
chmod -R g+w /var/svndata/

10,啟動apache

給apache開通防火墻(我這裏apache的端口默認是80)
firewall-cmd --permanent --zone=public --add-port=80/tcp
systemctl restart firewalld.service
啟動apache:systemctl start httpd

11,在svn客戶端地址欄輸入http://ip/svndata(賬戶密碼為第8步所配置的)

到此,svn+http安裝完畢

如有疑問,歡迎指正交流

CentOS7搭建SVN+http訪問