<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[SouEasy]]></title> 
<link>http://blog.soueasy.net/index.php</link> 
<description><![CDATA[我的心情,我的博客]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[SouEasy]]></copyright>
<item>
<link>http://blog.soueasy.net/post//</link>
<title><![CDATA[Subversion 搭建手记]]></title> 
<author>freebird &lt;eyouy@126.com&gt;</author>
<category><![CDATA[我的涂鸦]]></category>
<pubDate>Sat, 02 Jun 2007 18:29:54 +0000</pubDate> 
<guid>http://blog.soueasy.net/post//</guid> 
<description>
<![CDATA[ 
	这两天迁移公司subversion服务器，可谓时心惊胆战的，刚才终于迁完了。写下过程以便下次遇到同样的问题。<br/>SERVER:HP DL140G3 皓龙1.86G，1G内存，500G SATAII硬盘<br/>OS: RedHat AS4 X_86_64<br/>DB: BerkeleyDB-4.4.20<br/>Subversion: 1.4.3<br/>Apache:2.2.4<br/><br/>我将所有的软件包下载到/usr/local/src 里,<br/><br/>先创建一个svnadmin的用户,用该用户来管理subversion<br/><br/>1.安装apr和apr-util<br/><br/>wget <a href="http://www.signal42.com/mirrors/apache/apr/apr-1.2.8.tar.gz" target="_blank">http://www.signal42.com/mi...</a><br/>wget <a href="http://www.signal42.com/mirrors/apache/apr/apr-util-1.2.8.tar.gz" target="_blank">http://www.signal42.com/mi...</a><br/>tar zxvf apr-1.2.8.tar.gz<br/>cd apr-1.2.8<br/>./configure --prefix=/usr/local/aprtool/apr<br/>make;make install<br/><br/>tar zxvf apr-util-1.2.8.tar.gz<br/>cd apr-util-1.2.8<br/>./configure --prefix=/usr/local/aprtool/apr-util &#92;<br/>--with-apr=/usr/local/aprtool/apr<br/>make;make install<br/><br/>2.安装apache<br/><br/>cd /usr/local/src/<br/>wget <a href="http://www.reverse.net/pub/apache/httpd/httpd-2.2.4.tar.gz" target="_blank">http://www.reverse.net/pub...</a><br/>tar zxvf httpd-2.2.4.tar.gz<br/>cd httpd-2.2.4<br/>./configure --prefix=/usr/local/apache &#92;<br/>--with-mpm=worker &#92;<br/>--with-apr=/usr/local/aprtool/apr &#92;<br/>--with-apr-util=/usr/local/aprtool/apr-util/ &#92;<br/>--enable-so &#92;<br/>--enable-rewrite &#92;<br/><span style="color: #DC143C;">--enable-dav &#92;</span> #这两行千万不能少,否则无法和subversion集成<br/><span style="color: #DC143C;">--enable-dav-fs &#92; </span> # <br/>--enable-cgid &#92; <br/>--enable-cgi &#92;<br/>--enable-ssl &#92;<br/>--enable-authn-dbd &#92;<br/>--enable-mime-magic<br/><br/>make;make install<br/>修改httpd.conf里的<br/>user和group为svnadmin<br/>再最后一行添加<br/>Include /usr/local/apache/conf/Include/*.conf<br/>创建一个svn.conf的配置文件<br/>内容为:<br/><div class="code"><br/>&lt;Location /svn&gt;<br/>DAV svn<br/>SVNParentPath /home/svnadmin/repos #指定svn的仓库路径<br/>SVNIndexXSLT &quot;http://10.10.100.188/svnindex.xsl&quot; #指定svn的xml文件URL地址<br/>AuthzSVNAccessFile /home/svnadmin/access/control #指定svn的权限文件<br/>Satisfy Any<br/>Require valid-user <br/>AuthType Basic<br/>AuthName &quot;Subversion Server&quot;<br/>AuthUserFile /home/svnadmin/access/users #指定svn的用户名称和密码<br/>&lt;/Location&gt;<br/></div><br/><br/>3.安装BerkeleyDB<br/><br/>wget <a href="http://downloads.sleepycat.com/db-4.4.20.tar.gz" target="_blank">http://downloads.sleepycat...</a><br/>tar zxvf db-4.4.20.tar.gz<br/>cd db-4.4.20<br/>cd build_unix<br/>../dist/configure --prefix=/usr/local/bdb<br/>make;make install<br/><br/>4.安装subversion<br/><br/>wget <a href="http://summersoft.fay.ar.us/pub/subversion/latest/rhel-4/src/subversion-1.4.3-1.src.rpm" target="_blank">http://summersoft.fay.ar.u...</a><br/>rpm -vih subversion-1.4.3-1.src.rpm<br/>cp /usr/src/redhat/SOURCES/subversion-1.4.3-1.tar.gz /usr/local/src<br/>tar zxvf subversion-1.4.3-1.tar.gz<br/>cd subversion-1.4.3<br/>./autogen.sh<br/><br/>cd /usr/local/src/httpd-2.2.4<br/>make clean<br/>cp apr /usr/local/src/subversion-1.4.3 -Rf<br/>cp apr-util /usr/local/src/subversion-1.4.3 -Rf<br/><br/>#BDB方式存储<br/>./configure --prefix=/usr/local/subversion &#92;<br/>--with-ssl &#92;<br/>--with-berkeley-db=/usr/local/bdb/ &#92;<br/>--with-apxs=/usr/local/apache/bin/apxs<br/>make;make install<br/><br/>#FSFS方式存储<br/>./configure --prefix=/usr/local/subversion &#92;<br/>--with-ssl &#92;<br/>--with-apxs=/usr/local/apache/bin/apxs &#92;<br/>make;make install<br/><br/>编译完成后检查httpd.conf中是否有一下两行,如果没有,请重新检查编译过程并编译<br/>LoadModule dav_svn_module modules/mod_dav_svn.so<br/>LoadModule authz_svn_module modules/mod_authz_svn.so<br/><br/>cp tools/xslt/subindex.* /usr/local/apache/htdocs<br/><br/>5.创建subversion权限文件,建立仓库并建立用户<br/>su - svnadmin<br/>pwd<br/>此时你的目录应该在<br/>/home/svnadmin<br/>mkdir access<br/>mkdir repos<br/>首先建立仓库<br/>关于仓库的存储分为bdb和fsfs两种,一下是对两种存储的比较,至于用哪种看你自己选择了.<br/><br/><br/>特性 &nbsp;Berkeley DB &nbsp;FSFS<br/>对操作中断的敏感 &nbsp;很敏感；系统崩溃或者权限问题会导致数据库“塞住”，需要定期进行恢复 &nbsp;不敏感<br/>可只读加载 &nbsp;不能 &nbsp;可以<br/>存储平台无关 &nbsp;不能 &nbsp;可以<br/>可从网络文件系统访问 &nbsp;不能 &nbsp;可以<br/>版本库大小 &nbsp;稍大 &nbsp;稍小<br/>扩展性：修订版本树数量 &nbsp;无限制 &nbsp;某些本地文件系统在处理单一目录包含上千个条目时会出现问题<br/>扩展性：文件较多的目录 &nbsp;较慢 &nbsp;较慢<br/>检出最新代码的速度 &nbsp;较快 &nbsp;可以<br/>大量提交的速度 &nbsp;较慢，但时间被分配在整个提交操作中 &nbsp;较快，但最后较长的延时可能会导致客户端操作超时<br/>组访问权处理 &nbsp;对于用户的 umask 设置十分敏感，最好只由一个用户访问 &nbsp;对 umask 设置不敏感<br/>功能成熟时间 &nbsp;2001 年 &nbsp;2004 年<br/><br/><br/><br/><br/><br/><br/>cd repos<br/>/usr/local/subversion/bin/svnadmin create db #以FSFS方式存储数据<br/>/usr/local/subversion/bin/svnadmin create -fs-type bdb db #以bdb方式存储数据<br/><br/>有什么差别可以自己分别建立两个仓库比较一下.<br/><br/>cd ../access<br/>/usr/local/apache/bin/htpasswd -c users user # 建立用户密码文件users,并增加user用户,输入两次密码就建立成功了.<br/><br/>vi control<br/>[groups]<br/>admin = user,user1,user2<br/>[db:/]<br/>@admin = rw #允许admin 组用户对db目录进行读写操作.<br/>[db1:/]<br/>@admin = r #允许admin组用户对db1目录进行读操作.<br/><br/><br/><br/>6.启动apache<br/><br/>/usr/local/apache/bin/apachectl start<br/><br/>测试<br/>访问<a href="http://10.10.100.188/svn/db" target="_blank">http://10.10.100.188/svn/d...</a>,看是否弹出验证窗口,输入正确用户名和密码后页面显示是否正常.<br/><br/>FAQ:<br/>Q:为什么我输入正确的用户名和密码页面显示Could not open the requested SVN filesystem<br/>A:这种问题有两种原因1:仓库权限问题.即apache 的user和group不能读取svnadmin的目录,请将httpd.conf的user和group修改至svnadmin的目录用户和组.<br/>2.svn,apr,apr-util关联问题.重新检查编译过程并编译.<br/>Q:无法访问页面,日志显示:(20014)Internal error: Berkeley DB error for filesystem '/home/svnadmin/repos/db/db' while opening environment:&#92;n<br/>A:这种问题一般发生在数据迁移或者版本升级时,原因是:<br/>1.数据迁移的目的服务器subversion,bdb的版本不兼容或比原服务器版本低;<br/>2.subversion安装时没有更新apr和apr-util,<br/>遇到这种问题,首先对照上面的过程检查所有的编译过程是否有异常现象,特别时svn,apr,apr-util,bdb的编译过程是否正常.<br/><br/>到此基本完了,欢迎大家一起交流<br/><br/>subversion 中文手册<br/><a href="http://svnbook.subversion.org.cn/1.2/index.html" target="_blank">http://svnbook.subversion....</a><br/><br/><br/><br/><br/><br/>Tags - <a href="http://blog.soueasy.net/tags/apache/" rel="tag">apache</a> , <a href="http://blog.soueasy.net/tags/subversion/" rel="tag">subversion</a>
]]>
</description>
</item><item>
<link>http://blog.soueasy.net/post//#blogcomment</link>
<title><![CDATA[[评论] Subversion 搭建手记]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://blog.soueasy.net/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>