linux服务器如何搭建svn服务端? 2018-07-31
安装svn
参考网上文献:https://www.cnblogs.com/chenqionghe/p/4527763.html
我是百度学来的。基本看着这篇相对比较完整。有一丢丢少了点东西导致钩子出问题。 没事。稍等我们就给指出来。。
先来看下上传代码的流程 首先,我们在客户端(程序员的电脑。)写完代码,然后提交到svn(服务端) ,这时候我们的svn版本里面已经有我们刚提交的代码了,然后我们在配置个钩子,把代码钩到我们的web项目里面去。这样我们访问web目录,就能访问到最新的项目代码了。
1 - yum安装
# yum -y install subversion
2 - 代码库创建 在根目录下创建www目录,里面再创建svndata目录。创建svn库 我们创建test库
# mkdir -p /www/svndata
# svnadmin create /www/svndata/test
3 - 配置代码库。
(1) 进入配置文件。
# cd /www/svndata/test/conf
(2)设置用户密码 没用过vim编辑器的稍微看一下。例如 i是输入。 :wq 是保存退出等等,,
# vim passwd
找到[users] 下面添加一行: cqh=123456
(3)设置anthz权限控制 目的是设置哪些用户可以访问哪些目录
vim authz
加入以下配置 /就是以下用户可以访问根目录
[/]
cqh=rw
(4)配置svn服务配置。
vim svnserve.conf
把
anon-acccess=none 前面的#去掉
anon-acccess=write 前面的#去掉
password-db=passwd 前面的#去掉
authz-db=authz 前面的#去掉
realm = My First Repository 前面的#去掉
以上选项有的就把#去掉,因为#是注释。去掉就是相当于开起来。。具体参数是什么作用,请看我上面分享的链接。。
3 - svn相关命令
启动svn
# svnserve -d -r /www/svndata
查看svn进程
# ps -ef|grep svn|grep -v grep
检查svn端口
# netstat -ln |grep 3690
停止svn
# killall svnserve
OK 我们如果启动了svn 可以在电脑上尝试检出一下。。
svn仓库地址 svn://你的ip/test
用户名密码 cqh/123456
2.设置钩子 自动更新
第一步,我们创建一个web目录 文章里面写创建在var里面。 根据情况自己定义吧,包括上面svn的文件路径都可以自定义。。,我这里就跟着文章里面的写。
#mkdir /var/www/html/test
第二步 进入web目录 然后检出一下
#cd /var/www/html/test
#svn checkout svn://localhost/svntest
OK,web目录创建完了,我们得创建钩子,让钩子把我们客户端提交的东西检出到web目录。。
我们进入我们svn库的文件、
# cd /www/svndata/test/hooks/
然后我们创建一个post-commit文件(钩子脚本)
# vim post-commit
并在脚本里面加入以下内容 注意了 链接里没有 #!/bin/sh 所以提交的话会报错 我上面所说的坑就是这个坑。
#!/bin/sh
export.UTF-8
SVN=/usr/bin/svn #这里配置的是svn安装bin目录下的svn文件
WEB=/
var
/www/html/test #要更新的目录
$SVN
update
$WEB
--username cqh --password 123456
chown
-R www:www
$WEB
给予钩子文件权限
# chmod a+x post-commit
OK,我们svn搭建完毕,剩下的就是测试了。你测试在客户端提交到svn,看看服务器上面的web目录是否有你刚提交的文件,如果有,就是没问题了。如果报错,请根据报错信息直接复制进百度里面搜。答案一大堆。