栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

部署http+svn,yum安装svn 1.9版本

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

部署http+svn,yum安装svn 1.9版本

本文意在轻松愉快安装svn1.9版本,绕过繁琐的编译安装,利用yum安装来解决依赖关系
参考链接:
链接1:部署http+svn
链接2:yum安装svn指定版本,svn.repo文件制作
难点1:关键还是从链接2知道了svn镜像库地址;
难点2:直接安装的subversion 不符合版本要求,tar.gz包编译安装问题多到想砸键盘

一、 软件版本问题

本次部署是因为生产环境中的svn库完整备份后,在备份机上还原SVN的使用;生产环境使用的版本是subversion-1.9.9,低于这个版本部署完成后会报错,yum默认安装的版本是1.7,在yum安装之前必须先准备1.9.9以上版本的yum源,或者rpm包。一定要编译安装的请出门左转继续搜索,不要浪费时间。

在网上找到subversion的安装源,版本库,http://opensource.wandisco.com/rhel/7/svn-1.9/RPMS/

yum源,将下面内容写入到文件/etc/yum.repos.d/svn.repo
[root@localhost ~]> cat /etc/yum.repos.d/svn.repo 
[subversion]
name=subversion
baseurl=http://opensource.wandisco.com/rhel/7/svn-1.9/RPMS/
enabled=1
gpgcheck=1    #也可不验证,gpgkey=0,下面一行删除
gpgkey=http://opensource.wandisco.com/RPM-GPG-KEY-WANdisco   

二、安装软件 方法1.利用repo文件在线安装
做好svn.repo后,直接yum install subversion
[root@localhost ~]> yum install subversion -y
[root@localhost ~]> rpm -q subversion
subversion-1.9.12-1.x86_64

其他两个软件直接安装即可
[root@localhost ~]> yum -y install httpd mod_dav_svn
[root@localhost ~]> rpm -q subversion httpd mod_dav_svn
subversion-1.9.12-1.x86_64
httpd-2.4.6-95.el7.centos.x86_64
mod_dav_svn-1.9.12-1.x86_64
方法2.下载rpm包后安装

如果制作的repo文件不能安装成功,直接在浏览器里打开repo文件里的链接,找到符合系统版本的rpm包,直接点击即可下载,或者右键软件包"复制链接"在centos里用wget下载

在rpm包所在的目录执yum install xxxx.rpm,同样可以安装其他依赖包,不建议用rpm -ivh xxx.rpm安装,rpm 安装不能解决软件包的依赖关系

下载离线rpm包
[root@localhost ~]> wget http://opensource.wandisco.com/rhel/7/svn-1.9/RPMS/x86_64/subversion-1.9.12-1.x86_64.rpm
[root@localhost ~]> ls
anaconda-ks.cfg  subversion-1.9.12-1.x86_64.rpm
[root@localhost ~]> yum -y install subversion-1.9.12-1.x86_64.rpm

同样,其他两个软件直接安装即可
[root@localhost ~]> yum -y install httpd mod_dav_svn
[root@localhost ~]> rpm -q subversion httpd mod_dav_svn
subversion-1.9.12-1.x86_64
httpd-2.4.6-95.el7.centos.x86_64
mod_dav_svn-1.9.12-1.x86_64
三、重点:配置文件

这里我分了两种情况供大家参考

