<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post/4972/</link>
<title><![CDATA[SVN迁移、安装、配置笔记]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Sun, 12 Feb 2012 06:01:55 +0000</pubDate> 
<guid>http://jackxiang.com/post/4972/</guid> 
<description>
<![CDATA[ 
	【本文主要介绍SVN的迁移方案，以及如何安装部署一台SVN服务器】<br/>一、迁移方案<br/><br/>&lt;&lt;&lt;近期发现svn放在机房里托管，速度上很难受到保证，经常遇到网络故障，导致在开发的时候很受影响。故决定将SVN迁移回本地机房里，然后通过建立VPN通过供外界使用，效果图如下&gt;&gt;&gt;<br/><br/>工作机制：SVN Server配置于本地机房中（内网接入），外网接入时需要通过VPN通道。<br/><br/>备份机制：项目进行中时，定期备份SVN服务器的版本库（可采用脚本实现）；结项后，手动check out版本库，进行整体备份。<br/><br/>优势：保证了SVN Server的安全性，稳定性。且当SVN Server出现宕机等异常时，可立即切至备份服务器继续工作。<br/><br/>劣势：当 VPN通道出现异常时，导致外网则无法接入SVN Server。<br/>自动备份方案<br/><br/>采用rsync文件同步方式。将SVN版本库进行同步工作，rsync教程<br/>二、安装配置SVN服务器<br/>1.安装apr和apr-util<br/><textarea name="code" class="php" rows="15" cols="100">wget http://archive.apache.org/dist/apr/apr-1.2.12.tar.gz
wget http://archive.apache.org/dist/apr/apr-util-1.2.12.tar.gz
tar zxvf apr-1.2.12.tar.gz
cd apr-1.2.12
./configure --prefix=/usr/local/apr
make &amp;&amp; make install
tar zxvf apr-util-1.2.12.tar.gz
cd apr-util-1.2.12
./configure --with-apr=/usr/local/apr
make &amp;&amp; make install
</textarea><br/><br/>2.安装apache<br/><textarea name="code" class="php" rows="15" cols="100">wget http://mirror.bjtu.edu.cn/apache//httpd/httpd-2.2.16.tar.gz
tar zxvf http-2.2.16.tar.gz
cd http-2.2.16
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --enable-modules=so --enable-dav --enable-maintainer-mode --enable-ssl
make &amp;&amp; make install</textarea><br/>3.安装subversion<br/><textarea name="code" class="php" rows="15" cols="100">wget http://subversion.tigris.org/downloads/subversion-deps-1.6.11.tar.gz
wget http://subversion.tigris.org/downloads/subversion-1.6.11.tar.gz
tar zxvf subversion-deps-1.6.11</textarea><br/>注意：删除apr与apr-util。<br/><textarea name="code" class="php" rows="15" cols="100">tar zxvf subversion-1.6.11.tar.gz
cd subversion-1.6.11
./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-ssl
make &amp;&amp; make install</textarea><br/>/*将svnadmin放入$PATH环境变量里*/<br/><textarea name="code" class="php" rows="15" cols="100">cp /usr/local/subversion/bin/svnadmin /usr/local/sbin</textarea><br/>/* 你可以用以下命令检验subversion是否安装成功 */<br/>svnadmin –version<br/>4.subversion环境的搭建<br/><br/>使用与Apache模块的方式运行<br/>首先，把我们需要的SVN模块加载上，修改Apache的配置文件httpd.conf：<br/><textarea name="code" class="php" rows="15" cols="100">LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so</textarea><br/>#然后配置仓库：<br/><textarea name="code" class="php" rows="15" cols="100">&lt;Location /svn&gt;
DAV svn
SVNParentPath /jiunile/svn
AuthType Basic
AuthName &quot;Subversion repository&quot;
AuthUserFile /jiunile/svn/svnpasswd
Require valid-usr
AuthzSVNAccessFile /jiunile/svn/svnaccessfile
&lt;/Location&gt;</textarea><br/>建立SVN版本库<br/><textarea name="code" class="php" rows="15" cols="100">cd /jiunile/svn
svnadmin create test
chmod -R 777 test</textarea><br/><br/>建立svnaccessfile<br/><textarea name="code" class="php" rows="15" cols="100">cd /jiunile/svn
vi svnaccessfile
[test:/]
xupeng = rw</textarea><br/>然后，配置验证方式：<br/>这里使用旦Apache的验证方式：<br/><br/>添加用户和密码：<br/><textarea name="code" class="php" rows="15" cols="100">cd /jiunile/svn
/usr/local/apace2/bin/htpasswd –bc svnpasswd&nbsp;&nbsp;username password</textarea><br/>注意：-bc 第一次创建需要c参数，接下来就只要b这个参数即可 <br/>下面，就要写这个svnaccessfile文件说明<br/><textarea name="code" class="php" rows="15" cols="100">[svn1:/]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //这表示，仓库svn1的根目录下的访问权限
dl1 = rw&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // svn1仓库dl1用户具有读和写权限
dl2 = rw&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // svn1仓库dl2用户具有读和写权限
dl3 = r&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// svn1仓库dl3用户具有读权限
[svn2:/]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //svn2仓库根目录下的访问权限
harry = r&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // harry用户在svn2仓库根目录下只有读权限
sally =&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // sally用户在 svn2仓库根目录下无任何权限
#[/]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 这个表示在所有仓库的根目录下
#* = r&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 这个表示对所有的用户都具有读权限
#[groups]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 这个表示群组设置
#svn1-developers = harry, sally&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 这个表示某群组里的成员
#svn2-developers = sally
#[svn1:/]
#@svn1-developers = rw&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 如果在前面加上@符号，则表示这是个群组权限设置</textarea><br/>将这个设置完成后。重启Apache<br/><textarea name="code" class="php" rows="15" cols="100">/usr/local/apache2/bin/apachect1 –k restart</textarea><br/>就可以通过<br/><br/>http://localhost/svn/test<br/><br/>这个URL来访问仓库了<br/><br/>导入导出SVN版本库可以使用SVN客户端工具实现，很简单，这里就不详细说明了，客户端工具为：TortoiseSVN，图形是只乌龟<br/>三、遇到的问题<br/><br/>问题1.将线上的SVN环境拷贝过来，配置好后，通过URL访问提示如下信息：Could not open the requested SVN filesystem<br/>查看日志文件，发现：Expected FS format ’2′; found format ’3′<br/><br/>问题产生原因：<br/><br/>服务程序是1.4.x版本的svnserve或mod_dav_svn，版本库通过1.5.x版本的svnadmin或TortoiseSVN创建时，会产生这个问题<br/><br/>解决方法:<br/><br/>使用1.5以上的SVN来作为服务<br/>或使用1.4系列的svnadmin或TortoiseSVN来创建版本库<br/>或使用1.4.x系列创建新版本库，通过1.5.x版本备份并恢复原版本库到新版本库<br/><br/>问题2.<br/><br/><textarea name="code" class="php" rows="15" cols="100">httpd: Syntax error on line 443 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server: /usr/local/lib/libsvn_subr-1.so.0: undefined symbol: apr_memcache_add_server</textarea><br/>问题产生的原因：<br/><br/>SVN 依赖的APR版本要正确。如果Apache为2.0.x，对应的APR版本应为0.9.x；Apache为2.2.x，对应的APR版本应为1.2.x。 由于subversion-deps包里的APR是0.9.x的，因此编译svn时要删除从deps里解压出来的apr, apr-util，改而使用apache 2.2里提供的。（这里指定为开始安装的apr目录）,这一点知识非常重要。<br/><br/>解决方法：<br/>下载apr-1.2.12.tar.gz与apr-util-1.2.12.tar.gz。<br/><br/>编译安装这两个包，然后重新安装下apache与subversion即可。<br/><br/>问题3.<br/><br/>/usr/bin/ld: cannot find -lexpatcollect2: ld returned 1 exit status<br/>make[1]: *** [test/serf_get] 错误 1<br/>make[1]: Leaving directory `/root/build/subversion-1.6.11/serf<br/>‘make: *** [external-all] 错误 1<br/><br/>解决方法：<br/><textarea name="code" class="php" rows="15" cols="100">
yum install expat-devel </textarea><br/>来源：http://www.jiunile.com/svn%E8%BF%81%E7%A7%BB%E3%80%81%E5%AE%89%E8%A3%85%E3%80%81%E9%85%8D%E7%BD%AE%E7%AC%94%E8%AE%B0.html<br/><br/><br/>罗春晖兄弟的一篇文章，觉得较有价值，短小很有用，于是摘抄了，Url：http://www.luochunhui.com/svn%E6%BA%90%E8%BF%81%E7%A7%BB/<br/>SVN源迁移 内容如下：<br/><br/>在迁移服务器过程中，经常会用到SVN的源迁移。<br/><br/>一个简单的方式，是直接打包源目录，并在新服务器上解压。 但这种情况，需要保证两个源的SVN版本一致，在打包过程中，也不得有svn checkin，否则可能会导致源损毁或不可预期的后果。<br/><br/>一个安全的方式， 是使用svnadmin工具<br/><br/>旧服务器：<br/><br/>svnadmin dump /home/svn/projectrepos &gt; ~/projectrepos.svn.dump<br/>scp -C ~/projectrepos.svn.dump username@new.server.ip:/home/giko<br/><br/>新服务器:<br/>cd /home/giko<br/>svnadmin create /home/svn/projectrepos<br/>svnadmin load /home/svn/projectrepos &lt; projectrepos.svn.dump<br/>
]]>
</description>
</item><item>
<link>http://jackxiang.com/post/4972/#blogcomment63480</link>
<title><![CDATA[[评论] SVN迁移、安装、配置笔记]]></title> 
<author>hxngb3jf &lt;xgwu82@mail114.net&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Sun, 19 Feb 2012 03:17:37 +0000</pubDate> 
<guid>http://jackxiang.com/post/4972/#blogcomment63480</guid> 
<description>
<![CDATA[ 
	参考参考，我认为很好，大家说说
]]>
</description>
</item><item>
<link>http://jackxiang.com/post/4972/#blogcomment63632</link>
<title><![CDATA[[评论] SVN迁移、安装、配置笔记]]></title> 
<author>lucy00949 &lt;daxingxing1991@126.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 23 Feb 2012 19:01:35 +0000</pubDate> 
<guid>http://jackxiang.com/post/4972/#blogcomment63632</guid> 
<description>
<![CDATA[ 
	好帖子,声援不了就果断留下文字支持下.............
]]>
</description>
</item><item>
<link>http://jackxiang.com/post/4972/#blogcomment63681</link>
<title><![CDATA[[评论] SVN迁移、安装、配置笔记]]></title> 
<author>guoxinc3255 &lt;lavonapgtvim20@21cn.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Wed, 14 Mar 2012 09:52:53 +0000</pubDate> 
<guid>http://jackxiang.com/post/4972/#blogcomment63681</guid> 
<description>
<![CDATA[ 
	呵呵嘛连个皮毛都没有的真是太奇怪了这是为什么呢
]]>
</description>
</item>
</channel>
</rss>