生命不息,折腾不止!

Viva La Vida

centos7 svn搭建

有些东西只有自己亲自去做了 才会了解的更加详细!

当然少不了来自网络上其他大神的分享才学会搭建的,感谢他们的分享,让我们一起进步吧!
ps:得换主题了..

安装svn

yum install subversion -y 

检测是否安装成功

svnserve –version 

创建版本库

先创建对应版本库的目录 这里举例: /data/svn/repos

svnadmin create /data/svn/repos

这时目录下会生成配置文件

修改配置文件

进入上面生成的文件夹conf下,进行配置, 有以下几个文件authz, passwd, svnserve.conf
其中authz 是权限控制,可以设置哪些用户可以访问哪些目录, passwd是设置用户和密码的, svnserve是设置svn相关的操作

1.设置passwd,这里是明文的密码
2.设定权限authz, 比如哪些用户属于哪个组,哪个组或用户对哪个目录有权限
这里需要特别注意设置的路径 否则会提示出错的
3.设定svnserve.conf

anon-access = none # 使非授权用户无法访问 
auth-access = write # 使授权用户有写权限
password-db = password 
authz-db = authz # 访问控制文件 
realm = projectname # 认证命名空间

采用默认配置. 以上语句都必须顶格写, 左侧不能留空格, 否则会出错.
注意:对用户配置文件的修改立即生效,不必重启svn。

启动svn

svnserve -d -r /svn/

-d 表示以daemon的方式运行,-r dir_path 表示把dir_path当作版本库的根目录,比如 /svn/repo,svn://192.168.1.103/repo,访问的就是/svn/repo

设置防火墙允许访问3690端口

vi /etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3690 -j ACCEPT
systemctl restart iptables.service

在配置测试环境时,我们可以通过svn的钩子在每次提交更新后自动同步svn代码到网站目录下
这样就不用每次去通过ftp更新网站文件了

在svn创建的时候的目录里 有一个hook 目录,里面有 post-commit.tmpl 文件 这个是模板文件
复制一份放在此目录下,命名为post-commit,并将其用户组设为www,并设置为可执行:

chown www:www post-commit
chmod +x post-commit这样就有了访问www目录的权限。
里面原有的代码全部注释掉.这里可以执行shell命令,每次commit完成后都会调用此文件.
修改文件内容为

#!/bin/sh
#设定环境变量,如果没有设定可能会出现update报错
export LANG=zh_CN.UTF-8
REPOS="$1"
REV="$2"
SVN_PATH=/usr/bin/svn
WEB_PATH=/web/project
LOG_PATH=/tmp/svn_update.log
#/usr/bin/svn update --username user --password password $WEB_PATH --no-auth-cache
echo "nnn##########开始提交 " `date "+%Y-%m-%d %H:%M:%S"` '##################' >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
$SVN_PATH update --username user --password password $WEB_PATH --no-auth-cache >> $LOG_PATH
chown -R www:www $WEB_PATH

说明:
1、#!/bin/sh 说明是执行shell命令
2、export LANG=zh_CN.UTF-8 是为了解决svn post commit 中文乱码。
如果你是GBK编码可能会提示:Error output could not be translated from the native locale to UTF-8
这是客户端和服务器编码的问题,默认是utf-8,可尝试设置export LANG=zh_CN.GBK或者export LANG=en_US.UTF-8
#执行更新操作
3、svn update –username 你版本库的用户名 –password 用户名的密码 svn://你的IP地址:端口/repos/project /web/project
4、chown -R www:www $WEB_PATH 更改文件夹属主为适合Web Server的
里面原有的代码全部注释掉.这里可以执行shell命令,每次commit完成后都会调用此文件

参考: http://blog.rekfan.com/articles/310.html

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注