在Linux(CentOS 6.6)服务器上安装并配置基于Apache的SVN服务器

在Linux(CentOS 6.6)服务器上安装并配置基于Apache的SVN服务器

  1 #!/bin/bash
  2 #
  3 #    在Linux(CentOS 6.6)服务器上安装并配置基于Apache的SVN服务器:
  4 #
  5 #    1、安装服务
  6 #    2、创建svn版本库
  7 #    3、创建svn用户
  8 #    4、配置svn权限
  9 #    5、配置http访问
 10 #
 11 
 12 #
 13 #    1、安装服务
 14 #
 15 
 16 #    1.1、安装程序包:subversion httpd mod_dav_svn
 17 
 18 yum install subversion httpd mod_dav_svn -y >> $0.log
 19 if [[ $? != 0 ]]
 20 then
 21     echo "安装服务失败,停止svn部署"
 22     exit 1
 23 fi
 24 
 25 #
 26 #    2、创建svn版本库
 27 #
 28 
 29 #    2.1、定义svn版本库存放目录
 30 svn_path=/svn
 31 #    2.2、创建svn版本库存放目录
 32 mkdir -p $svn_path
 33 #    2.3、定义要创建版本库的名称
 34 repo_name=mysvn5
 35 #    2.4、创建新的版本库
 36 if [[ -d $svn_path/$repo_name ]]
 37 then
 38     echo "版本库 $repo_name 已经存在"
 39     exit 1
 40 fi
 41 svnadmin create $svn_path/$repo_name
 42 #    2.5、配置svn版本库的属主属组为http服务的启动用户
 43 chown apache.apache -R $svn_path
 44 #    2.6、确认新创建的svn版本库已经生成,且文件属主属组正确
 45 ls -l $svn_path/$repo_name >> $0.log
 46 
 47 #
 48 #    3、创建svn用户
 49 #
 50 
 51 #    3.1、创建svn管理员账号
 52 admin_passwd=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c9)
 53 htpasswd -c -b -m $svn_path/$repo_name/conf/passwd admin $admin_passwd
 54 echo "$repo_name 版本库的管理员账号为 admin ,密码是 $admin_passwd " |tee -a $0.log
 55 
 56 #    3.2、创建svn具有读写权限的账号
 57 rw_user_passwd=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c9)
 58 htpasswd -b -m $svn_path/$repo_name/conf/passwd rw_user $rw_user_passwd
 59 echo "$repo_name 版本库的读写账号为 rw_user ,密码是 $rw_user_passwd " |tee -a $0.log
 60 
 61 #    3.3、创建svn具有只读权限的账号
 62 ro_user_passwd=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c9)
 63 htpasswd -b -m $svn_path/$repo_name/conf/passwd ro_user $ro_user_passwd
 64 echo "$repo_name 版本库的只读账号为 ro_user ,密码是 $ro_user_passwd " |tee -a $0.log
 65 
 66 #
 67 #    4、配置svn权限
 68 #
 69 
 70 #    4.1、设置权限节点
 71 echo "[$repo_name:/]" >>$svn_path/$repo_name/conf/authz
 72 #    4.2、配置管理员账号有“读写”权限
 73 echo "admin = rw" >>$svn_path/$repo_name/conf/authz
 74 #    4.3、配置读写账号有“读写”权限
 75 echo "rw_user = rw" >>$svn_path/$repo_name/conf/authz
 76 #    4.4、配置只读账号有“只读”权限
 77 echo "ro_user = r" >>$svn_path/$repo_name/conf/authz
 78 
 79 #
 80 #    5、配置http访问
 81 #
 82 
 83 echo '<Location /svn/'$repo_name'>' >> /etc/httpd/conf.d/subversion.conf
 84 #    定义svn类型的http服务,会调用dav_svn_module
 85 echo '    DAV svn' >> /etc/httpd/conf.d/subversion.conf
 86 #    svn版本库目录
 87 echo '    SVNPath '$svn_path'/'$repo_name'' >> /etc/httpd/conf.d/subversion.conf
 88 #    svn访问权限的配置文件
 89 echo '    AuthzSVNAccessFile '$svn_path'/'$repo_name'/conf/authz' >> /etc/httpd/conf.d/subversion.conf
 90 #    svn使用http基本验证方式验证账号身份
 91 echo '    AuthType Basic' >> /etc/httpd/conf.d/subversion.conf
 92 #    http基本验证的提示信息
 93 echo '    AuthName "Authorization repot SVN"' >> /etc/httpd/conf.d/subversion.conf
 94 #    svn账号配置文件,包含加密后的密码信息
 95 echo '    AuthUserFile '$svn_path'/'$repo_name'/conf/passwd' >> /etc/httpd/conf.d/subversion.conf
 96 #    仅允许通过验证的用户访问svn
 97 echo '    Require valid-user' >> /etc/httpd/conf.d/subversion.conf
 98 echo '</Location>' >> /etc/httpd/conf.d/subversion.conf
 99 
