CentOS6.5 安装SVN 及http访问

安装:

[root@moshi ~]# yum -y install mod_dav_svn

#会自动安装mod_dav_svn及其依赖包:mod_dav_svn-1.6.11-9,neon-0.29.3-2,pakchois-0.4-3.2,subversion-1.6.11-9


直接安装这个就能把svn服务器直接KO了。


2.安装httpd

[root@moshi ~]# yum -y install httpd

一般情况下,linux服务器是有httpd服务的,你可以检查下,如果没有则安装。

检查方法:

[root@moshi ~]# vi /etc/httpd/conf.d/subversion.conf

安装完svn后看是否有该目录&文件,如果存在则不需要安装httpd了。


3.安装完SVN,接下来就是配置了。


配置:

1、配置svn仓库


#创建svn目录

[root@moshi ~]# mkdir -p /home/svn/repos1  #仓库1

[root@moshi ~]# mkdir -p /home/svn/repos2  #仓库2

#可以任意配置,任意指定你喜欢的目录

#建立svn版本库

[root@moshi ~]# svnadmin create /home/svn/repos1

[root@moshi ~]# svnadmin create /home/svn/repos2

#有多少个仓库就执行多少次该命令,只需要换最后的名字即可


2、修改SVN版本库配置文件


[root@moshi ~]# vi /home/svn/repos1/conf/svnserve.conf


修改文件结果如下:


[general]

anon-access = none    

auth-access = write

password-db = /home/svn/conf/pwd.conf    #指向用户配置文件

authz-db = /home/svn/conf/authz.conf     #指向权限配置文件

realm = repos1                           #指向svn仓库地址


备注:其他仓库配置和该配置相同,只需要修改仓库路径。


3.配置svn用户和权限


[root@moshi ~]# vim /home/svn/conf/pwd.cof

[root@moshi ~]# vim /home/svn/conf/authz.conf

#这是2个步骤,我这里为更好的阅读,写在一起

1.配置用户

由于这个配置是我自定义的,所以要先vim创建该文件,也可以用其他方式创建。

[root@moshi ~]# vim /home/svn/conf/pwd.conf

#保存退出

[root@moshi ~]# htpasswd -c /home/svn/conf/pwd.conf admin

#根据提示输入密码,第一个用户才需要加-c,后面的用户不需要-c

[root@moshi ~]# htpasswd /home/svn/conf/pwd.conf test

[root@moshi ~]# vi /home/svn/conf/pwd.conf

在用户最上方加上[users]


加上[users]这一步是很重要的,因为用htpasswd的方式加用户会覆盖掉[users],所以每次加完用户需要回去补一下该节点


2.配置权限

[root@moshi ~]# vim /home/svn/conf/authz.conf

文件内容如下:

[groups]

admin=user1,user2

test=user3

[/]

@admin=rw

[repos1:/]

user3=r


解释:[groups]为组定义,可以在该组下加很多用户,以,分割,


但是该用户数据必须在/homd/svn/conf/pwd.conf中定义好,


[/]表示根目录以下的权限定义


[repos1:/]表示仓库下的权限定义


如果要分项目,则以此规则类推:


如:[repos1:/aaa]则表示仓库下的aaa项目的权限定义。


@admin 表示admin这个组下的用户权限。


user1=r 表示user1这个用户的权限。


权限类型:r,w,rw 分别表示只读,只写,读写。如果是user1= 这种空情况则表示没有。


OK,到此svn配置完成。我们可以把默认的配置文件删除。


[root@moshi ~]# rm -rf /home/svn/repos1/conf/passwd

[root@moshi ~]# rm -rf /home/svn/repos2/conf/authz

##多个仓库则删除多个仓库对应的文件即可


4.建立启动svn的用户


[root@moshi ~]# useradd svn                    #如果提示svn账户已存在,则执行以下命令

[root@moshi ~]# passwd svn                     ##根据提示修改下密码,不能过于简单,可使用常用密码

[root@moshi ~]# chown -R svn:svn /home/svn/    ##允许用户svn访问版本库

[root@moshi ~]# chmod �CR o+rw /home/svn        ##解决windows检出提交提示/home/svn/db/txn-current-lock’错误


5.配置svn的端口


[root@moshi ~]# vi /etc/httpd/conf/httpd.conf


找到

#Listen 12.34.56.78:80这一行,


Listen 9999  ##9999就是svn的端口,默认是80,你可以修改成你自己想要的。不建议使用默认80端口


5.配置httpd


[root@moshi ~]# vi /etc/httpd/conf.d/subversion.conf


修改文件内容为:


<Location /svn/>  #注意是 /svn/ 而不是 /svn  否则不能访问根目录


    DAV svn


    SVNListParentPath on


    SVNParentPath /home/svn


    AuthType Basic


    AuthName "Authorization"


    AuthUserFile /home/svn/conf/pwd.conf                    ##对应你的用户配置文件


    AuthzSVNAccessFile /home/svn/conf/authz.conf      ##对应你的权限配置文件


    Require valid-user


</Location>


保存退出!


重启httpd服务。


[root@moshi ~]# service httpd restart

停止 httpd:                                               [确定]

正在启动 httpd:                                           [确定]


出现以上字样,表名httpd的配置已经成功启动成功。


6.启动svn

[root@moshi ~]# svnserve -d -r /home/svn/


7.查看svn服务是否正常


[root@moshi ~]# ps aux|grep svn

##出现以下内容说明svn服务已经成功启动

root      8610  0.0  0.0 152864   740 ?        Ss   11:25   0:00 svnserve -d -r /home/svn/repos1/

root     13128  0.0  0.0 103252   876 pts/0    S+   14:00   0:00 grep svn


8.进入浏览器访问。


在浏览器中输入:服务器Ip+端口+httpd配置中的<Location /svn>。


如:http://192.168.1.1:9999/svn


会提示你输入用户名密码。


===================!!!!!!!!!!!!错误解答!!!!!!!!!!!=============

403 Forbidden

Forbidden

You don't have permission to access /svn on this server.

error.log报如下

The URI does not contain the name of a repository. 403 230

    搞的好辛苦,最后才发现新版本的apache+svn需要做如下处理:

一、首先,Subversion1.3及以后版本支持SVNListParentPath on,之前的版本只能使用PHP自己做。

二、Location 设置中最后要加上/,应该是<Location /svn/>而不是<Location /svn>否则可能不能访问。

三、通过“http://localhost/svn/” 来访问仓库列表,如果想让“http://localhost/svn”也起作用的话,需要在</Location>的后面增加重定向的设置:RedirectMatch ^(/svn)$ $1/  ,当然也可以采用RewriteEngine之类的办法。(我没有加这个重定向也能用这两个URL来访问。)

# svn configration

<Location /tomcat6/>

DAV svn

SVNParentPath  E:\svn

SVNListParentPath on

AuthType Basic

AuthName "enter your username & password"

AuthUserFile E:\svn\apache-tomcat-6.0.18-src\conf\passwd

AuthzSVNAccessFile E:\svn\apache-tomcat-6.0.18-src\conf\authz

Require valid-user

</Location>

访问地址如下:http://211.154.40.221/tomcat6/

HTTP错误大全:http://blog.chinaunix.net/u3/104216/showart_2083280.html


你可能感兴趣的:(SVN)