#!/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. 【hdu6185】Covering(骨牌覆盖)

    2017ACM/ICPC广西邀请赛-重现赛1004Covering 题意 n*4的格子,用1*2和2*1的砖块覆盖.问方案数(mod 1e9+7).(n不超过1e9) 题解 递推了个式子然后错位相减. ...

  2. BZOJ 2069: [POI2004]ZAW(Dijkstra + 二进制拆分)

    题意 给定一个有 \(N\) 个点 \(M\) 条边的无向图, 每条无向边 最多只能经过一次 . 对于边 \((u, v)\) , 从 \(u\) 到 \(v\) 的代价为 \(a\) , 从 \(v ...

  3. 从App业务逻辑中提炼API接口

    2.1 从App业务逻辑中提炼API接口 业务逻辑思维导图 功能-业务逻辑思维导图 基本功能模块关系 功能模块接口UML(设计出API) 在设计稿标注API 编写API文档 2.2 设计API的要点 ...

  4. 【BZOJ5324】[JXOI2018]守卫(动态规划)

    [BZOJ5324][JXOI2018]守卫(动态规划) 题面 BZOJ 洛谷 题解 既然只能看到横坐标在左侧的点,那么对于任意一个区间\([l,r]\)而言,\(r\)必须被选. 假设\(r\)看不 ...

  5. 【bfs】迷宫问题

    [题目描述] 定义一个二维数组: int maze[5][5] = { 0,1,0,0,0, 0,1,0,1,0, 0,0,0,0,0, 0,1,1,1,0, 0,0,0,1,0, }; 它表示一个迷 ...

  6. 初入react-redux (基于webpack babel的react应用框架)

    react这么热门的框架也不介绍了,redux是一个单项数据流的小框架,当然不只配合react,它起初是为react而配的,现在面向所有了,比如ng-redux的项目.redux做为react的标准搭 ...

  7. day02作业

    1.判断下列逻辑语句的True,False. 1),1 > 1 or 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6 tru ...

  8. 【译】5. Java反射——方法

    原文地址:http://tutorials.jenkov.com/java-reflection/methods.html ====================================== ...

  9. java和c#值类型和引用类型

    java数据类型分为基本数据类型和引用类型 基本数据类型:int  float  double  bool  char byte 引用数据类型:string  array  class interfa ...

  10. SQLServer 游标详解

    一.用到的数据 CREATE TABLE [dbo].[XSB]( ) NOT NULL, ) NOT NULL, [性别] [bit] NULL, [出生时间] [date] NULL, ) NUL ...