#!/bin/bash
#
# 在Linux(CentOS 6.6)服务器上安装并配置基于Apache的SVN服务器:
#
# 、安装服务
# 、创建svn版本库
# 、创建svn用户
# 、配置svn权限
# 、配置http访问
# #
# 、安装服务
# # 1.1、安装程序包:subversion httpd mod_dav_svn yum install subversion httpd mod_dav_svn -y >> $.log
if [[ $? != ]]
then
echo "安装服务失败,停止svn部署"
exit
fi #
# 、创建svn版本库
# # 2.1、定义svn版本库存放目录
svn_path=/svn
# 2.2、创建svn版本库存放目录
mkdir -p $svn_path
# 2.3、定义要创建版本库的名称
repo_name=mysvn5
# 2.4、创建新的版本库
if [[ -d $svn_path/$repo_name ]]
then
echo "版本库 $repo_name 已经存在"
exit
fi
svnadmin create $svn_path/$repo_name
# 2.5、配置svn版本库的属主属组为http服务的启动用户
chown apache.apache -R $svn_path
# 2.6、确认新创建的svn版本库已经生成,且文件属主属组正确
ls -l $svn_path/$repo_name >> $.log #
# 、创建svn用户
# # 3.1、创建svn管理员账号
admin_passwd=$(< /dev/urandom tr -dc _A-Z-a-z-- | head -c9)
htpasswd -c -b -m $svn_path/$repo_name/conf/passwd admin $admin_passwd
echo "$repo_name 版本库的管理员账号为 admin ,密码是 $admin_passwd " |tee -a $.log # 3.2、创建svn具有读写权限的账号
rw_user_passwd=$(< /dev/urandom tr -dc _A-Z-a-z-- | head -c9)
htpasswd -b -m $svn_path/$repo_name/conf/passwd rw_user $rw_user_passwd
echo "$repo_name 版本库的读写账号为 rw_user ,密码是 $rw_user_passwd " |tee -a $.log # 3.3、创建svn具有只读权限的账号
ro_user_passwd=$(< /dev/urandom tr -dc _A-Z-a-z-- | head -c9)
htpasswd -b -m $svn_path/$repo_name/conf/passwd ro_user $ro_user_passwd
echo "$repo_name 版本库的只读账号为 ro_user ,密码是 $ro_user_passwd " |tee -a $.log #
# 、配置svn权限
# # 4.1、设置权限节点
echo "[$repo_name:/]" >>$svn_path/$repo_name/conf/authz
# 4.2、配置管理员账号有“读写”权限
echo "admin = rw" >>$svn_path/$repo_name/conf/authz
# 4.3、配置读写账号有“读写”权限
echo "rw_user = rw" >>$svn_path/$repo_name/conf/authz
# 4.4、配置只读账号有“只读”权限
echo "ro_user = r" >>$svn_path/$repo_name/conf/authz #
# 、配置http访问
# echo '<Location /svn/'$repo_name'>' >> /etc/httpd/conf.d/subversion.conf
# 定义svn类型的http服务,会调用dav_svn_module
echo ' DAV svn' >> /etc/httpd/conf.d/subversion.conf
# svn版本库目录
echo ' SVNPath '$svn_path'/'$repo_name'' >> /etc/httpd/conf.d/subversion.conf
# svn访问权限的配置文件
echo ' AuthzSVNAccessFile '$svn_path'/'$repo_name'/conf/authz' >> /etc/httpd/conf.d/subversion.conf
# svn使用http基本验证方式验证账号身份
echo ' AuthType Basic' >> /etc/httpd/conf.d/subversion.conf
# http基本验证的提示信息
echo ' AuthName "Authorization repot SVN"' >> /etc/httpd/conf.d/subversion.conf
# svn账号配置文件,包含加密后的密码信息
echo ' AuthUserFile '$svn_path'/'$repo_name'/conf/passwd' >> /etc/httpd/conf.d/subversion.conf
# 仅允许通过验证的用户访问svn
echo ' Require valid-user' >> /etc/httpd/conf.d/subversion.conf
echo '</Location>' >> /etc/httpd/conf.d/subversion.conf # 重启http服务
/etc/init.d/httpd restart
# 设置http服务开机启动
chkconfig httpd on
# 在防火墙上开放http服务
iptables -I INPUT -p tcp --dport -m state --state NEW -j ACCEPT
/etc/init.d/iptables save
# 关闭selinux
setenforce #
# 、提交代码时必须写注释,且不能少于10个字符;允许修改注释
# cp $svn_path/$repo_name/hooks/pre-commit.tmpl $svn_path/$repo_name/hooks/pre-commit 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 sed -i 's/^commit-access-control.pl/#commit-access-control.pl/' $svn_path/$repo_name/hooks/pre-commit chmod +x $svn_path/$repo_name/hooks/pre-commit cp $svn_path/$repo_name/hooks/pre-revprop-change.tmpl $svn_path/$repo_name/hooks/pre-revprop-change chmod +x $svn_path/$repo_name/hooks/pre-revprop-change

