Centos7上搭建SVN服务器并实现自动同步至web目录

<span style="font-size:24px;">转载 http://www.centoscn.com/CentosServer/ftp/2016/0515/7236.html</span>
<span style="font-size:24px;"></span><p align="left"><strong><span style="color:#333333;">前言</span></strong><span style="color:#333333;">:</span></p><p align="left"><span style="color:#333333;">由于最近跟学长一起合作完成一个小项目,然后我俩比较熟悉的</span><span style="color:#333333;"><a target=_blank href="http://lib.csdn.net/base/28" target="_blank" title="Git知识库"><strong><span style="color:#DF3434;">版本控制</span></strong></a></span><span style="color:#333333;">是</span><span style="color:#333333;">SVN</span><span style="color:#333333;">,就考虑着在服务器上搭建一个</span><span style="color:#333333;">SVN</span><span style="color:#333333;">服务器。现在在这里给出简单的搭建过程。</span><span style="color:#333333;"> 
(</span><span style="color:#333333;">其实吧,能用</span><span style="color:#333333;"><a target=_blank href="http://lib.csdn.net/base/28" target="_blank" title="Git知识库"><strong><span style="color:#DF3434;">Git</span></strong></a></span><span style="color:#333333;">就尽量用</span><span style="color:#333333;">git</span><span style="color:#333333;">吧,好处自己百度,有关搭建请参考我的另一篇博客</span><span style="color:#333333;"><a target=_blank href="http://blog.csdn.net/baidu_30000217/article/details/51327289"><span style="color:#336699;">搭建服务器上的</span></a></span><span style="color:#336699;">GIT</span><span style="color:#336699;">并实现自动同步到站点目录(</span><span style="color:#336699;">www</span><span style="color:#336699;">)</span><span style="color:#333333;">,这篇博客与</span><span style="color:#333333;">git</span><span style="color:#333333;">搭建的过程应该是基本一样的</span><span style="color:#333333;">)</span></p><p align="left"><strong><span style="color:#333333;">预期目的</span><span style="color:#333333;">:</span></strong></p><p align="left"><span style="color:#333333;">1</span><span style="color:#333333;">、仓库放在</span><span style="color:#333333;"> /var/svn/ </span><span style="color:#333333;">目录下,并且仓库名为</span><span style="color:#333333;"> project</span></p><p align="left"><span style="color:#333333;">2</span><span style="color:#333333;">、创建用户组</span><span style="color:#333333;"><a target=_blank href="http://lsgogroup.com/"><span style="color:#336699;">lsgogroup</span></a></span><span style="color:#333333;">,该组下添加两个成员</span><span style="color:#333333;">lsgoweb1</span><span style="color:#333333;">、</span><span style="color:#333333;">lsgoweb2</span><span style="color:#333333;">,密码直接用用户名,两用户可以</span><span style="color:#333333;">checkout</span><span style="color:#333333;">代码和提交代码</span></p><p align="left"><span style="color:#333333;">3</span><span style="color:#333333;">、利用</span><span style="color:#333333;">SVN</span><span style="color:#333333;">的钩子实现当仓库的代码更新的时候自动同步至我们的</span><span style="color:#333333;">web</span><span style="color:#333333;">目录,在这里,我的</span><span style="color:#333333;">web</span><span style="color:#333333;">目录在</span><span style="color:#333333;"> /home/www/ </span><span style="color:#333333;">下</span></p><p align="left"><strong><span style="color:#333333;">一、搭建</span><span style="color:#333333;">svn</span><span style="color:#333333;">环境并创建仓库:</span></strong></p><p align="left"><span style="color:#333333;">1</span><span style="color:#333333;">、安装</span><span style="color:#333333;">Subversion</span><span style="color:#333333;">:</span></p><p align="left"><span style="color:#333333;">yum </span><span style="color:#000088;">install</span><span style="color:#333333;"> -y subversion</span></p><p align="left"><span style="color:#333333;">2</span><span style="color:#333333;">、检测是否安装成功</span><span style="color:#333333;">(</span><span style="color:#333333;">查看</span><span style="color:#333333;">svn</span><span style="color:#333333;">版本号</span><span style="color:#333333;">)</span></p><p align="left"><span style="color:#880000;">svnserve</span><span style="color:#006666;">--</span><span style="color:#880000;">version</span></p><p align="left"><span style="color:#333333;">3</span><span style="color:#333333;">、创建版本库</span></p><p align="left"><span style="color:#880000;">//</span><span style="color:#880000;">先建目录</span></p><p align="left"><span style="color:#333333;">mkdir /</span><span style="color:#000088;">var</span><span style="color:#333333;">/svn</span></p><p align="left"><span style="color:#333333;">cd /</span><span style="color:#000088;">var</span><span style="color:#333333;">/svn</span></p><p align="left"><span style="color:#880000;">//</span><span style="color:#880000;">创建版本库</span></p><p align="left"><span style="color:#333333;">svnadmin </span><span style="color:#000088;">create</span><span style="color:#333333;"> /</span><span style="color:#000088;">var</span><span style="color:#333333;">/svn/project</span></p><p align="left"><span style="color:#333333;">cd project</span></p><p align="left"><span style="color:#880000;">//</span><span style="color:#880000;">会看到自动生成的版本库文件</span></p><p align="left"><span style="color:#333333;">conf  db format  hooks  locks README.txt</span></p><p align="left"><span style="color:#333333;">至此,</span><span style="color:#333333;">svn</span><span style="color:#333333;">环境搭建成功。</span></p><p align="left"><strong><span style="color:#333333;">二、创建用户组及用户:</span></strong></p><p align="left"><span style="color:#333333;">1</span><span style="color:#333333;">、</span><span style="color:#333333;">进入版本库中的配置目录</span><span style="color:#333333;">conf</span><span style="color:#333333;">,此目录有三个文件:</span><span style="color:#333333;"> svn</span><span style="color:#333333;">服务综合配置文件(</span><span style="color:#333333;">svnserve.conf</span><span style="color:#333333;">)、</span><span style="color:#333333;">用户名口令文件(</span><span style="color:#333333;">passwd</span><span style="color:#333333;">)、权限配置文件(</span><span style="color:#333333;">authz</span><span style="color:#333333;">)。</span></p><p align="left"><span style="color:#333333;">2</span><span style="color:#333333;">、修改权限配置文件:</span><span style="color:#333333;">vim authz</span></p><p align="left"><span style="color:#333333;">3</span><span style="color:#333333;">、配置用户名命令文件:</span><span style="color:#333333;">vim passwd</span></p><p align="left"><span style="color:#333333;">4</span><span style="color:#333333;">、配置</span><span style="color:#333333;">SVN</span><span style="color:#333333;">服务综合配置文件</span><span style="color:#333333;">svnserve.conf</span></p><p align="left"><span style="color:#880000;">//</span><span style="color:#880000;">找到以下配置项,将前面的</span><span style="color:#880000;">#</span><span style="color:#880000;">号去掉,然后做相应的配置</span></p><p align="left"><span style="color:#333333;">anon</span><span style="color:#333333;">-access</span>=<span style="color:#006666;">none</span><span style="color:#333333;">  </span><span style="color:#880000;">//</span><span style="color:#880000;">匿名用户访问权限</span><span style="color:#880000;">:</span><span style="color:#880000;">无</span></p><p align="left"><span style="color:#333333;">auth</span><span style="color:#333333;">-access</span>=<span style="color:#333333;"> write    </span><span style="color:#880000;">//</span><span style="color:#880000;">普通用户访问权限</span><span style="color:#880000;">:</span><span style="color:#880000;">读、写</span></p><p align="left"><span style="color:#333333;">password</span><span style="color:#333333;">-db</span>=<span style="color:#333333;"> passwd        </span><span style="color:#880000;">//</span><span style="color:#880000;">密码文件</span></p><p align="left"><span style="color:#333333;">authz</span><span style="color:#333333;">-db</span>=<span style="color:#333333;"> authz        </span><span style="color:#880000;">//</span><span style="color:#880000;">权限配置文件</span></p><p align="left"><span style="color:#333333;">realm </span>=<span style="color:#333333;"> /</span><span style="color:#660066;">var</span><span style="color:#333333;">/svn/project    </span><span style="color:#880000;">//</span><span style="color:#880000;">版本库所在</span><span style="color:#222222;">1</span></p><p align="left"><span style="color:#333333;">注意:所有以上的配置项都需要顶格,即前面不能预留空格,否则报错</span></p><p align="left"><span style="color:#333333;">5</span><span style="color:#333333;">、启动</span><span style="color:#333333;">svn</span><span style="color:#333333;">服务:</span></p><p align="left"><span style="color:#333333;">svnserve </span><span style="color:#333333;">-d</span><span style="color:#333333;">-r</span><span style="color:#333333;"> /</span><span style="color:#660066;">var</span><span style="color:#333333;">/svn</span></p><p align="left"><span style="color:#333333;">如果提示:</span></p><p align="left"><span style="color:#333333;">svnserve: E000098: Can</span><span style="color:#333333;">'t</span><span style="color:#333333;"> bind serversocket: Address already </span><span style="color:#000088;">in</span><span style="color:#000088;">use</span></p><p align="left"><span style="color:#333333;">证明现在</span><span style="color:#333333;">svn</span><span style="color:#333333;">已经被启动了,由于我们修改了配置文件,因此要重启</span><span style="color:#333333;">svn</span><span style="color:#333333;">服务</span></p><p align="left"><span style="color:#880000;">//</span><span style="color:#880000;">查看</span><span style="color:#880000;">svn</span><span style="color:#880000;">服务详情</span></p><p align="left"><span style="color:#333333;">ps aux </span><span style="color:#008800;">| grep svn</span></p><p align="left"><span style="color:#880000;">//</span><span style="color:#880000;">将</span><span style="color:#880000;">svn</span><span style="color:#880000;">服务强制停止</span><span style="color:#880000;">  </span><span style="color:#880000;">其中</span><span style="color:#880000;">790</span><span style="color:#880000;">为</span><span style="color:#880000;">svn</span><span style="color:#880000;">服务的</span><span style="color:#880000;">ID</span><span style="color:#880000;">号,</span><span style="color:#880000;">-9</span><span style="color:#880000;">是</span><span style="color:#880000;">kill</span><span style="color:#880000;">的参数</span></p><p align="left"><span style="color:#333333;">kill -</span><span style="color:#006666;">9</span><span style="color:#006666;">790</span></p><p align="left"><span style="color:#333333;">或者用</span></p><p align="left"><span style="color:#333333;">killall svnserve</span></p><p align="left"><span style="color:#333333;">再运行</span><span style="color:#333333;"> svnserve -d -r/var/svn</span><span style="color:#333333;">,进行启动服务</span></p><p align="left"><span style="color:#333333;">6</span><span style="color:#333333;">、测试服务器:</span></p><p align="left"><span style="color:#880000;">//</span><span style="color:#880000;">我们在</span><span style="color:#880000;">web</span><span style="color:#880000;">目录测试(</span><span style="color:#880000;">/home/www</span><span style="color:#880000;">)</span></p><p align="left"><span style="color:#333333;">cd /home/www</span></p><p align="left"><span style="color:#333333;">svn co svn:</span><span style="color:#880000;">//localhost/project</span></p><p align="left"><span style="color:#333333;">如果提示:</span><span style="color:#333333;">Checked outrevision 1.  </span><span style="color:#333333;">表示</span><span style="color:#333333;">checkout</span><span style="color:#333333;">成功</span></p><p align="left"><span style="color:#333333;">我们添加新文件来测试是否提交成功</span></p><p align="left"><span style="color:#333333;">cd /home/www</span></p><p align="left"><span style="color:#333333;">touch index</span><span style="color:#444444;">.php</span></p><p align="left"><span style="color:#333333;">svn </span><span style="color:#000088;">add</span><span style="color:#333333;"> index</span><span style="color:#444444;">.php</span><span style="color:#333333;">   //</span><span style="color:#333333;">成功的话会显示</span><span style="color:#333333;">  A index</span><span style="color:#444444;">.php</span></p><p align="left"><span style="color:#333333;">svn commit index</span><span style="color:#444444;">.php</span><span style="color:#333333;"> -m </span><span style="color:#008800;">"</span><span style="color:#008800;">测试提交文件</span><span style="color:#008800;">"</span></p><p align="left"><span style="color:#333333;">假如最后提示:</span></p><p align="left"><span style="color:#660066;">Adding</span><span style="color:#333333;">         index.php</span></p><p align="left"><span style="color:#660066;">Transmitting</span><span style="color:#333333;"> file </span><span style="color:#000088;">data</span><span style="color:#333333;"> .</span></p><p align="left"><span style="color:#660066;">Committed</span><span style="color:#333333;"> revision </span><span style="color:#006666;">2.</span></p><p align="left"><span style="color:#333333;">则表示我们</span><span style="color:#333333;">svn</span><span style="color:#333333;">服务器搭建成功!文件已经能够推送了。</span></p><p align="left"><span style="color:#333333;">7</span><span style="color:#333333;">、本地拉取、推送</span></p><p align="left"><span style="color:#333333;">在本地首先要安装</span><span style="color:#333333;">SVN</span><span style="color:#333333;">吧,具体百度。。。</span></p><p align="left"><span style="color:#333333;">填写信息:</span></p><p align="left"><span style="color:#333333;">点击</span><span style="color:#333333;">ok</span><span style="color:#333333;">,提示输入用户名和密码</span></p><p align="left"><span style="color:#333333;">就填刚才我们创建的</span><span style="color:#333333;">lsgoweb1</span><span style="color:#333333;">或</span><span style="color:#333333;">lsgoweb2</span><span style="color:#333333;">,和对应的密码即可。</span></p><p align="left"><strong><span style="color:#333333;">三、实现</span><span style="color:#333333;">svn</span><span style="color:#333333;">更新自动同步到</span><span style="color:#333333;">web</span><span style="color:#333333;">目录:</span></strong></p><p align="left"><span style="color:#333333;">1</span><span style="color:#333333;">、在</span><span style="color:#333333;">web</span><span style="color:#333333;">目录中</span><span style="color:#333333;">checkout</span><span style="color:#333333;">版本库</span></p><p align="left"><span style="color:#333333;">这一步算是比较关键的一步了,当时我搭建的时候试了无数次,就是缺少了这一步。把刚才</span><span style="color:#333333;">checkout</span><span style="color:#333333;">的版本库删掉,我们来一次比较正式的</span><span style="color:#333333;">checkout</span><span style="color:#333333;">:</span></p><p align="left"><span style="color:#880000;">svn</span><span style="color:#880000;">co</span><span style="color:#880000;">svn://localhost/project</span><span style="color:#880000;">/home/www</span><span style="color:#006666;">--</span><span style="color:#880000;">username</span><span style="color:#880000;">lsgoweb1(SVN</span><span style="color:#880000;">账号</span><span style="color:#880000;">)</span><span style="color:#006666;">--</span><span style="color:#880000;">lsgoweb1(SVN</span><span style="color:#880000;">密码</span><span style="color:#880000;">)</span></p><p align="left"><span style="color:#333333;">进入</span><span style="color:#333333;">/var/svn/project/hooks</span><span style="color:#333333;">下,建立</span><span style="color:#333333;">post-commit</span><span style="color:#333333;">文件:</span></p><p align="left"><span style="color:#660066;">cd</span><span style="color:#333333;"> /var/svn/project/hooks</span></p><p align="left"><span style="color:#333333;">vim post-commit</span></p><p align="left"><span style="color:#333333;"> </span></p><p align="left"><span style="color:#333333;">//</span><span style="color:#333333;">在该文件里添加如下代码,保存</span></p><p align="left"><span style="color:#006666;">#!/bin/sh</span></p><p align="left"><span style="color:#880000;">#</span><span style="color:#880000;">设定环境变量,如果没有设定可能会出现</span><span style="color:#880000;">update</span><span style="color:#880000;">报错</span></p><p align="left"><span style="color:#880000;">#</span><span style="color:#880000;">设定语言,根据系统语言设置,如果是</span><span style="color:#880000;">GBK</span><span style="color:#880000;">就设置为</span><span style="color:#880000;"> LANG=zh_CN.GBK</span></p><p align="left"><span style="color:#000088;">export</span><span style="color:#333333;"> LANG=en_US.utf8</span></p><p align="left"><span style="color:#333333;">SVN_PATH=/usr/bin/svn   //</span><span style="color:#333333;">这里不用改</span></p><p align="left"><span style="color:#333333;">WEB_PATH=/home/www  //web</span><span style="color:#333333;">目录,如果你的不同,可以改</span></p><p align="left"><span style="color:#333333;">//</span><span style="color:#333333;">这里的用户随便一个就好</span></p><p align="left"><span style="color:#660066;">$SVN_PATH</span><span style="color:#333333;"> update </span><span style="color:#660066;">$WEB_PATH</span><span style="color:#333333;"> --username </span><span style="color:#008800;">'lsgoweb1'</span><span style="color:#333333;"> --password </span><span style="color:#008800;">'lsgoweb1'</span><span style="color:#333333;"> --no-auth-cache</span></p><p align="left"><span style="color:#333333;">保存退出。</span></p><p align="left"><span style="color:#333333;">修改</span><span style="color:#333333;">post-commit</span><span style="color:#333333;">用户为</span><span style="color:#333333;">www</span><span style="color:#333333;">目录用户</span></p><p align="left"><span style="color:#333333;">chown apache:apache </span><span style="color:#660066;">post</span><span style="color:#333333;">-commit    </span><span style="color:#880000;"> //</span><span style="color:#880000;">我的</span><span style="color:#880000;"> /home/www </span><span style="color:#880000;">的用户组和所有者都是</span><span style="color:#880000;">apache</span></p><p align="left"><span style="color:#333333;">给</span><span style="color:#333333;">post-commit </span><span style="color:#333333;">执行权限:</span></p><p align="left"><span style="color:#333333;">chmod 755 post-</span><span style="color:#000088;">commit</span></p><p align="left"><span style="color:#333333;">麻蛋,终于写完了。。。。</span></p>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值