CentOS7搭建SVN+http訪問
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
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訪問