在Linux(CentOS 6.6)服务器上安装并配置基于Apache的SVN服务器
#!/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服务器的更多相关文章
- 怎样在 CentOS/RHEL 7/6 上安装和配置 Sendmail 服务器
在 CentOS 上,可以通过 mailx 命令 或 sendmail 命令来给因特网发送电子邮件. 关于前者的文章比较多,关于后者的文章比较少. 这里记录了我在 CentOS 7 上安装和配置 se ...
- 在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版本,因此我们需要找其它方法来安装. 网上有很多文章介绍了如何从 ...
- Linux CentOS 7 & JDK 1.7 安装与配置
前言 简单记录一下在CentOS 7中安装配置JDK 1.7的全过程~ 下载 首先是jdk 1.7 64bit & 32bit的下载地址: jdk-7u79-linux-x64.tar.gz ...
- 在 windows 系统上 安装与配置 PHP + Apache
参考:http://www.cnblogs.com/pharen/archive/2012/02/06/2340628.html 在大学时候上过一门PHP课时,因为课堂需要配置过一次PHP+Mysql ...
- Linux Centos下SQL Server 2017安装和配置
说到SQL Server服务,我们大家都知道是Microsoft公司的数据库服务,当然说到数据库,现在主要分为三大商:1:Oracle.2:Msql Server.3:Mysql:三种数据库在当下环境 ...
- 在服务器上安装并配置JDK1.8
参考链接:https://blog.csdn.net/qq_40958000/article/details/83996912
- 基于svnserve的SVN服务器(windows下安装与配置)
基于svnserve的SVN服务器(windows下安装与配置) 基于svnserve的SVN服务器(windows下安装与配置)关键字: svn 安装SVNserve 从http://subvers ...
- 服务器上安装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”: ...
- 怎样在CentOS 7.0上安装和配置VNC服务器
VNC轻松连接远程Linux桌面 http://jingyan.baidu.com/article/6c67b1d6f1bac92786bb1e6d.html 这是一个关于怎样在你的 CentOS 7 ...
随机推荐
- 【Linux命令】linux一次性解压多个.gz或者.tar.gz文件
原文:linux一次性解压多个.gz或者.tar.gz文件 解压多个压缩包 对于解压多个.gz文件的,用此命令: for gz in *.gz; do gunzip $gz; done 对于解压多个. ...
- 洛谷 P3121 【[USACO15FEB]审查(黄金)Censoring (Gold)】
被自己学校OJ的毒瘤测评姬卡到自闭 Hash+栈+优化暴力 其实思路也很简单,就是把单词存进一个结构体,记录其哈希值和长度,然后就可以开始匹配了 但是,理论复杂度很高,为\(O(n*length)\) ...
- P1024 一道naive的二分
好吧,这道题思路还是比较简单的.整个程序大体上很快就打出来了,然后修改了解为整数的情况. 但是交上去一直是50分,最后我很无耻的看了题解,然后抄了一个玄学if回来,瞬间AC,不知道为什么... 这句就 ...
- 基于senparc实现的微信AccessToken接口全局统一获取
在senparc中实现了AccessToken的全局获取方式,因微信项目涉及跨语言.跨团队,外包方式的合作,需要通过接口方式供合作方调用,现将使用webapi实现的接口分享给大家: 1.自定义一个对外 ...
- js弹出层
js弹出层 1.div附近显示 <div id="message"></div> $().delay().hide(); 2.遮罩层 表单提交后遮住页面,等 ...
- 数位DP入门题
站点一览: hdu 2089"不要62" hdu 4734"F(X)" poj 3252"Round Numbers" hdu 3709&q ...
- hdu 4333"Revolving Digits"(KMP求字符串最小循环节+拓展KMP)
传送门 题意: 此题意很好理解,便不在此赘述: 题解: 解题思路:KMP求字符串最小循环节+拓展KMP ①首先,根据KMP求字符串最小循环节的算法求出字符串s的最小循环节的长度,记为 k: ②根据拓展 ...
- springboot1.5升级2.0后遇到的问题
https://blog.csdn.net/zhiquanzhou/article/details/80566630
- 定制kickstart重建CentOS7.5镜像用于U盘引导安装
有什么问题或者疑惑,可以留言,全力解答. ISO 镜像制作 U 盘安装盘 U盘安装CentOS7.4 U盘实现CentOS7.3全自动安装系统 https://www.cnblogs.com/pany ...
- centos7.2安装完成的基本操作
系统是centos7.2,安装完成的基本操作 1 修改网卡为eth02 更新系统3 给/etc/rc.local添加执行权限4 添加用户hequan5 禁用selinux6 关闭防火墙安装iptabl ...