这些天帮朋友的云服务器配置svn,并要实现svn与web同步,昨天折腾了一天,没有没能折腾出来,不是这里报错就是那里报错了,网上找资料,测试,网上找资料,再测试,就这样来来回回折腾了好久,后面终于走通了,再次留下笔记,已供后面参考。
1、安装svn
yum install subversion
2、 查看是否安装成功
svnserve --version
3、创建仓库目录
mkdir -p /home/svn/test
4、创建项目,test是你的项目名称
svnadmin create /home/svn/test
5、项目创建完成后,修改配置文件
vim /home/svn/test/conf/svnserve.conf 以下所有前面不能有空格 ,就是这个地方踩坑了
anon-access = none #去除文件前的注释,将read改为none,防止匿名访问 auth-access = write #去除文件前的注释 password-db = passwd #去除文件前的注释 authz-db = authz #去除文件前的注释,访问权限配置,非常重要,不打开,分组权限不生效 realm = /home/svn # 认证空间名,版本库所在目录 (默认当前目录)
6、打开用户配置文件,编辑 创建账户、密码
vim /home/svn/test/conf/passwd
[users]
user=paw
7、打开权限配置 设置添加的用户权限
代码语言:javascript复制vim /home/svn/test/conf/authz
[groups]
qm = albert #<用户组> = <用户名,用户名>
[test:/] #[<版本库名>:<路径>]
@qm = rw #<用户组> = <权限>
8、防火墙开放SVN端口通行,云服务器请确保安全组里面开放了3690端口
iptables -A INPUT -p tcp --dport 3690 -j ACCEPT
9、保存 iptables 规则,如不能保存请使用其他方法保存
service iptables save service iptables restart #保存后重启防火墙-
ps -ef|grep svn|grep -v grep #查看svn进程
10、开启SVN服务
svnserve -d -r /home/svn
killall svnserve #停止SVN服务,需要的时候执行
svn同步到web 1、进入/home/svn/test/hooks下,拷贝文件
cp post-commin.tmpl post-commit 最后写入
export LANG=zh_CN.UTF-8
REPOS="$1"
REV="$2" SVN_PATH=/usr/bin/svn WEB_PATH=/data/wwwroot/www.test.com $SVN_PATH update --username username --password userpaw $WEB_PATH --no-auth-cache chown -R www:www $WEB_PATH
2、给钩子文件赋予可执行权限
chmod x post-commit
3、执行最后的语句,完成搞定
svn co svn://localhost/chihuo /data/wwwroot/chihuo.ikoll.cn --username username --password userpaw