ubuntu 下搭建svn服务器,以及自动更新到web服务器。
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">在网上找了很多的教程,但是试了很多个。写的都是略微粗糙,也有很多问题。整了三天终于是搞定了。我在这整理下,发上来给大家看看。希望有相同需求的道友少走些弯路。大家有什么问题可以在下面留言。</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>操作系统:elementary os(Ubuntu下的一个分支)
当前环境:已装好lamp(web服务器目录为/var/www/),已经装好了svn服务器(启动脚本在/usr/bin/svn)
创建代码仓库
svnadmin create /home/svn/project --fs-type fsfs
然后在project目录下会生成三个文件夹,在conf目录下有authz,passwd,svnserve三个文件。
authz--------记录各用户对仓库中各个项目的访问权限(一个仓库有可能有多个项目).
在[groups]下面添加:
用户组名=用户1,用户2...... [project:/] //仓库的根目录 @用户组名=rw //表示权限 *=
例:
test=chrisdowson,test [project:/] @test=rw *= (<span style="color:#ff0000;">注意等号两边不要留空格例如:test = chrisdowson,test</span>)
passwd-------存储了用户的用户名和密码
用户名=密码 .....
例:
test=123456 chrisdowson=123456 (<span style="color:#ff0000;">注意等号两边不要留空格例如:test = 123456</span>)
svnserve-----存储了用户试图登陆时验证权限和密码的路径(通常的路径就是指向上两个文件的),找到下面的每个选项去掉之前的#
anon-access=none auth-access=write password-db=passwd文件的绝对路径 authz-db=authz文件的绝对路径(每行最前面不能留空格)
例:
anon-access=none auth-access=write password-db=/home/svn/project/conf/passwd authz-db=/home/svn/project/conf/authz
再启动服务器svnserve -d -r /home/svn (注意哦这里的路径还没到仓库的地址哦。没有project)这里一直想不通,猜想是有可能会有多个仓库吧,所以每次启动都要启动所有仓库。如果提示 svnserve: 不能绑定服务器套接字: 地址已在使用 则用killall svnserve命令来杀死之前的svnserve进程然后再次运行上面的命令即可。
然后使用svn co svn://服务器的ip地址/project做一下测试,如果可以取出来说明搭建成功了。
现在要实现svn自动更新web服务器。
现在web服务器目录下checkout当前版本。然后在svn项目的hooks文件夹中的post-commit文件中添加脚本:用vi命令编辑一个新的post-commit(看清楚没有后缀名)千万不要用hooks文件夹里自带的post-commit文件。在文件中添加如下内容:
#!/bin/sh WEB=/var/www/test //web服务器下的项目不能有空格。 export LANG=en_US.UTF-8 svn update $WEB --username chrisdowson --password 123456 //就相当于windows下的客户端update<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">操作撒(如果不能判断自己写的shell脚本是否有错,可以现在hooks目录下运行./post-commit试一下)</span>
然后给这个文件赋给执行的权限chmod +x post-commit。
好了到这里算是大功告成了,大家可以在win下用小乌龟测测上传文件到服务器上,再看看web服务器下有没有什么变化。
ps:由于本人上手linux才一个多礼拜。对权限和一些命令理解的不深刻。大婶们轻拍呀,大家有什么问题或者建议都可以给我留言。我也是求知若渴呀!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。