1.安装svn以及新建svn项目
yum -y install subversion
此命令会全自动安装svn服务器相关服务和依赖,安装完成会自动停止命令运行
若需查看svn安装位置,可以用以下命令:
rpm -ql subversion
2.创建版本库目录(此仅为目录,为后面创建版本库提供存放位置)
mkdir /var/svn/svnrepos
3.创建svn版本库
svnadmin create /var/svn/svnrepos/xxxx (xxxx为你预期的版本库名称,可自定义)
创建成功后,进入xxx目录下
cd /var/svn/svnrepos/xxxx
进入目录,可以看到如下文件信息
4.修改配置,设置svn账号以及密码
cd /var/svn/svnrepos/xxxx/conf
conf目录下,一共存放三份重要的配置文件,如下:
authz:负责账号权限的管理,控制账号是否读写权限
passwd:负责账号和密码的用户名单管理
svnserve.conf:svn服务器配置文件
5.修改文件内容
vi authz
这个是设置账号的权限 r-读 / w-写
vim passwd
账号密码文件无需做修改,也是直接将账号和密码信息追加到文件中即可,注意格式为:
这个是设置账号对应的密码
修改svnserve.conf(##重要)
vim svnserver.conf
大多数网络资料,都会让大家将authz-db = authz这条给去掉注释,但是也有人说此条去掉后,虽然svn服务器可以连接,但一直会提示“认证失败”,注释掉即可正常,我没有去掉,svn能运行成功。
还有多数资料会让大家在realm = My First Repository处填写服务器ip,经过测试,填写后并无什么用处,所以大家去掉注释即可,无需做任何修改
到此,配置已经全部完成,账号信息已经添加成功。
我的是阿里云主机,svn对应的端口号是默认的3690,还需要在控制台安全组开启这个端口才能访问成功。
下面是设置svn上传代码到仓库之后自动同步到云主机访问根目录
svn版本库中的一个项目:/var/svn/svnrepos/tp5
网站根目录:/home/www/tp5
我们先将SVN版本库中的一个项目checkout到网站目录:
svn co svn://127.0.0.1/tp5 --username root --password 123456
新建svn post-commit钩子
cd /var/svn/svnrepos/tp5/hooks
mv post-commit.tmpl post-commit
//一定要清空post-commit里面的内容,已经赋予权限,不然同步代码会报错
chmod +x post-commit
chmod 755 post-commit
vim post-commit
#!/bin/sh
#设定环境变量,如果没有设定可能会出现update报错
#设定语言,根据系统语言设置,如果是GBK就设置为 LANG=zh_CN.GBK
export LANG=en_US.utf8
svn update /home/www/tp5 --username 'root' --password '123456' --no-auth-cache
--no-auth-cache //设置不缓存账号
------至此第一次完成搭建svn以及同步代码------