分类: LINUX
2009-09-01 22:30:07
(一).准备的源码包
1.subversion-1.6.4.tar.gz下载路径:subversion.tigris.org
2.httpd-2.2.9.tar.gz下载地址apache官网,很容易找的
3.subversion-deps-1.6.4.tar.gz,它为subversion安装时所依赖的,能过解压缩subversion-1.6.4.tar.gz文件,查看里面的INSTALL
文件,我们可以在dependency中看到,安装subversion需要libapr,libapr-util,sqlite,libz,libserf(option),其中'apr',
'apr-util', 'serf', 'zlib',已经包含在subversion-deps-1.6.4.tar.gz
(二).安装apache
1.首先先安装apache,解压httpd-2.2.9.tar.gz
tar -xzvf httpd-2.2.9.tar.gz
cd httpd-2.2.9
2.编译
./configure --enable-module=so --enable-dav --enable-dav-fs --enable-so --prefix=/usr/local/apache2
make
make install
3.测试
$ /usr/local/apache2/bin/apachectl start
检查/usr/local/apache2/logs/error_log 是否有错
打开浏览器如果有测试页"It works!"出现则证明已经安装成功
(二).安装subversion
1.首先为安全起见,先执行以下语句
rm -f /usr/local/lib/libsvn*
rm -f /usr/local/lib/libapr*
rm -f /usr/local/lib/libexpat*
rm -f /usr/local/lib/libneon*
#检查依赖包是否完整
$ sh ./autogen.sh
2.安装subversion-1.6.4.tar.gz
tar -xzvf subversion-1.6.4.tar.gz
tar -xzvf subversion-deps-1.6.4.tar.gz
cd subversion-1.6.4
./configure --prefix=/usr/local/subversion
--with-apxs=/usr/local/apache2/bin/apxs
--with-apr=/usr/local/apache2
--with-apr-util=/usr/local/apache2
--with-ssl --with-zlib
--enable-maintainer-mode
注.subversion apache 服务模块
#subversion会共享库在/usr/local/lib/. mod_dav_svn.so必须在/usr/local/apache2/modules/
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
make install
3.创建一个新linux用户svnroot
useradd svnroot
4.创建库文件所在的目录 (svnroot用户进行下面的操作)
mkdir /home/svnroot/repository
5.创建仓库"test"
cd /usr/local/subversion/bin
./svnadmin create /home/svnroot/repository/test
cd /home/svnroot/repository/test
ll 这时会多一些文件出来
6.在apache中配置subversion
修改httpd.conf,添加以下subversion模块
LoadModule dav_svn_module
LoadModule modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
在文件末添加
DAV svn
#svn父目录
SVNParentPath /home/svnroot/repository/
#权限配置文件
AuthzSVNAccessFile /home/svnroot/repository/authz.conf
#连接类型设置
AuthType Basic
#连接框提示
AuthName "Subversion.zoneyump"
#用户配置文件
AuthUserFile /home/svnroot/repository/authfile
#采用何种认证
Require valid-user
//其中authfile是通过"htpasswd [–c] /home/svnroot/repository/authfile username password"来创建的
//"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,
//则只能第一个用户可以访问新建库
//顺便把你的端口号也改一下,要不然可能&你以前的Apache的端口冲突
7.重启apache # ./usr/local/apache2/bin/apachectl restart
//打开浏览器访问,如果有东西显示就说明成功。
8.权限管理
1)增加用户
# htpasswd [-c] /home/svnroot/repository/authfile davide
//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
# htpasswd authfile 用户名(加入新的用户)
2)权限分配
# vi /home/svnroot/repository/authz.conf
[test:/] //这表示,仓库test的根目录下的访问权限
davide = rw //test仓库davide用户具有读和写权限
[test2:/] //test2仓库根目录下的访问权限
ydw = r //ydw用户在test2仓库根目录下只有读权限
[/] //这个表示在所有仓库的根目录下
* = r //这个表示对所有的用户都具有读权限
#[groups] //这个表示群组设置
#svn1-developers = davide, ydw //这个表示某群组里的成员
#svn2-developers = ydw
#[svn1:/]
#@svn1-developers = rw //如果在前面加上@符号,则表示这是个群组权限设置