Subversion 搭建手记 不指定

freebird , 2007/06/03 02:29 , 我的涂鸦 , 评论(0) , 阅读(367) , Via 本站原创 | |
这两天迁移公司subversion服务器,可谓时心惊胆战的,刚才终于迁完了。写下过程以便下次遇到同样的问题。
SERVER:HP DL140G3 皓龙1.86G,1G内存,500G SATAII硬盘
OS: RedHat AS4 X_86_64
DB: BerkeleyDB-4.4.20
Subversion: 1.4.3
Apache:2.2.4

我将所有的软件包下载到/usr/local/src 里,

先创建一个svnadmin的用户,用该用户来管理subversion

1.安装apr和apr-util

wget http://www.signal42.com/mi...
wget http://www.signal42.com/mi...
tar zxvf apr-1.2.8.tar.gz
cd apr-1.2.8
./configure --prefix=/usr/local/aprtool/apr
make;make install

tar zxvf apr-util-1.2.8.tar.gz
cd apr-util-1.2.8
./configure --prefix=/usr/local/aprtool/apr-util \
--with-apr=/usr/local/aprtool/apr
make;make install

2.安装apache

cd /usr/local/src/
wget http://www.reverse.net/pub...
tar zxvf httpd-2.2.4.tar.gz
cd httpd-2.2.4
./configure --prefix=/usr/local/apache \
--with-mpm=worker \
--with-apr=/usr/local/aprtool/apr \
--with-apr-util=/usr/local/aprtool/apr-util/ \
--enable-so \
--enable-rewrite \
--enable-dav \ #这两行千万不能少,否则无法和subversion集成
--enable-dav-fs \ #
--enable-cgid \
--enable-cgi \
--enable-ssl \
--enable-authn-dbd \
--enable-mime-magic

make;make install
修改httpd.conf里的
user和group为svnadmin
再最后一行添加
Include /usr/local/apache/conf/Include/*.conf
创建一个svn.conf的配置文件
内容为:

<Location /svn>
DAV svn
SVNParentPath /home/svnadmin/repos #指定svn的仓库路径
SVNIndexXSLT "http://10.10.100.188/svnindex.xsl" #指定svn的xml文件URL地址
AuthzSVNAccessFile /home/svnadmin/access/control #指定svn的权限文件
Satisfy Any
Require valid-user
AuthType Basic
AuthName "Subversion Server"
AuthUserFile /home/svnadmin/access/users #指定svn的用户名称和密码
</Location>


3.安装BerkeleyDB

wget http://downloads.sleepycat...
tar zxvf db-4.4.20.tar.gz
cd db-4.4.20
cd build_unix
../dist/configure --prefix=/usr/local/bdb
make;make install

4.安装subversion

wget http://summersoft.fay.ar.u...
rpm -vih subversion-1.4.3-1.src.rpm
cp /usr/src/redhat/SOURCES/subversion-1.4.3-1.tar.gz /usr/local/src
tar zxvf subversion-1.4.3-1.tar.gz
cd subversion-1.4.3
./autogen.sh

cd /usr/local/src/httpd-2.2.4
make clean
cp apr /usr/local/src/subversion-1.4.3 -Rf
cp apr-util /usr/local/src/subversion-1.4.3 -Rf

#BDB方式存储
./configure --prefix=/usr/local/subversion \
--with-ssl \
--with-berkeley-db=/usr/local/bdb/ \
--with-apxs=/usr/local/apache/bin/apxs
make;make install

#FSFS方式存储
./configure --prefix=/usr/local/subversion \
--with-ssl \
--with-apxs=/usr/local/apache/bin/apxs \
make;make install

编译完成后检查httpd.conf中是否有一下两行,如果没有,请重新检查编译过程并编译
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

cp tools/xslt/subindex.* /usr/local/apache/htdocs

5.创建subversion权限文件,建立仓库并建立用户
su - svnadmin
pwd
此时你的目录应该在
/home/svnadmin
mkdir access
mkdir repos
首先建立仓库
关于仓库的存储分为bdb和fsfs两种,一下是对两种存储的比较,至于用哪种看你自己选择了.


特性  Berkeley DB  FSFS
对操作中断的敏感  很敏感;系统崩溃或者权限问题会导致数据库“塞住”,需要定期进行恢复  不敏感
可只读加载  不能  可以
存储平台无关  不能  可以
可从网络文件系统访问  不能  可以
版本库大小  稍大  稍小
扩展性:修订版本树数量  无限制  某些本地文件系统在处理单一目录包含上千个条目时会出现问题
扩展性:文件较多的目录  较慢  较慢
检出最新代码的速度  较快  可以
大量提交的速度  较慢,但时间被分配在整个提交操作中  较快,但最后较长的延时可能会导致客户端操作超时
组访问权处理  对于用户的 umask 设置十分敏感,最好只由一个用户访问  对 umask 设置不敏感
功能成熟时间  2001 年  2004 年






cd repos
/usr/local/subversion/bin/svnadmin create db #以FSFS方式存储数据
/usr/local/subversion/bin/svnadmin create -fs-type bdb db #以bdb方式存储数据

有什么差别可以自己分别建立两个仓库比较一下.

cd ../access
/usr/local/apache/bin/htpasswd -c users user # 建立用户密码文件users,并增加user用户,输入两次密码就建立成功了.

vi control
[groups]
admin = user,user1,user2
[db:/]
@admin = rw #允许admin 组用户对db目录进行读写操作.
[db1:/]
@admin = r #允许admin组用户对db1目录进行读操作.



6.启动apache

/usr/local/apache/bin/apachectl start

测试
访问http://10.10.100.188/svn/d...,看是否弹出验证窗口,输入正确用户名和密码后页面显示是否正常.

FAQ:
Q:为什么我输入正确的用户名和密码页面显示Could not open the requested SVN filesystem
A:这种问题有两种原因1:仓库权限问题.即apache 的user和group不能读取svnadmin的目录,请将httpd.conf的user和group修改至svnadmin的目录用户和组.
2.svn,apr,apr-util关联问题.重新检查编译过程并编译.
Q:无法访问页面,日志显示:(20014)Internal error: Berkeley DB error for filesystem '/home/svnadmin/repos/db/db' while opening environment:\n
A:这种问题一般发生在数据迁移或者版本升级时,原因是:
1.数据迁移的目的服务器subversion,bdb的版本不兼容或比原服务器版本低;
2.subversion安装时没有更新apr和apr-util,
遇到这种问题,首先对照上面的过程检查所有的编译过程是否有异常现象,特别时svn,apr,apr-util,bdb的编译过程是否正常.

到此基本完了,欢迎大家一起交流

subversion 中文手册
http://svnbook.subversion....




Tags: ,
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]