在Apache上架设SVN使得可以通过http来使用SVN

弄了一下午,终于搞定了。找到一篇好的博客。分享出来:

宇哥搞了个论坛网站,我的svn使用不了了,我把svn重新架设到apache后,又可以通过http访问svn了。

1.安装 Apache 2.0.59 http://www.apache.org( 注意 经测试 Apache2.2.4与SVN1.4.3不兼容,可能是相关so问题 )
2.配置 Apache conf下的httpd.conf 文件
   1)添加模块:(其中前2个 只需去掉注释即可,后两个自己添加) 其中 d:/devTools/svn1.4.2 为 svn安装目录
    LoadModule dav_module modules/mod_dav.so
    LoadModule dav_fs_module modules/mod_dav_fs.so
    LoadModule dav_svn_module "d:/devTools/svn1.4.2/bin/mod_dav_svn.so"
    LoadModule authz_svn_module "d:/devTools/svn1.4.2/bin/mod_authz_svn.so"
   注意: mod_dav_svn.so,mod_authz_svn.so这两个模块必须放在 svn的bin目录下,不可以移动到apache的modules下。或者把<Subversion_Root> /bin/ 下的 intl3_svn.dll、libdb42.dll、libeay32.dll、以及 ssleay32.dll 复制到<Apache_Root> 底下的 /modules/ 也可。
   2)添加
    <Location /svn>
    DAV svn
    # SVN Repository 的父目录
    SVNParentPath D:/
    AuthType Basic
    AuthName "Subversion repositories"
    AuthUserFile D:/owRepos/conf/passwd
    Require valid-user
    </Location>
    其中 D:/ 为以后建立repository 的父目录. 即我们会在d盘跟目录下建立repository代码仓库.
    AuthType Basic代表采用Basic方式进行认证,认证的用户名密码文件是D:/owRepos/conf/passwd,其中只允许认证的用户才能访问。 passwd文件的创建比较简单,利用Apache的bin目录下的htpasswd.exe来生成,比如 htpasswd.exe -c passwd xudl这个命令,就会在当前目录下创建一个passwd的文件,其中新建一个用户,用户名是xudl,在后来的命令提示里面会让你输入密码的,等密码得 到确认以后,一个passwd文件就完成了。把刚才的passwd文件复制到D:/owRepos/conf目录下,因为在刚才Location中有这么 一个配置AuthUserFile D:/owRepos/conf/passwd,所以把passwd文件放在了相应的位置。

3.建立代码库 Repos
    svnadmin create --fs-type fsfs d:/owRepos,(或svnadmin create --fs-type bdb d:/owRepos)然后就会建立了一个repos仓库。这个时候用浏览器输入http://127.0.0.1/svn/repos 以后,在正确输入用户名密码以后,就会看到一个SVN的list画面,这个时候仓库是空的,所以一个文件都没有。我们现在开始导入工程,采用如下的命令 svn import . file:///svn/repos --message "Initial repository" 就可以把当前的目录倒入到仓库中了,再用svn co file:///svn//repos    就可以把刚才倒入的souce给重新checkout出来了。
    在导入以后再用浏览器访问http://127.0.0.1/svn/repos ,然后就可以看到你刚才checkin的东西了。自此,我们的SubVersion配置初步完成。

相关推荐