1.首先安装svn

yum install subversion

2.安装httpd

yum install httpd

3.安装apache的svn操作模块

yum install mod_dav_svn
yum install openssl openssl-devel

4.查看svn版本

svnserve –version

5.创建svn版本库

svnadmin create /home/svn/project

6.进入svn的conf文件夹

cd /home/svn/project/conf

7.查看conf下面的文件列表

ls

分别为:authz passwd svnserve.conf

8.修改authz文件

view authz

修改内容如下图:

centos 安装postfix centos安装http_centos

rw : 可读可写
r : 只读
修改完成按esc 再输入 :wq
如果保存错误就强制保存 输入 :wq!

9.修改passwd文件

view passwd

centos 安装postfix centos安装http_centos_02

10.修改svnserver.conf

首先备份:cp svnserver.conf svnserver.conf.bak

命令:view svnserver.conf

修改内容:

centos 安装postfix centos安装http_centos 安装postfix_03

11.svn配置完成,启动svn
命令:svnserve -d -r /home/svn/project/
查看进程: ps -aux|grep svn
尝试导入:svn import test svn://123.123.123.123/project/test -m "test" --force-log

提示:尝试导入需要在当前目录有test文件夹存在,如果没有就创建,命令:mkdir test

12.启动出错,错误内容:认证失败( authentication failed)(没有这个错误的就跳过这一条)

处理方法:

方法一:检查三个配置文件中配置前面是否存在空格,例如:

centos 安装postfix centos安装http_svn_04

方法二:修改/root/.subversion/service配置文件

centos 安装postfix centos安装http_httpd_05

centos 安装postfix centos安装http_centos 安装postfix_06

修改store-plaintext-passwords = yes

提示:因为文件内容过多,需要光标一直往下,才能看到全部文件内容!

然后查看进程:命令:ps -aux|grep svn

centos 安装postfix centos安装http_apache_07


结束svn进程:kill 11036

重启svn:svnserve -d -r /home/svn/project/

或者:systemctl start svnserver.service

再次尝试导入:svn import test svn://123.123.123.123/project/test -m "test" --force-log

提示:如果没有错误就是导入成功

13.访问svn
通过TortoiseSVN Repository Browser访问
地址:svn://123.123.123.123/project

14.配置httpd
进入配置文件夹:cd /etc/httpd/conf/httpd.conf
首先备份配置文件:cp httpd.conf httpd.conf.bak

15.修改httpd.conf文件
在文件的末尾添加:

<Location /svn>
            DAV svn
            SVNParentPath  /home/svn/
            # Authentication: Basic
            AuthName "Subversion repository"
            AuthType Basic
            AuthUserFile /etc/httpd/svn-auth.htpasswd

            # Authorization: Authenticated users only
            <LimitExcept GET PROPFIND OPTIONS REPORT>
                Require valid-user
            </LimitExcept>
    </Location>

提示信息:

“<Location /svn>”中的”/svn”表示我们的svn的访问URL为”http://ip/svn”,
        “DAV svn”表示使用”mod_dav_svn”模块,dav是一种http 1.1扩展协议,mod_dav_svn只是该协议的一种应用。
        “SVNParentPath  /var/svn”表示服务”http://ip/svn”请求时,使用”/var/svn”路径下相应的内容。
        AuthName 表示输入用户名和密码时的提示信息
        AuthType 认证类型,这里我们使用基本的认证类型
        AuthUserFile 表示认证文件的位置,我们待会创建它。
        LimitExcept节点指示只对写请求需要用户认证。

16.创建svn-auth.htppasswd文件

命令:htpasswd –c -m /etc/httpd/svn-auth.htpasswd 用户名

例如:htpasswd –c -m /etc/httpd/svn-auth.htpasswd abcd

然后按提示输入两次密码!

17.将apache用户对svn目录授权
依次执行下面3条命令:

命令1:usermod  -a  -G   root   apache

   命令2:chmod   -R  g+w  /home/svn/project

   命令3:groups   apache

18.启动apache

命令:systemctl  start  httpd.service

19.启动如果出错处理

一般都是端口被占用,apache默认端口80,修改监听端口
   修改httpd.conf  配置文件,修改为9999
   重启apache:  systemctl  restart  httpd.service

20.访问svn

http://123.123.123.123:9999/svn/project/

   输入用户名:abcd    密码:******

21.增加httpd用户:

命令:htpasswd /etc/httpd/svn-auth.htpasswd abcd

输入两次密码,提示添加成功!