如何在Linux环境下安装SVN服务器

发表于:2017-1-03 10:21

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:勇敢的小C    来源:51Testing软件测试网采编

  SVN-Subversion 是一个版本控制软件,帮助开发者管理源代码。本文将教大家如何在Linux环境安装一个SVN服务器,并且配置成http可以访问的模式,也就是浏览器可以直接访问。
  背景
  我的Linux机器环境是CentOS release 6.8 (Final)。
  安装SVN Server
  安装一个全新的SVN服务器,因为我们打算之后使用http的形式来访问我们的svn server , 所以我们需要提前安装一个web服务器,比如Apache的httpd、nginx、lighttpd等, 这几个服务器里面任选一个就可以了 , 功能都是一样的,这里我们拿httpd去离子。然后依次安装mod_dav_svn 和 subversion。
  yum install -y http
  yum install -y subversion
  yum install -y mod_dav_svn
  OK 这样就完成了安装。下面是SVN的配置:
  SVN的配置
  首先建一个用于存放SVN资源文件的目录。 这个不是必选的, 但是这是一个比较好的实践。
  mkdir /data/svn
  然后,我们在这个目录下面创建第一个叫repo1的SVN库。为了让用户可以通过浏览器或SVN客户端访问repo1库,我们让apache有权限访问。
  svnadmin create /data/svn/repo1
  chown -R apache:apache /data/svn/repo1
  接下来,我们配置SVN用户,
  首先进入到repo1目录下面,修改svnserve.conf文件
  cd /data/svn/repo1/conf
  vim svnserve.conf
  [general]
  anon-access = none
  auth-access = write
  password-db = passwd
  authz-db = authz
  然后添加一个SVN账户,这里我们使用htpasswd命令,R 参数表示把之前的数据都先清除,再加新的用户。
  htpasswd -R /data/svn/repo1/conf/passwd frank
  htpasswd  /data/svn/repo1/conf/passwd frank1
  这时候可以通过查看passwd命令看到我们配置的用户:
  cat passwd
  最后, 我们通过修改配置文件authz来配置不同用户的权限:
  vim authz
  [repo1:/]
  frank = r
  frank1 = rw
  * =
  如上所示,我们给frank用户只读权限,给frank1用户可读可写权限,其他的用户什么权限都没有。
  以上,我们就完成了SVN相关配置了,接下来,我们还需要配置一下httpd。
  vim /etc/httpd/conf/httpd.conf
  在httpd.conf中找找看有没有以下代码,如果没有,写进去:
  [.....]
  Include conf.d/*.conf
  [.....]
  接下来, 我们找到/etc/httpd/conf.d/目录,这里应该已经有subversion.conf文件了。修改它:
  cd /etc/httpd/conf.d/
  ls
  vim subversion.conf
  LoadModule dav_svn_module modules/mod_dav_svn.so
  LoadModule authz_svn_module modules/mod_authz_svn.so
  <Location /repo1>
  DAV svn
  SVNPath /data/svn/repo1
  Authtype Basic
  AuthName "My Repository"
  AuthzSVNAccessFile /data/svn/repo1/conf/authz
  AuthUserFile /data/svn/repo1/conf/passwd
  Require valid-user
  </Location>
  代码的前两行是导入apache SVN模块,后面的代码定义地址/repo1指向我们刚刚创建的目录。
  OK,现在我们重启httpd服务,让刚刚修改的配置文件生效。
  service httpd restart
  测试
  直接在浏览器的地址栏输入:http://SVN服务器的IP/repo1,如果提示你输入账号密码, 代表本次配置成功。输入在配置SVN时设置好的账号密码即可。
  PS 跟其他服务器端口冲突怎么办
  如果你Linux服务器在同时跑着其他的web服务器(如nginx),你可以使用你现有的web服务器,就不用安装httpd了。
  当然也可以同时跑两个web服务器,只要端口不冲突就可以。
  如何改端口?以httpd举例:
  修改配置文件httpd.conf
  vim /etc/httpd/conf/httpd.conf
  找到Listen关键字,默认为80端口,为了不跟其他服务器冲突,随便改一个端口,如:
  Linten 8181
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号