2,514   Apache Centos Linux RedHat SVN

之前配置的svn通过svn://访问,在宿舍可以正常使用,到了公司就连不上了,估计公司网络有限制

但是服务器可以通过域名http访问,所以就打算配置http访问svn

1,在Apache的conf.d目录下有个subversion.conf文件,这个就是用来配置http访问svn,主要内容如下

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

#
# DAV svn
# SVNParentPath /var/www/svn
#
# # Limit write permission to list of valid users.
# # # Require SSL connection for password protection.
# # SSLRequireSSL
#
# AuthType Basic
# AuthName "Authorization Realm"
# AuthUserFile /path/to/passwdfile
# Require valid-user
# #

其中mod_dav_svn.so,mod_authz_svn.so可以去http的modules目录下查找,如果没有就要先安装,安装命令:yum install mod_dav_svn

指定访问地址,即为http://域名/repos/库名

SVNParentPath /var/www/svn 指定服务器映射的本地目录

AuthUserFile /path/to/passwdfile 访问的用户密码信息

2,创建passwdfile

创建“ AuthUserFile ”设置所需的用户密码以及存储的文件

使用 apache bin/htpasswd 命令来创建。命令的格式为

htpasswd [-cmdpsD] passwordfile username

若第一次创建用户,我们必须使用参数“-c”来同时创建用户密码文件

htpasswd -c passwd robert

上述命令创建的一个文件“ passwd”,同时在文件里添加了一个 user named “robert”,执行该命令时会要求输入密码。

注意:创建第二或之后的用户时,一定不能用参数“ c ”,否则之前的用户就会被删除。

如果想要删除某个用户,我们可以使用下列命令:

htpasswd -D passwd robert

这样, robert就被从 passwd中删除了。

3,最后重启Apache

然后通过 http://IP/svn/repos1可以访问这个仓库,可以建立多个仓库同时访问.不过直接访问 IP/svn 无法列出仓库的列表,apache显示 “forbidden \n You don’t have permission to access /svn on this server”
需要指定库名 http://IP/svn/repos1/testsvn,在浏览器也能打开

错误解决:

1,在同步文件内容的时候报错Can’t open file ‘/var/www-svn/db/txn-current-lock’: Permission denied

这是因为svn目录权限问题,Apache用户权限不够,chmod -R 777 svn 即可同步文件啦

参考链接




Leave a Reply

Your email address will not be published. Required fields are marked *