一、准备环境

1、 selinux以及iptables设置

1) 关闭selinux

# 临时关闭selinux:

setenforce 0

# 禁用selinux:

vim /etc/sysconfig/selinux

# 将SELINUX=enforcing修改成SELINUX=disabled,重启后才能生效。

2) 防火墙设置

# 修改防火墙策略,开放需要的端口,为了方便操作,也可以关闭防火墙,暂不考虑安全问题

# 临时关闭防火墙:

service iptables stop

# 永久关闭防火墙:

chkconfig iptables off

2、 yum安装相关依赖包

yum install gcc gcc-++ make pcre-devel zlib-devel expat-devel -y

3、 安装apr(Apache可移植运行库)

# 下载

wget https://mirrors.tuna.tsinghua.edu.cn/apache//apr/apr-1.6.3.tar.gz

# 解压

tar -zxvf apr-1.6.3.tar.gz

# 切换到目录

cd apr-1.6.3

# 配置

./configure --prefix=/usr/local/apr

# 编译与安装

make && make install

4、 安装 apr-util

wget http://mirrors.shuosc.org/apache//apr/apr-util-1.6.1.tar.gz

tar -zxvf apr-util-1.6.1.tar.gz

cd apr-util-1.6.1

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

make && make install


二、安装apache

wget https://mirrors.cnnic.cn/apache/httpd/httpd-2.4.28.tar.bz2

tar -jxvf  httpd-2.4.28.tar.bz2

cd httpd-2.4.28

./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-included-apr

make && make install

# 设置服务器用于辨识的主机名和端口号

sed -i 's/#ServerName.*/ServerName 192.16.8.103:80/' /usr/local/apache/conf/httpd.conf


三、安装SVN

1、 SVN需要需要SQLite数据库支持,先安装SQLite

wget http://www.sqlite.org/2017/sqlite-autoconf-3210000.tar.gz

./configure

make && make install

2、 SVN安装配置

mkdir -p /data/svn

wget http://mirrors.shuosc.org/apache/subversion/subversion-1.8.19.tar.gz

cd subversion-1.8.19

./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --with-zlib

make && make install


3、 SVN启动设置

1)添加环境变量

echo "PATH=$PATH/:/usr/local/subversion/bin" >> /etc/profile

# 立即生效

source /etc/profile


2) 启动SVN

svnserve -d -r /usr/local/subversion/


3) 查看SVN版本

svnserve --version


4) 做软链接到默认启动目录

ln -s /usr/local/subversion/bin/svnserve /usr/local/bin/svnserve


5) 设置开机启动

vim /etc/init.d/svnserve

#!/bin/bash

    # chkconfig: - 85 15

    # description: svn server

    SVN_HOME=/data/svn

    if [ ! -f "/usr/bin/svnserve" ]

    then

    echo "svnserver startup: cannot start"

    exit

    fi

    case "$1" in

    start)

    echo "Starting svnserve…"

    /usr/local/subversion/bin/svnserve -d --listen-port 3690 -r $SVN_HOME

    ;;

    stop)

    echo "Stoping svnserve…"

    killall svnserve

    ;;

    restart)

    $0 stop

    $0 start

    

    ;;

    *)

    echo "Usage: svn { start | stop | restart } "

    exit 1

    esac

5) 添加可执行权限

chmod + /etc/init.d/svnserve

6) 验证重新启动

/etc/init.d/svnserver restart

四、apache与svn整合


1、 创建组和用户并设置user01密码

groupadd svn

useradd -g svn -s /sbin/nologin svn

useradd user01

passwd user01


2、 加载svn库

cp /usr/local/src/subversion-1.8.19/subversion/mod_dav_svn/.libs/mod_dav_svn.so /usr/local/apache/modules/

cp /usr/local/src/subversion-1.8.19/subversion/mod_authz_svn/.libs/mod_authz_svn.so /usr/local/apache/modules/

3、 配置Web/DAV  

# 修改apache配置文件

vim /usr/local/apache/conf/httpd.conf

User svn

Group svn

# 去掉以下2行的注释

LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so

# 在所有LoadModule末端增加以下2行

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

4、 创建目录

mkdir -p /data/svn

    # 创建svn仓库

svnadmin create /data/svn/sre

vim /usr/local/apache/conf/httpd.conf

<Location /svn>

    DAV svn

    SVNPath /data/svn/sre

    AuthType Basic

    AuthName "PleaseLogin"

    AuthUserFile /usr/local/apache/.passwd

    Require valid-user

    </Location>

5、 生成passwd文件

/usr/local/apache/bin/htpasswd -c -m /usr/local/apache/.passwd user01

chown -R svn.svn /usr/local/apache/.passwd

chown -R svn.svn /data/svn

/etc/init.d/httpd restart


6、 用浏览器访问http://192.168.8.103/svn

或者下载SVN客户端执行 SVN Checkout,输入URL:http://192.168.8.103/svn,Checkout到本地电脑