#!/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. Python的快排应有的样子

    快排算法 ​ 简单来说就是定一个位置然后,然后把比它小的数放左边,比他大的数放右边,这显然是一个递归的定义,根据这个思路很容易可以写出快排的代码 ​ 快排是我学ACM路上第一个让我记住的代码,印象很深 ...

  2. pytest_01_安装和入门

    目录 pytest 安装与入门 1.pip install -U pytest 2.创建一个test01.py的文件 3.在该目录下执行pytest(venv) 4.执行多个,新建一个py文件 tes ...

  3. css元素溢出

    当子元素的尺寸超过父元素的尺寸时,需要设置父元素显示溢出的子元素的方式,设置的方法是通过overflow属性来设置. overflow的设置项: 1.visible 默认值.内容不会被修剪,会呈现在元 ...

  4. HDU1542-Atlantis【离散化&线段树&扫描线】个人认为很全面的详解

    刚上大一的时候见过这种题,感觉好牛逼哇,这都能算 如今已经不打了,不过适当写写题保持思维活跃度还是不错的,又碰到这种题了,想把它弄出来 说实话,智商不够,看了很多解析,花了4.5个小时才弄明白 网上好 ...

  5. (二)flask-sqlalchemy基本操作

    对数据库基本操作 在Flask-SQLAlchemy中,插入.修改.删除操作,均由数据库会话管理. 会话用 db.session 表示.在准备把数据写入数据库前,要先将数据添加到会话中然后调用 db. ...

  6. 我们如何用Go来处理每分钟100万复杂请求的场景

    在Malwarebytes我们经历了显著的增长,自从我一年前加入了硅谷的公司,一个主要的职责成了设计架构和开发一些系统来支持一个快速增长的信息安全公司和所有需要的设施来支持一个每天百万用户使用的产品. ...

  7. Java collection 容器

    http://www.codeceo.com/article/java-container-brief-introduction.html Java实用类库提供了一套相当完整的容器来帮助我们解决很多具 ...

  8. [luogu3391][文艺平衡树]

    题目链接 思路 splay区间操作的裸题. 假如要对l-r这段区间操作,那么就先把l-1伸展到根节点,然后把r +1伸展为根的儿子.这样r + 1的左儿子就是要操作的区间了.只要在上面打上标记,以后每 ...

  9. django2+uwsgi+nginx上线部署到服务器Ubuntu16.04(最新最详细版)

    1.前期准备 1.打开Terminal终端,执行以下命令,将项目所需要的依赖包,都记录到一个文件内备用. pip freeze >requirements.txt 2.将项目文件夹→右键→添加压 ...

  10. matlab 下标类型

    double int uint time: double = int < uint8 较为神奇. clear clc time=clock; a=zeros(,); : a(i)=; end f ...