1.首先要安装svn
2.配置Apache的http协议访问
查看httpd是否已经安装的svn模块
# ls /etc/httpd/modules/ | grep svn
ls: cannot access /etc/httpd/modules/: No such file or directory
没安装,使用yum安装。
# yum install mod_dav_svn
# ls /etc/httpd/modules/ | grep svn
mod_authz_svn.so
mod_dav_svn.so
安装完成,对svn版本库下的项目ProjectName进行位置映射
在/etc/httpd/conf.d/文件下创建subversion.conf文件并编辑
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /ProjectName>
DAV svn
SVNPath /home/svn/ProjectName/
AuthType Basic
AuthName "Subversion repos"
AuthUserFile /home/svn/ProjectName/conf/accesspwd
AuthzSVNAccessFile /home/svn/ProjectName/conf/authz
Require valid-user
</Location>
AuthType 认证类型
AuthName 描述名,随便取
AuthUserFile 这个是http协议的访问账户密码文件,后面使用htpasswd命令创建
AuthzSVNAccessFile 权限认证文件,这个跟上面配置svn时候配置的权限设置一样
Require 需要认证用户才可以访问
htpasswd创建账户密码
# htpasswd -c -m /home/svn/ProjectName/conf/accesspwd username
-c是创建新文件,只有第一次创建账户密码时使用
-m是强制使用MD5加密密码(默认)
accesspwd 是创建的文件名。
username你要创建的可访问用户的名字(如我想创建一个asd用户访问这个svn项目仓库,这个username就是asd)
按提示输入两次密码,我们就创建了一个可访问用户名和密码。
如果想要新增加用户abc(第二次添加用户)
不需要使用-c参数,如果使用的会覆盖原来的accesspwd文件
# htpasswd -m /home/svn/ProjectName/conf/accesspwd dan
接着输入两次密码,
继续增加用户。。。
你不再继续创建新用户,循环结束。
重启Apache的服务
service httpd restart 或者 systemctl restart httpd.service
现在就可以通过"http://ip/ProjectName" 来访问我们的svn服务器了
3.防火墙配置
如果连接不上,可能是防火墙配置原因:
先确认svn与httpd的3690、80端口开启正常。
vim /etc/sysconfig/iptables #编辑防火墙配置文件添加80端口和3690端口
INPUT ACCEPT [0:0]
:FORWARD ACCEPT[0:0]
:OUTPUT ACCEPT[0:0]
-A INPUT -m state--state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -mstate --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080-j ACCEPT
-A INPUT -j REJECT--reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
保存退出systemctl restart iptables.service #最后重启防火墙使配置生效
或者service iptables restart这个语句重启iptables备注:这里使用80和8080端口为例。***部分一般添加到
“-A INPUT -p tcp -m state --state NEW -m tcp--dport 22 -j ACCEPT”行的上面或者下面,切记不要添加到最后一行,否则防火墙重启后不生效。