首页 > 代码库 > svn的坑 想填的可以自己参考下

svn的坑 想填的可以自己参考下

  已经搭建好了svn 由于没有权限控制 被误删 结果又重新来一次   

    今天已经踩了无数的坑 无论是lanmp lnmp lamp的一键安装包,的确不推荐线上用,由于项目紧,就偷懒了,结果无数的坑 无数的添,不论是ssl认证还是 页面加载gzip压缩级别,疑惑是虚拟主机,跟开发代码的融合总是出现很大的问题,还好对于apache结构较熟悉。 不说了,最后一个坑就是svn 更新通过脚本提交后 直接在svn更新到线上,最后吐槽一下,谷歌,苹果校验,尤其是ipad appstore真心尼玛操蛋,还有某些领导,创业公司,还是不要去的好,没有流程,没有模板,坑填不满,最奇葩的是,不小心你可能接触的测试环境就是10多PC集群,这就比较尴尬了.....\\\\


  坑来了,请继续填。。。。


yum install httpd            //现有环境不用 
yum install  httpd-devel        //用于开发Apache模块 
yum install  subversion 
yum install  mod_dav_svn   //Subversion与Apache之间的接口(通过它,Apache就可以访问版本库,可以让客户端也使用HTTP的扩展协议 WebDAV/DeltaV进行访问) 
yum install  mod_auth_mysql   //这一项用于用户身份验证,在网上有资料说貌似这个mod_auth_mysql没得配置访问权限的 只有用户设置,建议不装,用htpasswd就可以,在这里我没有装,我还是打算用htpasswd,可能下回会试试。 
验证svn模块(mod_dav_svn)是否正确安装 
ls /etc/httpd/modules | grep svn 
系统提示: 
mod_authz_svn.so 
mod_dav_svn.so 
验证安装: 
svn --version 
显示如下表明正确安装 
===========================================
svn,版本 1.4.2 (r22196) 
   编译于 Aug 10 2009,18:00:04

Copyright (C) 2000-2006 CollabNet. 
Subversion is open source software, see http://subversion.tigris.org/ 
This product includes software developed by CollabNet (http://www.Collab.Net/).

可使用以下的档案库存取 (RA) 模块:

* ra_dav : 通过WebDAV (DeltaV) 协议访问档案库的模块。 
  - handles ‘http‘ scheme 
  - handles ‘https‘ scheme 
* ra_svn : 使用svn网络协议访问档案库的模块。 
  - handles ‘svn‘ scheme 
* ra_local : 访问本地磁盘的档案库模块。 
  - handles ‘file‘ scheme 
============================================
第二步:创建SVN库和项目 
mkdir /home/svn          //创建SVN库 
svnadmin create /home/svn/projcet          //创建项目 
第三步:添加组及组员权限 
groupadd subversion     //创建一个叫subversion的组为拥有仓库所在的目录 
usermod -G subversion -a apache   //将自己和Apache 用户加入组成员中 
查看:more /etc/group | grep subversion 
系统提示:subversion:x:500:apache 
第四步:修改项目权限 

chgrp -R subversion /home/svn/project 
chmod -R 777 /home/svn/project

这里最好根据自己的安全需求配置相应的权限,我这是试验环境所以直接给了777

第五步:配置httpd 
编辑httpd.conf 
vim /etc/httpd/conf/httpd.conf 
查看有没有LoadModule dav_svn_module modules/mod_dav_svn.so这一行,如果没有就添加上为了使客户端能够通过Apache来访问SVN档案库,Apache需要加载mod_dav_svn模块。如果Apache是按照与预设目 录安装的,mod_dav_svn 模块应该会安装在 Apache 安装位置 (默认路径是 /etc/httpd/) 的 modules 子目录内。同时在Apache的配置文件httpd.conf(默认路径为etc/httpd/conf/)中已经使用 LoadModule指令加载了该模块(如果没有,手动添加)注意这个指令必须出现在其它的 Subversion 相关指令之前。还要加载mod_authz_svn.so模块 
例如: 
LoadModule dav_svn_module modules/mod_dav_svn.so 
LoadModule authz_svn_module modules/mod_authz_svn.so 
一般来说apache2都己正常加载了这两个模块 
启动httpd 
/etc/init.d/httpd start 
打开浏览器查看是否能看到apache的页面(注意如果开了防火墙记得开放80端口) 
第六步:配置SVN 
编辑subversion.conf 
vim /etc/httpd/conf.d/subversion.conf 
按以下代码更改(栗红为修改的代码): 
LoadModule dav_svn_module modules/mod_dav_svn.so 
LoadModule authz_svn_module modules/mod_authz_svn.so 
  
<Location /svn> 
DAV svn 
SVNParentPath /home/svn 

#   # Limit write permission to list of valid users. 
#   <LimitExcept GET PROPFIND OPTIONS REPORT> 
#      # Require SSL connection for password protection. 
#      # SSLRequireSSL 

AuthType Basic 
AuthName "Authorization Realm" 
AuthUserFile /home/svn/passwd 
Require valid-user 
#   </LimitExcept> 
</Location> 
第七步:建立用户 
# htpasswd -c /home/svn/passwd test         //第一次添加用户使用参数“-c”以后再添加就不用了 
系统提示: 
New password:                        //输入新密码 
Re-type new password:         //确认密码  
Adding password for user test 
重启apache                                     
通过web页面访问,弹出用户登录验证,访问成功 (注意开放防火墙的3690端口)
2016/11/2515:22 
=========试验过程中出现的问题记录============== 
配置完httpd.con后重启apach过程中提示出错 
/etc/init.d/httpd restart 
系统提示: 
启动 httpd: 
[Mon Jan 31 18:45:03 2011] [warn] module dav_svn_module is already loaded, skipping 
[Mon Jan 31 18:45:03 2011] [warn] module authz_svn_module is already loaded, skipping 
[Mon Jan 31 18:45:03 2011] [warn] module dav_svn_module is already loaded, skipping 
[Mon Jan 31 18:45:03 2011] [warn] module authz_svn_module is already loaded, skipping 
了看样子不太对,提示是模块己加载过,现在己是重复了,仔细查了一下,在/etc/httpd /conf.d/subversion.con内的确己包含了dav_svn_module和authz_svn_module这两个模块,我是重复加入 了删除……,但我在httpd.conf里确实没有看到这两个模块加载的语句,但提示说是己加载过,只好也删除,重启正常,回到目录里去查看,在etc/httpd/conf.d/module/下的确是存在这两个模块,但httpd.conf里也确实是没看到己加载的语句,哪么到底在哪儿加载了呢?2011-02-21 

打开web输入http://10.10.40.196/svn/projcet提示: 
The requested URL /svn/project was not found on this server. 
找不到服务,但apache的页面可以打开,应该是在/etc/httpd/conf.d/subversion.conf设置


本文出自 “江湖笑笑生” 博客,请务必保留此出处http://hashlinux.blog.51cto.com/9647696/1876723

svn的坑 想填的可以自己参考下