<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/">
<channel>
<title>成刚网志 &amp;amp;&amp;amp; CBolg Application</title>
<link>http://www.chenggang.net</link>
<description><![CDATA[记录我的网事历程，架起沟通的桥梁！欢迎留言！
]]></description>
<lastBuildDate>Sun, 20 May 2012 22:43:39 +0800</lastBuildDate>
<copyright>Copyright &amp;copy; 2012 by CBolg Application.</copyright>
<language>zh-cn</language>
<pubDate>Mon, 21 May 2012 14:56:45 +0800</pubDate>
<item>
<title>Subversion在linux下的安装与使用(和Apache配套使用)</title>
<summary><![CDATA[<p>/*********************************<br />Title:Subversion在linux下的安装与使用(和Apache配套使用)<br />Author:成刚&lt;<a href="mailto:chenggang2008@foxmail.com">chenggang2008@foxmail.com</a>&gt;<br />Date:2008-7-8<br />Modify:2008-10-24<br />***************************]]></summary>
<description><![CDATA[<p>/*********************************<br />Title:Subversion在linux下的安装与使用(和Apache配套使用)<br />Author:成刚&lt;<a href="mailto:chenggang2008@foxmail.com">chenggang2008@foxmail.com</a>&gt;<br />Date:2008-7-8<br />Modify:2008-10-24<br />**********************************/</p><p>安装机器: 192.168.2.180<br />操作系统: CentOS 5.2</p><p>/program/apache/为服务器上的apache安装目录</p><p><span style="color: #669900">注意：安装subversion需要autoconf 2.58或以上版本、libtool 1.4或以上版本、gcc、libapr and libapr-util支持。</span></p><p><br /><span style="color: #0000ff">1、下载软件</span><br />httpd-2.2.9.tar.gz (<a href="http://www.apache.org/">http://www.apache.org</a>)<br />subversion-1.5.1.tar.gz (<a href="http://subversion.tigris.org/">http://subversion.tigris.org/</a>)<br /><br /></p><p><span style="color: #0000ff">2、编译安装httpd</span>（如果您已经安装过Apache，并且配置Apache时，有这两个参数&quot;--enable-dav --enable-so&quot;,则可省略此步骤，否则需要重新编译）<br />先停止apache:<br />/program/apache/bin/apachectl stop<br />然后再重装编译安装apache:<br />tar xvfz httpd-2.2.9.tar.gz <br />cd httpd-2.2.9<br />./configure --prefix=/program/apache --enable-dav=share --enable-so --enable-rewrite=share --enable-proxy=share --enable-proxy-ajp=share --with-apr=/program/apr --with-apr-util=/program/apr-util<br />make<br />make install <br /></p><p>注意：以上配置Apache中的前两个参数（--enable-dav --enable-so）是必须要加的，你还可以根据您的需要添加其他的参数。<br />/program/apache/bin/apachectl start,打开浏览器<a href="http://192.168.2.180/">http://192.168.2.180/</a>,如果有测试页出现则证明已经安装成功。<br /><a name="readmore"></a><br /><span style="color: #0000ff">3、安装Subversion<br /></span>如果之前安装过subversion，则要卸载先前安装的Subversion库文件：<br />rm -f /usr/local/lib/libsvn*<br />rm -f /usr/local/lib/libapr*<br />rm -f /usr/local/lib/libexpat*<br />rm -f /usr/local/lib/libneon*</p><p><br />解压subversion：<br />tar xvfz subversion-1.5.3.tar.gz</p><p>检测Subversion所需的软件是否具备：<br />cd /server/software/subversion-1.5.1<br />sh ./autogen.sh<br />./configure --prefix=/program/subversion --with-apxs=/program/apache/bin/apxs --with-apr=/program/apr --with-apr-util=/program/apr-util<br />make<br />make install<br />运行make tools，在/server/software/subversion-1.5.0中生成tools目录<br />make tools<br />进入tools/server-side目录，里面有svn-populate-node-origins-index文件。</p><p>mkdir -p /server/repository //创建库文件所在的目录<br />/program/subversion/bin/svnadmin create /server/repository/joton //创建名为joton的仓库 <br />/program/subversion/bin/svnadmin create /server/repository/sns //创建名为sns的仓库 <br />去/server/repository/joton看看是不是多了些文件，如果是则说明Subversion安装成功了 </p><p>执行以下命令，使apache的用户nobody对刚才新建立的仓库拥有权限：<br />chown -R nobody /server/repository/joton/</p><p>注:这儿的 nobody 是apache的用户,也有可能是daemon<br /><br /></p><p><span style="color: #0000ff">4、修改apache，让subversion和apache一起工作</span><br />修改&quot;/program/apache/conf/httpd.conf&quot; ，在最下面添加如下几行： </p><p>(<br />subversion-1.5.3已经自动添加了，如没有则添上<br />LoadModule dav_svn_module modules/mod_dav_svn.so<br />LoadModule authz_svn_module modules/mod_authz_svn.so<br />)</p><p>单个版本库<br /><span style="color: #339900">&lt;Location /svn&gt;<br />DAV svn<br />SVNPath /server/repository/joton<br />AuthType Basic<br />AuthName &quot;Subversion repository&quot;<br />AuthUserFile /server/repository/auth-svn<br />AuthzSVNAccessFile /server/repository/auth-svn.conf<br />Require valid-user<br />&lt;/Location&gt;</span></p><p></p><p>多版本库<br /><span style="color: #336600">&lt;Location /svn&gt;<br />DAV svn<br />SVNListParentPath on<br />SVNParentPath /server/repository<br />AuthType Basic<br />AuthName &quot; Subversion repository &quot;<br />AuthUserFile /server/repository/auth-svn<br />AuthzSVNAccessFile /server/repository/auth-svn.conf<br />Require valid-user<br />&lt;/Location&gt;</span></p><p>创建权限文件<br />touch &ndash;p /server/repository/auth-svn.conf<br />下面，就要写这个auth-svn.conf文件了，它是用来控制用户访问仓库的权限的，我们把说明写在后面<br /><span style="color: #669900">[svn1:/] //这表示，仓库svn1的根目录下的访问权限<br />dl1 = rw // svn1仓库dl1用户具有读和写权限<br />dl2 = rw // svn1仓库dl2用户具有读和写权限<br />dl3 = r // svn1仓库dl3用户具有读权限<br />[svn2:/] //svn2仓库根目录下的访问权限<br />harry = r // harry用户在svn2仓库根目录下只有读权限<br />sally = // sally用户在 svn2仓库根目录下无任何权限<br />#[/] // 这个表示在所有仓库的根目录下<br />#* = r // 这个表示对所有的用户都具有读权限<br />#[groups] // 这个表示群组设置<br />#svn1-developers = harry, sally // 这个表示某群组里的成员<br />#svn2-developers = sally<br />#[svn1:/]</span> <br /><a href="mailto:#@svn1-developers"><span style="color: #66cc00">#@svn1-developers</span></a><span style="color: #66cc00"> = rw // 如果在前面加上@符号，则表示这是个群组权限设置</span></p><p>下面来创建访问有权限的subversion帐号：<br />/program/apache/bin/htpasswd -cm /server/repository/auth-svn chenggang //创建一个名为chenggang的用户。<br />执行这个命令成功以后就会在/program/apache/bin目录下建立一个passwd文件，之后如果再加入新的用户和更改已有用户的密码，执行<br />/program/apache/bin/htpasswd /server/repository/auth-svn &lt;username&gt;即可。<br />删除某个帐号:打开/server/svn/auth-svn这个文件,直接删除相关的行.</p><p>/program/apache/bin/apachectl restart <br />重启apache,打开浏览器访问<a href="http://192.168.1.1/svn/joton/">http://192.168.1.1/svn/joton/</a>，如果有东西显示就说明成功。如果不能正确的显示，你看看您的&quot;/server/repository&quot;目录是否对apache的用户是可写的就可以了。</p><p>到此为止，在Linux上安装Subversion已经成功！</p><p><br /><br /></p><p><span style="color: #0000ff">##########遇见问题##############<br /></span>我在安装过程中遇到的问题：<br />1、找不到/server/soft/apache/modules/mod_dav_svn.so这个文件？</p><p>解决方法：</p><p>配置subversion时：<br />--with-apxs2=/server/soft/apache/bin/apxs<br />应该为：<br />--with-apxs=/server/soft/apache/bin/apxs</p><p>2、访问 <a href="http://192.168.2.180/svn/***">http://192.168.2.180/svn/***</a> ,提示You don't have permission to access /svn/xingmo on this server.</p><p>解决方法：<br />&lt;Location /svn&gt;<br />DAV svn<br />SVNParentPath /server/repository<br />Options Indexes MultiViews<br />&lt;/Location&gt;<br />改为：<br />&lt;Location /svn/xingmo&gt;<br />DAV svn<br />#SVNParentPath /server/repository<br />SVNPath /server/repository/xingmo/<br />Options Indexes MultiViews<br />&lt;/Location&gt;<br /><br /></p><p>3、向服务器import时，提示：<br />Error: Commit failed (details follow): <br />Error: Can't create directory '/server/repository/xingmo/db/transactions/0-1.txn': <br />Error: Permission denied </p><p>解决方法：<br />chown -R nobody /server/repository/xingmo/<br />/server/soft/apache/bin/apachectl restart</p><p>或:<br />chown -R nobody /server/repository<br />/server/soft/apache/bin/apachectl restart<br />注:这儿的 nobody 是apache的用户,也有可能是daemon</p><p><br />文中的路径及相关参数，可以根据自己的情况有所不同。<br /><br />4、<br />Syntax error on line 413 of /program/apache/conf/httpd.conf:<br />AuthzSVNAccessFile not allowed here</p><p>读写权限问题<br />把apache配置文件中的用户赋值对svn仓库的读写权限就OK了，比如：chown -R nobody /server/repository<br /><br />新建一个svn库:</p><p>/program/subversion/bin/svnadmin create /server/repository/work //创建名为work的仓库 <br />chown -R nobody /server/repository/work/ <br /><br />添加帐号：<br />/soft/apache/bin/htpasswd /server/repository/auth-svn &lt;username&gt;<br /><br /><span style="color: #ff3300">上述操作参考别人文档结合自己几次安装，不过经验有限，若有错误或者有待改进的地方，请各位不吝批评指教！</span></p>]]></description>
<link>http://www.chenggang.net/posts/87</link>
<pubDate>Sat, 21 Mar 2009 20:20:25 +0800</pubDate>
<author>admin</author>
<category>Linux</category>
<guid isPermaLink="true">http://www.chenggang.nethttp://www.chenggang.net/posts/87</guid>
</item>
</channel></rss>
