Centos7之subversion支持http访问配置
写在前面
写作目的:前面写了一篇关于Centos安装svn的文章,讲述了centos安装svn的全过程,详情请见:https://blog.csdn.net/u013181021/article/details/99727369
svn安装之后,默认是只支持了svn协议进行访问,为了方便,需要配置svn支持http协议进行访问。
配置过程
1、http访问使用的http服务器是Apache旗下的httpd
,以及svn支持模块mod_dav_svn
,
通过如下命令进行安装
yum install -y httpd mod_dav_svn
2、检查Apache、mod_dav_svn是否安装成功
httpd -v
find / -name mod_dav_svn.so
find / -name mod_authz_svn.so
3、修改httpd的配置文件 vim /etc/httpd/conf/httpd.conf
释放 ServerName的注释,并配置为 ServerName localhost:80
修改:AllowOverride none
为AllowOverride ALL
4、创建httpd的账号密码认证,账号和密码与前文svn配置文件的passwd配置一致
htpasswd -cbm /home/svn/repo/conf/http_passwd admin admin
htpasswd -bm /home/svn/repo/conf/http_passwd lixingyun lixingyun123
htpasswd -bm /home/svn/repo/conf/http_passwd zhangzifan zhangzifan123
htpasswd -bm /home/svn/repo/conf/http_passwd custom custom123
htpasswd命令参数:
-c:创建一个加密文件;
-m:默认采用MD5算法对密码进行加密;
-b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
如果需要创建的用户数量比较多,建议使用脚本执行用户添加的操作。
5、修改配置文件/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 /svn>
DAV svn
SVNParentPath /home/svn/repo
AuthType Basic
AuthName "Authorization SVN"
AuthzSVNAccessFile /home/svn/repo/conf/authz
AuthUserFile /home/svn/repo/conf/http_passwd
Require valid-user
</Location>
配置文件主要元素/参数含义
<Location /svn><Location>
:这是httpd配置的位置映射标签,即通过http访问/svn这个路径时会被映射到标签内配置的路径中去。
SVNParentPath
:此参数一般配置为svn的根目录,即为路径/svn的映射目标地址
AuthzSVNAccessFile
:httpd的访问权限配置文件authz的路径,可以共用svn的权限配置文件
AuthUserFile
:上文所生成的用户密码配置文件http_passwd的路径
6、配置apache对SVN目录权限
chown -R apache:apache /home/svn/repo/
7、启动Apache的httpd,默认启用80端口(需要防火墙开放端口),
可以通过 vim /etc/httpd/conf/httpd.conf
进行修改。
systemctl start httpd
# 启动
systemctl status httpd
# 查看状态
systemctl stop httpd
# 停止
systemctl enable httpd
# 开机自启动
8、至关重要的一项配置,如果不进行配置,SVN 客户端访问会报错,客户端提示服务端内部错误,报500错误。
chcon -R -t httpd_sys_content_rw_t /home/svn/repo/
9、通过SVN客户端进行checkout测试,地址为:
http://ip/svn/repo1
http://ip/svn/repo2
其中svn即为上文Location标签中的svn。
10、完成。