环境:

Apr : apr-util-1.5.3.tar.gz 和 apr-1.5.0.tar.gz

       Apache : httpd-2.2.26.tar.gz

       Subversion: subversion-1.7.16.tar.gz

######################################################

安装过程:1、先安装apache及相关支持组件;

         2、安装配置svn;

######################################################

相关的rpm包支持,此处偷懒省事(最好缺什么装什么)

yum install gcc* *zlib*

######################################################

源码安装apr

tar zxvf apr-1.5.0.tar.gz

cd apr-1.5.0

./configure --prefix=/opt/apr

make && make install

源码安装apr-util

tar zxvf apr-util-1.5.3.tar.gz

cd apr-util-1.5.3

./configure --prefix=/opt/apr-util --with-apr=/opt/apr

make && make install

tar zxvf httpd-2.2.26.tar.gz

cd httpd-2.2.26

./configure \

--prefix=/opt/apache \

--with-apr=/opt/apr/bin/apr-1-config \

--with-apr-util=/opt/apr/bin/apu-1-config \

--enable-so \

--enable-dav \

--enable-maintainer-mode \

--enable-rewrite

make && make install


安装完成后启动:


/opt/apache/bin/apachectl start stop  restart reload

(此处未做相关的apache的server程序支持脚本)

修改apache用户和组,涉及到svn的安全问题:

vi /opt/apache/conf/httpd.conf

user daemon

group daemon


改为:

User  apache

Group apache

######################################################

安装和配置subversion


tar zxvf subversion-1.7.16.tar.gz

cd subversion-1.7.16

./configure \

       --prefix=/opt/svn \

       --with-apxs=/opt/apache/bin/apxs \

       --with-apr=/opt/apr/bin/apr-1-config \

       --with-apr-util=/opt/apr-util/bin/apu-1-config \

       --with-ssl \

       --with-zlib \

       --enable-maintainer-mode


make && make install


完成后,检查版本:


/opt/svn/bin/svnserve  --version

######################################################

配置svn和apache整合

查看apache配置文件,是否有相应的svn模块

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

这两个模块会出现在:

/opt/apache/modules/

如果有,而apache配置文件里没有自动加载,可以手动加载

然后重启apache服务


###################################################

配置svn

首先,创建版本库,所有使用的版本都会放到建的库中

创建名为www的库

mkdir /svn/project

/opt/svn/bin/svnadmin create /svn/project/www

查看创建后的库,目录下会有配置文件

ls /svn/project/www

如后面配置会用到的svnserve.conf

##############################

为svn提高安全性:

chmod -R 700 /svn/project

chown -R apache.apache /svn/project

在apache配置文件中写入实现整合功能的配置,追加到尾部即可:

<Location /svn>

    DAV svn

    SVNParentPath /svn/project/

    AuthzSVNAccessFile /svn/auth.conf

    AuthType Basic

    AuthName "Subversion.zoneyump"

    AuthUserFile /svn/passwd

    Require valid-user

</Location>

主要包括:svn的目录位置,认证文件,用户密码存放文件;

再重启apache服务。

######################################################

全局的配置文件

ls /svn

auth.conf  passwd  project


auth.conf  中存放对仓库访问的用户和组的权限控制;

passwd     存放生成的用户密码;

project    存放各个代码仓库;

还有每个库中的局部配置文件,它们要将配置文件指向全局配置文件,

这样可以统一配置,当然也可单独配置

cd /svn/profile/www/

ls

conf  db  format  hooks  locks  README.txt

cd conf/

ls

authz  passwd  svnserve.conf

vi svnserve.conf

修改如下:


anon-access = read

auth-access = write

password-db = /svn/passwd

authz-db = /svn/auth.conf


wq!

####################################################

添加svn用户命令,第一次添加时需要选项-c ,以后再加入新的用户不再需要

/opt/apache/bin/htpasswd -c /svn/passwd  username

password:

retry password:

/opt/apache/bin/htpasswd /svn/passwd  username1

password:

retry password:


分配用户到对应的工程,设置用户对所属工程库的访问权限

/svn/auth.conf

[groups]

g_www=11,22,33

g_bbb=44,55

g_aaa=6,7,8,9,10


[www:/]

@g_www=rw

6=rw

44=r

*=

# @g_www为组用户,也可为单个用户分配权限,r为读,w为写;

# *=  为其他用户权限为空,即禁止访问

############################################################

重启 SVN 方法


ps -ef | grep svn

root      1600 25013  0 08:47 pts/0    00:00:00 grep svn

root      3159     1  0 Apr21 ?        00:00:00 svnserve -d -r /svn/projec

kill -9 PID  


开启svn

svnserve -d -r /svn/project


lsof -i:3690


COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME


svnserve 8454 root    3u  IPv4 1346200      0t0  TCP *:svn (LISTEN)



######################END########################