本文描述了以http方式安装Subversion服务器的简要步骤
1. 必须的准备
1.1. 下载相关软件
1、 Apache
下载apache服务器的源代码文件,目前112服务器上安装的是2.2.12版。
2、 Zlib
下载zlib安装包,目前112服务器上安装的是1.2.3版。
Svn服务器源代码
下载subversion源代码,目前112服务器上安装的是1.5.5版。
1.2. 创建Subversion服务器用户
执行如下命令:
groopadd svn
useradd svnroot –g svn
passwd svnroot
112上的svn用户为svnroot/123456
2. Subversion的安装
2.1. 安装相关软件
2.1.1. 安装apache
编译并安装apache(用root用户操作)
1. 解压缩
Tar –xzvf httpd-2.2.11.tar.gz
2. 设置安装参数
进入解压缩后的目录,执行
./configure –enable-dav –enable-so –prefix=/opt/apache2
前两个参数必须要添加
3. 编译并安装
make
make install
2.1.2. 安装zlib
编译并安装zlib(用root用户)
1. 解压缩
Tar –xzvf zlib-1.2.3.tar.tar
2. 设置安装参数
进入解压缩后的目录,执行
./configure –prefix=/usr/local/lib
3. 编译并安装
Make
Make install
2.2. 安装subversion
安装subversion(用root用户)
1. 解压缩
Tar –xzvf subversion-1.5.5.tar.gz
2. 设置安装参数
./configure --with-apxs=/opt/apache2/bin/apxs --prefix=/opt/subversion --with-apr=/usr/local/apache2 --with-apr-util=/opt/apache2 --with-ssl --with-zlib=/usr/local/lib --enable-maintainer-mode
Apxs、apr、apr-util需要使用apache的,不要用subversion自带的,否则可能出现版本不匹配问题。
3. 编译并安装
Make
Make install
3. Subversion的配置
3.1. 创建资源库
创建svn资源库目录(用svnroot用户)
创建资源库主目录
mkdir /home/svnroot/repository
3.2. 创建仓库
创建仓库test(用svnroot用户)
cd /opt/subversion/bin
./svnadmin create /home/svnroot/repository/test
进入到测试仓库目录,检查是否多了一些文件,如果是,则说明svn安装成功;
3.3. 配置通过浏览器访问svn
修改apache的httpd.conf配置文件
Cd /opt/apache2/conf
Vi httpd.conf
在文件最后添加如下内容
1.添加支持模块
注意,先检查一下配置文件中是否已包含下列两行,如有,则跳过此步
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
2.设置svn内容
<Location /svn>
DAV svn
SVNParentPath /home/svnroot/repository/ //svn父目录
AuthzSVNAccessFile /home/svnroot/repository/authz.conf //权限配置文件
AuthType Basic //连接类型设置
AuthName "Subversion.zoneyump" //连接框提示
AuthUserFile /home/svnroot/repository/authfile // 用户配置文件
Require valid-user //采用何种认证
</Location>
//其中authfile是通过
"htpasswd [–c] /home/svnroot/repository/authfile username password"
//来创建的
//"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,
//则只能第一个用户可以访问新建库
3.修改运行apache的用户
在httpd.conf中找到下面的内容
User daemon
Group daemon
将其中的daemon修改为svnroot,从而让apache可以访问svnroot用户下的文件
3.4. Svn的权限管理
3.4.1. 增加新用户
htpasswd -c /home/svnroot/repository/authfile test
输入用户口令
第一次创建时需要使用-c参数新建一个文件,以后再添加用户时则可省略此参数。
3.4.2. 设置权限
# vi /home/svnroot/repository/authz.conf
[test:/] //这表示,仓库test的根目录下的访问权限
test = rw //test仓库wooin用户具有读和写权限
bao = r //test仓库bao用户具有读权限
[/] //这个表示在所有仓库的根目录下
* = r //这个表示对所有的用户都具有读权限
#[groups] //这个表示群组设置
#svn1-developers = test, bao //这个表示某群 组里的成员
#svn2-developers = wooin
#[svn1:/]
#@svn1-developers = rw //如果在前面加上@符号,则表 示这是个群组权限设置
4. 安装验证
设置完成后,重新启动apache
通过 http://192.168.110.112/svn/test访问,输入用户名,口令,检查安装是否成功。
5. 参考资料
http://www.subversion.org.cn/ subversion中文站,有很全的资料,关于svn配置和使用上的内容,可以参考http://www.subversion.org.cn/svnbook/ svn手册。