首页 > 代码库 > Apache搭建SVN的一些说明

Apache搭建SVN的一些说明

本文运行的环境是64位CentOS7


直接安装Apache和Subversion

yum -y install httpd

yum -y install subverion

如果/usr/lib64/httpd/modules下面没有mod_dav_svn.so和mod_authz_svn.so需要进行安装

yum -y install mod_dav_svn

配置Apache:/etc/httpd/conf/httpd.conf

# 监听端口

Listen 80

其他配置请参考Apache相关说明


在/etc/httpd/conf.d下创建subversion.conf (注:名字不重要.conf),内容如下:

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

<Location /svn>
  DAV svn
  SVNParentPath "/opt/svn/"
# SVNPath /opt/svn/repos/
  AuthType Basic
  AuthName "SVN Repo"
  AuthUserFile "/opt/svn/htpasswd"
  AuthzSVNAccessFile "/opt/svn/authz"
  Require valid-user
</Location>

其中Location /svn 为访问路径,如果写成Location / 将覆盖Apache默认首页

SVNParentPath可以设置多个版本库的父目录,可以同时访问多个版本库。例如在/opt/svn下有两个版本库分别为dev和release那么就可以通过URL:<URL>/svn/dev和<URL>/svn/release分别访问

也可以单独设置SVNPath到具体的一个版本库,那<URL>/svn就访问指定的这个版本库

在/opt/svn下创建2个文件分别为:htpasswd和authz

其中authz可以从版本库中的conf目录下复制出来,具体的配置跟SVN原生配置相同就不再多做说明

单独说一下用户文件htpasswd,具体命令可以查询htpasswd命令的用法,这里只介绍几个用到的语句

htpasswd -c htpasswd user1

创建一个用户文件并添件用户user1

第一个htpasswd是命令,第二个是文件名,可以使用别的名字,当然配置文件里也要设置成对应的文件名

htpasswd htpasswd user2

添加用户user2

添加两个用户都需要在单独行输入密码两次进行确认,也可以一行命令执行

htpasswd -b htpasswd user3 123456

删除用户

htpasswd -D htpasswd user3


创建版本库

svnadmin create repos

创建了以后通过<URL>/svn/repos访问

这时候有可能出现db/txn-current-lock: Permission denied

执行

setsebool -P httpd_unified=1
chcon -R -t httpd_sys_content_rw_t /opt/svn/repos
chown -R apache /opt/svn/repos

其中第一行只需要执行一次,第二行需要在每个版本库执行,具体代码的作用请查询SELinux

这时候重新访问有可能出现Could not open the requested SVN filesystem

执行

chmod -R 755 /opt/svn/repos

再访问就没有问题了

如果要批量创建版本库,写个小脚本处理

if [ "$1" = "" ];
  then echo ‘please input repo name‘
else
  svnadmin create $1
  chcon -R -t httpd_sys_content_rw_t $1
  chmod -R 755 $1
  chown -R apache $1
fi


本文出自 “MMX的沙罗双树园” 博客,请务必保留此出处http://ohmmx.blog.51cto.com/12884864/1924668

Apache搭建SVN的一些说明