1首先,安装:
. 执行命令:
yum install subversion
(ubuntu安装命令:sudo apt-get install subversion)
2安装完成后,检测是否安装成功,以及版本号:
.执行命令:
svn --version
我的个人会出现如下提示,表明安装成功,版本是1.6.11:
3.现在开始搭建svn仓库:
执行下面两个命令:
(1)
mkdir -p /opt/svn/repos
(2)
svnadmin create /opt/svn/repos
执行成功后,在 /opt/svn/repos文件夹下即可看到repos下有生成了多个文件,如下图
4,
打开/opt/svn/repos/conf目录下的passwd文件
5.4,
打开/opt/svn/repos/conf目录下的authz文件(
authz文件是对用户权限的控制,passwd是设置用户名和密码,svnserve.conf是针对svn的配置)
6.最后设定svnserve.conf配置
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = password
authz-db = authz # 访问控制文件
realm = /opt/svn/repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
采用默认配置. 以上语句都必须顶格写, 左侧不能留空格, 否则会出错.
7.文件配置到此基本上就OK了,现在开始启动我们的svn服务器:
执行命令:
svnserve -d -r /opt/svn/repos
查看服务是否起来:
执行命令:
netstat -tunlp | grep svn
注意:修改完配置文件后记得重新启动svn服务器,可先停止svn服务,然后再启动
(1)killall svnserve
(2)svnserve -d -r /opt/svn/repos
二:部署项目到SVN上,实现本地更新同步到服务器项目:配置项目仓库的钩子配置
可以把钩子看成是WEB项目于SVN项目仓库之间的一个关联,通过向SVN项目仓库提交脚本代码,利用钩子shell脚本可以自动向web项目中将脚本文件更新过去
开始之前,首先我已经在win客户端的tortoiseSVN先建立好项目文件目录www了,如下图
1.进入SVN项目仓库钩子所在的目录,shell命令:
cd /opt/svn/repos/hooks/,
然后复制备份post-commit文件:
cp post-commit.tmpl post-commit
OK,假设我的项目文件我是假设放在/home (建议放在nginx的web目录下)
为了能够让SVN仓库同步将项目更新过来,那么首先需要从仓库checkout出项目到home目录下面,
分别执行shell命令:
cd /home
svn co svn://localhost/www --username junlin--password junlin
此时在home目录下你将会看到你checkout出来的项目了,接下来要开始写触发脚本,实现在win本地上传更新你的项目文件的同时,同步更新仓库内的文件。
在/opt/svn/repos/hooks目录下打开post-commit文件,屏蔽里面所有的代码,在文件最后写入:
cd /home
/usr/bin/svn cleanup
/usr/bin/svn up /home/www --username "junlin" --password "junlin"
如图:
OK,最后保存退出,然后在你的window本地的tortoiseSVN客户端上传一个文件到www目录下,即可发现服务器的/home/www目录也会出现该文件。
若出现:
post-commit错误代码255,应该是脚本权限不对,赋予777权限即可
除了/home/www目录要赋予777权限之外还有/opt/svn/repos目录下的
hooks目录也要赋予777权限