1.全新创建配置过程 1.1创建SVN库,并把目录所有者和所属组改成apache
[root@localhost ~]> mkdir -p /data/svn
[root@localhost ~]> svnadmin create /data/svn/
[root@localhost ~]> chown -R apache:apache /data/svn/*    #把权限给apache
[root@localhost ~]> cd /data/svn/ ;ls -lh
drwxr-xr-x 2 apache apache  76 Apr 25 10:51 conf
drwxr-sr-x 6 apache apache 233 Apr 25 10:51 db
-r--r--r-- 1 apache apache   2 Apr 25 10:51 format
drwxr-xr-x 2 apache apache 231 Apr 25 10:51 hooks
drwxr-xr-x 2 apache apache  41 Apr 25 10:51 locks
-rw-r--r-- 1 apache apache 246 Apr 25 10:51 README.txt
[root@localhost ~]> htpasswd -c conf/passwd liudh 
#初次创建密码用-c,若已有的passwd和authz直接拷贝到该目录

#authz文件 这里放一段做参考吧
[root@svnbak authfile]> head -n100 authz
[groups]                        #群组设置
sup_admin = xuxuyu,liudonghai   #管理员组
# PM 组:
pm_admin = litingrong
pm = liuwei,dengchangwei,lilianzhu,litingrong

# 市场部: 
mkt_admin = litingrong
mkt = liuwei,dengchangwei,lilianzhu,litingrong
mkt_sj_admin = sunpeng
mkt_sj = sunpeng,sunjiayue,bufan,longhuan

[/]    #根目录的权限
@sup_admin = rw    #管理组有读写权限
* = r              #everyone均有读权限
[/PM组]            #PM项目的权限
@pm = r
@pm_admin = rw
@sup_admin = rw
* = 
[/s市场部]
@mkt_sup_admin = rw    
@mkt = r
@mkt_sj = r            #下一级目录的访问者
* = 
[/s市场部/s设计]
@mkt_sj_admin = rw
@mkt_sj = r
* = 
1.2配置/etc/httpd/conf.d/svn.conf 文件
[root@localhost ~]> cat /etc/httpd/conf.d/svn.conf 
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

	DAV svn
	SVNPath /data/svn
	AuthType Basic
	AuthName "10.0.0.76"
	AuthUserFile /data/svn/conf/passwd
	Require valid-user
	AuthzSVNAccessFile /data/svn/conf/authz

#注:因为我在部署的时候把http访问日志的配置写到这里的话,httpd服务无法启动,于是就没写了
#日志将会存放到默认目录下/var/log/httpd/
#ErrorLog /data/logs/httpd/svn_error.log    
#CustomLog /data/logs/httpd/svn_access.log common

[root@localhost ~]> ll /var/log/httpd/
-rw-r--r-- 1 root root 1712 Apr 25 14:38 access_log
-rw-r--r-- 1 root root 1902 Apr 25 14:37 error_log
[root@localhost ~]> systemctl start httpd.service

到此配置完成,如果/etc/httpd/conf.d/svn.conf 文件没错,httpd即可正常启动
svn访问地址:http://主机IP/svn
注意:在浏览器或svn客户端访问时必须先关闭svn服务器的防火墙和selinux

2.利用完整备份文件还原SVN访问

svn完整备份出来后存放在了 /data/svn/202204241100/svn_office/,此时不用再创建svn库,需要做的是:
1)把svn库目录的所有者和所属者给apache;
2)适当修改/etc/httd/conf.d/svn.conf文件

[root@localhost ~]> chown -R apache:apache /data/svn/202204241100/
[root@localhost ~]>  ll /data/svn/202204241100/
drwxr-xr-x. 2 apache apache 4096 4月  24 19:22 authfile    #passwd和authz文件放在这,并非放在svn库下的conf文件夹
drwxr-xr-x. 6 apache apache 4096 4月  24 17:45 svn_office
[root@svnbak svn_office]# ll
drwxr-xr-x. 2 apache apache 4096 4月  24 10:59 conf
drwxr-sr-x. 6 apache apache 4096 4月  24 17:45 db
-r--r--r--. 1 apache apache    2 4月  24 17:45 format
drwxr-xr-x. 3 apache apache 4096 4月  24 10:59 hooks
drwxr-xr-x. 2 apache apache 4096 4月  24 10:59 locks
-rw-r--r--. 1 apache apache  246 4月  24 10:59 README.txt

修改完成的svn.conf文件
[root@localhost ~]> cat /etc/httpd/conf.d/svn.conf 
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

	DAV svn
	SVNPath /data/svn/202204241100/svn_office
	AuthType Basic
	AuthName "192.168.0.12"
	AuthUserFile /data/svn/202204241100/authfile/passwd    
	Require valid-user
	AuthzSVNAccessFile /data/svn/202204241100/authfile/authz


同样的日志文件未指定将存放在默认/var/log/httpd/目录下
svn访问地址:http://主机IP/svn
注意:在浏览器或svn客户端访问时必须先关闭svn服务器的防火墙和selinux

3.域名访问svn库

以上是没有域名解析的svn访问,这里放一个可域名访问svn库的配置文件供参考

[root@localhost ~]> cat /etc/httpd/conf.d/svn.conf
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

    ServerName svn.yinhejuzhen.com   
    ServerAlias svn.yinhejuzhen.com   
    DocumentRoot /data/wwwroot/svn.yinhejuzhen.com    
    ErrorLog /data/logs/httpd/svn.yinhejuzhen.com_error.log    
    CustomLog /data/logs/httpd/svn.yinhejuzhen.com_access.log common
    
        Options FollowSymlinks
        Require all granted
        RewriteEngine on
        RewriteRule index.html http://docs.galaxymx.com/index.php?title=SVN_版本控制系统
    
    
        Require valid-user
        AuthType Basic
        AuthName "svn.yinhejuzhen.com"
        AuthUserFile /data/svn/authfile/passwd
    
    
    DAV svn
    SVNPath /data/svn/svn_office
    AuthType Basic
    AuthName "svn.yinhejuzhen.com"
    AuthUserFile /data/svn/authfile/passwd
    Require valid-user
    AuthzSVNAccessFile /data/svn/authfile/authz
    
    
    DAV svn
    SVNPath /data/svn_test/svn_office.test
    AuthType Basic
    AuthName "svn.yinhejuzhen.com"
    AuthUserFile /data/svn_test/authfile/passwd.test
    Require valid-user
    AuthzSVNAccessFile /data/svn_test/authfile/authz.test
    
    


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/842005.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号