Linux下基于Apache安装SVN及相关配置

原文地址(ttlsa运维生存时间):http://www.ttlsa.com/archives/723

http://blog.csdn.net/colinchan/article/details/1865154
软件获取地址
apache下载地址
http://httpd.apache.org/
subversion下载地址
http://subversion.tigris.org/
apr下载地址
http://apr.apache.org/
sqllite下载地址
http://www.sqlite.org/download.html

一、准备工作
# mkdir -P /usr/local/src/{tarbag,software}
# cd /usr/local/src/tarbag
apache-2.2.21
# wget http://mirror.bjtu.edu.cn/apache//httpd/httpd-2.2.21.tar.gz
subversion-1.7.2
# wget http://mirror.bjtu.edu.cn/apache/subversion/subversion-1.7.2.tar.gz
apr-1.4.5
# wget http://labs.renren.com/apache-mirror//apr/apr-1.4.5.tar.gz
apr-util-1.3.12
# wget http://labs.renren.com/apache-mirror//apr/apr-util-1.3.12.tar.gz
sqllite-3.7.9
# wget http://www.sqlite.org/sqlite-autoconf-3070900.tar.gz

二、安装Apache
由于本篇重点讲解svn安装配置,如果Apache安装有疑问的可参见:
这里重点讲解与SVN有关的参数
如果有安装过apache,使用如下命令查看
# apachectl -M | grep dav
如下所示,即可跳过
 dav_module (shared)
 dav_fs_module (shared)
Syntax OK
如果没有则需要重新编译apache
# ./configure --enable-dav --enable-dav-fs
# make
# make install

三、安装Apr和Apr-util
# cd /usr/local/src/tarbag/
# tar zxvf apr-1.4.5.tar.gz -C ../software/
# tar zxvf apr-util-1.3.12.tar.gz -C ../software/
# cd ../software/
# cd apr-1.4.5/
# ./configure --prefix=/usr/local/apr/ && make && make install
# cd ../apr-util-1.3.12/
# ./configure  --prefix=/usr/local/apr-util/ --with-apr=/usr/local/apr/ &&  make && make install

四、安装Sqllite
# cd /usr/local/src/tarbag/
# tar zxvf sqlite-autoconf-3070900.tar.gz -C ../software/
# cd ../software/sqlite-autoconf-3070900/
# ./configure --prefix=/usr/local/sqllite && make && make install

五、安装Subversion
# cd /usr/local/src/tarbag/
# tar zxvf subversion-1.7.2.tar.gz -C ../software/
# cd ../software/subversion-1.7.2/
# ./configure --with-apxs=/usr/local/apache2.2.21/bin/apxs --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/ --with-sqllite=/usr/local/sqllite/ && make && make install

六、相关配置
1、配置subversion
拷贝相关类库
# cd /usr/local/src/software/subversion-1.7.2/
# cp ./subversion/mod_dav_svn/.libs/mod_dav_svn.so  /usr/local/apache2.2.21/modules/
# cp ./subversion/mod_authz_svn/.libs/mod_authz_svn.so  /usr/local/apache2.2.21/modules/
添加svn的验证文件svn-auth.conf
# /usr/local/apache2.2.21/bin/htpasswd -cm /data/svn/svn-auth.conf tonyty163
New password:
Re-type new password:
Adding password for user tonyty163
注:只有第一次需要加-c参数,后期再添加用户千万不能加-c,否则会将原文件覆盖的,如下:
# /usr/local/apache2.2.21/bin/htpasswd -m /data/svn/svn-auth.conf admin
New password:
Re-type new password:
Adding password for user admin

配置svn权限控制文件svn-access.conf
[groups]
admin = admin, tonyty163
developers = tonyty163

# Default access rule for ALL repositories
# Everyone can read, admins can write, tonyty163 is excluded.
[/]
* = r
@admin = rw
tonyty163 =

# Allow developers complete access to their project repos
[project1:/]
@developers = rw

# Give the doc people write access to all the docs folders
[/trunk/doc]
@developer = rw

# Give trainees write access in the training repository only
[TrainingRepos:/]
@training = rw

权限控制文件里面要把握3个核心概念
1、[]中的内容
这里面的内容主要包括几个分类,如本例中:
组[group],库[repositories:/],目录[/trunk/doc]
2、用户
如本例中的:admin, tonyty163
注:用户可以直接定义,以svn-auth.conf里的用户为准,不是一定要加入组的
3、权限
r读,W写
一般常用的也就这两种,其他的目前也没用过


2、配置apache

# vi /usr/local/apache2.2.21/conf/httpd.conf
查找LoadModule
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

并在配置文件最后添加
<Location /svn>
DAV svn
SVNParentPath /data/svn
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /data/svn/svn-auth.conf
Require valid-user
AuthzSVNAccessFile /data/svn/svn-access.conf
</Location>
配置详解

AuthUserFile /data/svn/svn-auth.conf指定的是SVN访问帐号密码文件
AuthzSVNAccessFile /data/svn/svn-access.conf指定的是SVN的访问控制文件

七、新建第一个库
# svnadmin create /data/svn/project1
在浏览器中输入http://IP/svn/project1如果输出
project1 - Revision 0: /
即表示成功

八、排错
当配置完成,在浏览器中输入http://IP/svn/会出现
403 Forbbident
这里需要注意,必须要建立库,并且访问到该库才行,如:
http://IP/svn/project1
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章