svn+apache的搭建
一、网上的文章太多的坑,配置好了apache,在网页上可以看了,但在客户端又搞不定,网上的文章大部分只说了一半。 以下是我自己研究了大半天,看了许多文档总结出来的。反正用起来是没有问题,实践了两次都可以了。需要注意的地方有以下,不然就掉坑了。 1、配置文件之类的要顶格写 2、apache的访问的用户名和密码需要htpasswd生成,才能用,直接用明文的密码,在网页上访问是不行的。htpasswd -c passwd user1,-c是如果文件passwd已经存在,则覆盖掉了,在passwd文件里写入用户user1,回车之后让你输入密码。 3、根据2可知,客户端访问和网页访问中需要的用户名和密码文件在服务器是不同的文件,但可以是一样的账号,可也是不同的账号。 4、思路:项目里的配置文件也是要配置的,各个项目可以共用passwd和authz,只需要在各个项上里的配置文件svnserve.conf里指定对应的路径, apache的验证文件authz和密码文件passwd,只有验证文件authz可以共用,密码和用户文件passwd,不能共用,因为apache的passwd文件里产生的用户名和密码是htpasswd产生的apache才能正常访问。
二、先建立svn服务器,使客户端能访问。 具体参考svn的文档,就可以了。\
注意:passwd的配置文件中[users]不能不写,最好是复制系统产生和,然后在下面添加 authz文件下面有group群组及项目模块权限,都是可以分组分项目管理。 如下: root@mysql_server svn]# cat passwd1 ### This file is an example password file for svnserve. ### Its format is similar to that of svnserve.conf. As shown in the ### example below it contains one section labelled [users]. ### The name and password for each user follow, one account per line. [users] # harry = harryssecret # sally = sallyssecret clc = clc123 user1 = 123456
root@mysql_server svn]# cat authz
[aliases] # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
[groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe
# [/foo/bar] # harry = rw # &joe = r # * =
# [repository:/baz/fuz] # @harry_and_sally = rw # * = r [/] #对整个目录所有的项目管理 user1 = rw [sadoc:/] user1 = rw [repo1:/] user1 = rw [root@mysql_server svn]#
三、搭建apache服务,使svn能网页访问。 1、安装httpd yum install httpd -y 2、安装httpd与svn连接的软件 yum install mod_dav_svn -y 安装这个软件之后,会在apache的配置目录下产生一个文件:cat /etc/httpd/conf.d/subversion.conf
四、配置subversion.conf文件就可以了,在此文件的后面加上以下: <Location /repos> DAV svn SVNParentPath /application/svndata # # Limit write permission to list of valid users. # <LimitExcept GET PROPFIND OPTIONS REPORT> # # Require SSL connection for password protection. # # SSLRequireSSL # AuthType Basic AuthName "Authorization SVN" AuthzSVNAccessFile /application/svnpasswd/authz AuthUserFile /application/svnpasswd/passwd1 Require valid-user # </LimitExcept> </Location>
解释: <Location /repos> #访问的路径的第一个字母:http://ip/repos/项目名称,所以repos也是可以改的。 DAV svn #不用修改 SVNParentPath /application/svndata #项目路径 # # Limit write permission to list of valid users. # <LimitExcept GET PROPFIND OPTIONS REPORT> # # Require SSL connection for password protection. # # SSLRequireSSL # AuthType Basic #基本认证 AuthName "Authorization SVN" #认证时显示的内容 AuthzSVNAccessFile /application/svnpasswd/authz #认证权限文件,这个可以和项目里的配置文件共用一个 AuthUserFile /application/svnpasswd/passwd1 #用户和密码文件,这个不能和项目共用,项目需要再建立一个passwd文件,里面用明文就可以了。 Require valid-user #有效的用户 # </LimitExcept> </Location>
上面配置完成之后,重启apache就可以访问了。
原文链接:centos 下建立:svn+ apache(自己总结),转载请注明来源!