环境:
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########################