在Linux(CentOS 6.6)服务器上安装并配置基于Apache的SVN服务器的更多相关文章

  1. 怎样在 CentOS/RHEL 7/6 上安装和配置 Sendmail 服务器

    在 CentOS 上,可以通过 mailx 命令 或 sendmail 命令来给因特网发送电子邮件. 关于前者的文章比较多,关于后者的文章比较少. 这里记录了我在 CentOS 7 上安装和配置 se ...

  2. 在Linux CentOS 6.5 (Final)上安装git-1.9.0

    CentOS 6.5 (Final)默认安装的git版本为1.7.1.3,而我们希望安装1.9.0版本.由于rpm安装库里没有1.9.0版本,因此我们需要找其它方法来安装. 网上有很多文章介绍了如何从 ...

  3. Linux CentOS 7 & JDK 1.7 安装与配置

    前言 简单记录一下在CentOS 7中安装配置JDK 1.7的全过程~ 下载 首先是jdk 1.7 64bit & 32bit的下载地址: jdk-7u79-linux-x64.tar.gz ...

  4. 在 windows 系统上 安装与配置 PHP + Apache

    参考:http://www.cnblogs.com/pharen/archive/2012/02/06/2340628.html 在大学时候上过一门PHP课时,因为课堂需要配置过一次PHP+Mysql ...

  5. Linux Centos下SQL Server 2017安装和配置

    说到SQL Server服务,我们大家都知道是Microsoft公司的数据库服务,当然说到数据库,现在主要分为三大商:1:Oracle.2:Msql Server.3:Mysql:三种数据库在当下环境 ...

  6. 在服务器上安装并配置JDK1.8

    参考链接:https://blog.csdn.net/qq_40958000/article/details/83996912

  7. 基于svnserve的SVN服务器(windows下安装与配置)

    基于svnserve的SVN服务器(windows下安装与配置) 基于svnserve的SVN服务器(windows下安装与配置)关键字: svn 安装SVNserve 从http://subvers ...

  8. 服务器上安装FileZilla Server连接时报You appear to be behind a NAT router. Please configure the passive mode settings and forward a range of ports in your router.

    官方资源下载链接:客户端,或者直接点击下载“FileZilla_3.24.0_win64-setup.exe”:服务端,或者直接点击下载“FileZilla_Server-0_9_60_2.exe”: ...

  9. 怎样在CentOS 7.0上安装和配置VNC服务器

    VNC轻松连接远程Linux桌面 http://jingyan.baidu.com/article/6c67b1d6f1bac92786bb1e6d.html 这是一个关于怎样在你的 CentOS 7 ...

随机推荐

  1. MT【278】二次齐次化

    对于$c>0$,当非零实数$a,b$满足$4a^2-2ab+4b^2-c=0,$且使$|2a+b|$最大时,$\dfrac{3}{a}-\dfrac{4}{b}+\dfrac{5}{c}$的最小 ...

  2. 【hihocoder 1628】K-Dimensional Foil(线性代数)

    hihocoder 1627 The 2017 ACM-ICPC Asia Beijing Regional Contest 北京区域赛 B.K-Dimensional Foil 题意 给定N个点的前 ...

  3. <Android基础>(一)

    第一章Android 2003年10月,Andy Rubin等人创办了Android公司.2005年8月谷歌收购. 1.1 Android全貌 1.1.1 Android系统架构 1.Linux内核层 ...

  4. 构建FTP服务

    一.配置YUM仓库服务--------------YUM服务器------------------client------------------192.168.1.1 192.168.1.10[ro ...

  5. 录毛线脚本,直接抓包手写最简洁的LoadRunner性能测试脚本

    通常情况下,我们测试性能先要做单场景测试,即某个功能,一般情况下,这个功能依赖的功能(可能是需要先登录)不会太多, 如果录制脚本的话,会录制到很多无关的请求,大大增加了脚本的复杂度以及调整脚本的工作量 ...

  6. luogu5022 [NOIp2018]旅行 (dfs)

    m=n-1的时候,就直接贪心地dfs就可以 m=n的话,就可以枚举删掉一条边,然后照着m=n-1做 $O(n^2)$大概能过 (然而我眼瞎看不到m<=n) #include<cstdio& ...

  7. [HAOI2008]圆上的整点(数论)

    题目的所求可以转化为: \(y^2=r^2-x^2\)(其中r,x,y均为整数) 即\(y^2=(r-x)(r+x)\)(其中\(r,x,y\)均为整数) 不妨设\((r-x)=d*u\)------ ...

  8. MongoDB存储引擎选择

    MongoDB存储引擎选择 MongoDB存储引擎构架 插件式存储引擎, MongoDB 3.0引入了插件式存储引擎API,为第三方的存储引擎厂商加入MongoDB提供了方便,这一变化无疑参考了MyS ...

  9. 如何在疲劳的JS世界中持续学习

    作者简介 cnfi 蚂蚁金服·数据体验技术团队 本文翻译自<Stay updated in JS fatigue universe>,并对内容有所补充和修改. 部分内容参考<HOW ...

  10. 【洛谷P1164 小A点菜】

    题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家……餐馆,很低端的那种. uim指着墙上的价目表(太低级了没有菜单),说:“随便点”. 题目描述 不过uim由于买了一些辅(e ...