100 #    重启http服务
101 /etc/init.d/httpd restart
102 #    设置http服务开机启动
103 chkconfig httpd on
104 #    在防火墙上开放http服务
105 iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
106 /etc/init.d/iptables save
107 #    关闭selinux
108 setenforce 0
109 
110 #
111 #    6、提交代码时必须写注释,且不能少于10个字符;允许修改注释
112 #
113 
114 cp $svn_path/$repo_name/hooks/pre-commit.tmpl $svn_path/$repo_name/hooks/pre-commit
115 
116 sed -i '75a LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c)\nif [ "$LOGMSG" -lt 10 ]; then\necho -e "\n 提交文件时必须添加注释,提交中止."1>&2\nexit 1\nfi' $svn_path/$repo_name/hooks/pre-commit
117 
118 sed -i 's/^commit-access-control.pl/#commit-access-control.pl/' $svn_path/$repo_name/hooks/pre-commit
119 
120 chmod +x $svn_path/$repo_name/hooks/pre-commit
121 
122 cp $svn_path/$repo_name/hooks/pre-revprop-change.tmpl $svn_path/$repo_name/hooks/pre-revprop-change
123 
124 chmod +x $svn_path/$repo_name/hooks/pre-revprop-change

 

转载于:https://www.cnblogs.com/www1707/p/5435919.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109054.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 八卦时钟代码

    八卦时钟代码<!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><title>www.dupengfei.top</title><style>html{background:#000;color:#666;font-size:12px;…

    2022年6月28日
    42
  • Windows环境安装ActiveMQ,Stomp扩展

    Windows环境安装ActiveMQ,Stomp扩展

    2022年3月13日
    38
  • python+Django+Mysql+协同过滤电影推荐系统简介

    python+Django+Mysql+协同过滤电影推荐系统简介电影推荐系统技术采用前端:bootstrap3+vue+jquery后端:django2.2.1+djangorestframework(MVC框架)数据库:mysql数据集:豆瓣数据集+豆瓣电影爬虫+csv存储movielens数据集+图片+用户数据和评分数据+csv存储功能介绍录入电影信息用户打分电影标签分类电影推荐电影分享电影收藏后台管理系统。算法基于用户的协同过滤算法:协同过滤,根据用户的打分来进行推荐。从所有打分的用户中找

    2022年6月11日
    40
  • pycharm设置背景颜色_idea自定义背景颜色

    pycharm设置背景颜色_idea自定义背景颜色pycharm原始的背景是白底黑字或者黑底白字,我都不是很喜欢。我配置的是豆沙绿背景,字还是黑字,效果还不错,这种是比较护眼的。如图:  具体操作如下:File->Settings->Editor->Colors&Fonts->General->Text->Defaulttext然后修改background的颜色,配置如下图:

    2022年8月27日
    4
  • java贪吃蛇源码

    java贪吃蛇源码java是一种面向对象的语言,有着其中不用质疑的优点。学习java将近三个月了,一直在琢磨着“万物皆对象”的意义,却总是只知其表不知其意,做完这个java贪吃蛇后才有了那么一点的理解。直接上效果图。游戏分为了六个类,分别为:Node类:蛇身都是由一个一个节点组成,所以首先将节点抽象为一个类。Snake类:此类是一条蛇抽象出来的一个类。一种包含了存储节点的LinkedList类型…

    2022年5月9日
    54
  • 异常处理面试题_运行值长面试题

    异常处理面试题_运行值长面试题java提供了两种异常机制。一种是运行时异常(RuntimeExepction),一种是受检异常(checkedexecption)。受检异常:我们经常遇到的IO异常及sql异常就属于检查式异常。对于这种异常,java编译器要求我们必须对出现的这些异常进行catch,面对这种异常要么往上抛,要么就catch运行时异常:我们可以不处理。当出现这样的异常时,总是由虚拟机接管。RuntimeExec

    2022年9月30日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号