设为首页 收藏本站
查看: 919|回复: 0

[经验分享] 创建基于HTTP协议的SVN版本控制服务(Apache)

[复制链接]

尚未签到

发表于 2015-7-31 07:01:53 | 显示全部楼层 |阅读模式
  说明:本文没有讨论什么技术问题,仅仅是自己在使用SVN进行版本控制时的创建过程,或许有人对此不太熟悉,希望对这个感兴趣的有帮助。
  虽说现在好多人都已经使用Git作为版本控制,Git在分支管理和性能上着实不错,但是要是办公环境里依然使用SVN,这个可能对新手快速上手就有些用处了。
  准备:
  操作系统:Debian 6
  Web服务器:Apache2
  SVN服务端:Subversion
  SVN工具:Subversion-tools(可选)
  支持SVN的Apache模块:libapache2-svn
  1.安装软件:



sudo apt-get install apache2 subversion subversion-tools libapache2-svn
  2.检查Apache是否安装好:
  浏览器输入:http://localhost:80/ 是否有 It Works显示
  3.检查Subversion是否安装成功:
  终端进入一个新建的文件夹,运行明令:svnadmin create ./(命令:在当前文件夹下创建版本控制库)
  查看文件夹内容是否包含 confdavdbhookslocks文件夹以及format、README.txt文件。
  4.检查libapache-svn是否安装成功:
  进入/etc/apache2/mods-availables文件夹,查看是否包含dav.load dav_svn.conf dav_svn.load文件。
  5.创建版本控制库:
  如上(3)中的命令,我们这样就可以创建一个版本库。本文中我们在/home/meego/repo/文件夹创建。
  6.配置Apache服务,使用Apache访问版本控制库。
  6.1进入/etc/apache2/(Apache2配置文件所在的文件夹),首先检查dav模块以及dav_svn模块是否已经启动。
  Debian中管理Apache模块是否启动的方式是:模块是否存在与/etc/apache2/mods-enabled/文件夹中,所以只需在
  /etc/apache2/mods-enabled中检查dav.load dav_svn.conf dav_svn.load这三个文件是否存在就可以。
  如果不存在:将其从mods-availables中拷贝过来,或是创建链接。
  创建链接命令:
  sudo ln -s /etc/apache2/mods-availables/dav.load /etc/apache2/mods-enabled/dav.load;
  sudo ln -s /etc/apache2/mods-availables/dav_svn.load /etc/apache2/mods-enabled/dav_svn.load;
  sudo ln -s /etc/apache2/mods-availables/dav_svn.conf /etc/apache2/mods-enabled/dav_svn.conf;
  6.2创建Apache站点
  编辑/etc/apache2/mods-enabled/dav_svn.conf文件:




  DAV svn
  SVNPath /home/meego/repo
  AuthType Basic
  AuthName "Meego SVN Repo"
  AuthUserFile /etc/apache2/dav_svn.passwd
  AuthzSVNAccessFile /etc/apache2/dav_svn.authz
  Require valid-user

  注意上面的SVNPath要设置成你创建的版本库所在的文件夹。
  6.3创建SVN用户、密码、SVN权限设置:
  上面的站点文件中AuthUserFile即为SVN用户密码文件,其中密码使用MD5加密,这个文件的生成需要一个命令htpasswd。
  htpasswd具体使用,可man一下。
  现在创建一个用户:xuem(本文中使用的用户名)



htpasswd -c /etc/apache2/dav_svn.passwd xuem
  注意:上面的xuem修改成你自己要创建的用户名。
  执行命令后,输入用户密码即可。可以打开dav_svn.passwd文件看一下。
  -c 参数表示创建新的dav_svn.passwd,所以创建第2个用户的时候,就不要加此参数。
  上面站点配置中dav_svn.authz文件,就是SVN的权限设置,可以手动创建一个。
  内容设置跟Subversion中conf文件下的authz文件配置方法一样:



[groups]
admin = xuem
[/]
* = r
@admin = rw
  对于Authz文件的详细设置可以参考Subversion的文档。
  7.配置完毕。
  现在你可以在浏览器中输入:http://localhost:80/svn来访问你的版本库文件。
  8.如果访问不成功:
  8.1出现403错误:
  这种错误主要是你的目录权限以及你的Apache运行用户的权限问题。再此说明Apache2运行用户要有你的版本控制库所在的文件夹的权限。
  Debian下的Apache2运行用户是www-data.可以在/etc/apache2/envvars中设置:
  分别是APACHE_RUN_USER和APACHE_RUN_GROUP项。
  这里你可以设置成你创建版本控制库的用户。
  或是将你的版本库的权限赋给www-data用户:
  方法是终端运行:
  sudo chown -R www-data:www-data /home/meego/repo
  注意上面的路径改成你的版本库所在的路径。
  8.2出现errorcode='x'的错误:
  这样的错误多数在于站点设置中设置的SVNPath不对,或是你设置了SVNParentPath而不是SVNPath。
  SVNParentPath用于支持多个版本库的情况,如果只有一个版本库,只需设置SVNPath就足够了。
  9.如果你还没有设置好,可以查看一下Apache的错误日志。
  也可以留言,大家一起谈论。这些都不是技术上的问题,花太多的时间研究这个还不如去泡MM呢,设置好能用就行了。
  没必要都研究一遍,希望此文可以为你节省一点时间。
  
  XueM:www.iyunv.com/daydayfree

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-92417-1-1.html 上篇帖子: 开源项目剖析之apache-common-pool 下篇帖子: xampp无法启动apache,提示terminating worker thread 0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表