Linux-CentOs7-svn安装及钩子配置
做个svn的教程
首先进入test目录下,新建一个svn目录,准备做svn测试
cd /test
mkdir svn
cd svn
然后使用yum安装svn,这里就不使用编译安装了,这玩意只要能用就行,版本无所谓
rpm -qa subversion 查看是否已安装svn
yum install subversion 安装svn
2、安装完成后,创建svn版本库,就在我们新建的svn下面
svnadmin create /test/svn
创建好了使用 ll 命令查看文件
然后进入conf目录,进行文件配置
cd conf
首先配置账号密码文件
vi passwd
user=111111 前面的是用户名,后面的是密码
然后配置权限
vi authz
在文件里输入下图中的内容
然后在编辑配置文件,在下图中的位置加入下列内容,他原来的文件是有下面内容的,都是注释的,你也可以去掉注释直接改内容
anon-access = none 不允许匿名用户
auth-access = write 授权用户可写
password-db = passwd 用户文件是哪个
authz-db = authz 鉴权文件是哪个
realm = /test/svn 你设置的项目目录
3、配置钩子文件,用于将上传的文件更新到网站目录
cd /test/svn/hooks
cp post-commit.tmpl post-commit
vi post-commit
将下列代码插入到文件中
export LANG=en_US.UTF-8
SVN_PATH=/usr/bin
WEB_PATH=/usr/local/nginx/html 这里是设置的网站目录,我们以之前安装的nginx下的默认根目录
SVN_USER=user 设置的svn用户名
SVN_PASS=111111 密码
LOG_PATH=/tmp/svn.log
echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
$SVN_PATH/svn update $WEB_PATH --username $SVN_USER --password $SVN_PASS --no-auth-cache >> $LOG_PATH
记得将最后一行mailer…… 注释掉,删掉也行,没鸟用
保存完毕后,给文件加上可执行权限
chmod a+x post-commit
4、开启svn的3690端口
5、开启svn服务
svnserve -d -r /test/svn
6、然后我们进入网站目录,先用账号检出下,按图示操作
cd /usr/local/nginx/html
svn checkout svn://192.168.0.253
先输入root密码, 在输入svn账户 , 在输入svn密码, yes 保存密码
7、ok,linux系统上配置好了,我们来本地试验下。
本地安装svn就不多介绍了,自己去官网下载即可,然后按图示操作
提交成功后,我们在看看linux下的目录,他会自动将文件更新到网站目录下。
8、备注
我这里操作的目录是 /test/svn 目录,但是一个服务器上可能不止一个网站,就要建立多个仓库,可以在test目录下简历 svn0、svn1 ……等多个目录。然后启动的时候用
svnserve -d -r /test 即可,这里要启动test下的多个仓库。
检出的时候ip后面要加目录名 svn://ip/svn0 等。
至此完毕。