设为首页 收藏本站
查看: 935|回复: 0

[经验分享] Windows server 2003 下Appache 和 Subversion 进行双向认证(一)

[复制链接]

尚未签到

发表于 2016-5-19 11:02:44 | 显示全部楼层 |阅读模式
  去年转到Subversion下后,确实尝到了Subversion的不少甜头,那个时候开发比较集中,绝大部分开发人员都不进行异地开发,因而一直使用Subversion 自带的svnserve服务器运行版本服务。随着公司业务的发展软件开发人员开发场地的分散,版本问题突显,为了解决这个问题,我不得不停下手头的工作研究下如何配置到外网上去。谁让我编程以外还得处理配置管理问题呢?!!经过一番Google和Baidu,总算搞定。做这记录在这里备忘.
  本文阅读者必须已经能够熟悉使用SVN及理解版本库之类配置管理的基本概念,这里不对SVN安装配置这些东西作说明,官方文档已经说的够清楚了.
以下是我所用的资源信息:
    OS                  : Windows Server 2003
    SVN               :   svn-1.4.6-setup.exe
    HTTP Server :   apache_2.2.6-win32-x86-openssl-0.9.8e.msi
   Text Editor      :   gvim72.exe
  一. Apache 服务器安装及配置
      到apache官方http://archive.apache.org/dist/httpd/binaries/win32/下载apache服务器 2.2.6(包含openssl)的版本,一定要2.2.6以上的版本,第一次我下的2.0的结果累死也不对,Google了下才发现svn1.4.6和apache 2.0的版本结合不起来……,当然可以不下含用openssl的版本,不过你可能需要到http://www.openssl.org/ 下载openssl并安装,或许要编译,我比较懒,没有去弄,也许你可以试试.
  有Windows操作经验的人都会安装,我安装的路径是默认的C:\Program Files\Apache Software Foundation\Apache2.2,反正随你便.安装成功后,服务器会自动启动,如果没有启动,检查端口80是否已被占用。你也可以在安装目录下的bin文件里找到ApacheMonitor.exe启动服务,再出错,就打开/logs/下的日志看看去Google 一下,我已经够啰嗦的了。
  验证下:浏览器地址栏中输入:http://localhost ,你将会看到 It works!. Apache就算安完啦!

二. 让SVN运行起来

     网上很多说先安装Apache ,再安装svn,SVN会自动配置到Apache里,但是对于我这种SVN已经很好地运行着的情况,我可不愿把它卸载掉再重新装起来,吃饱了撑着!幸好svn官方把这种情况考虑到了,那就照着说明来吧。Let’s Go!
     a) 告诉它要做什么
             Apache并不知道它将做什么样的服务,我们得告诉它应该运行什么.
             找到Subversion的安装目录,我的在C:\Program Files\Subversion\下面,进入bin目录。把下面的
         mod_authz_svn.so, mod_dav_svn.so,libdb44.dll拷贝到Apache安装目录的conf文件夹下面(例如我的
         就是C:\Program Files\Apache Software Foundation\Apache2.2\conf下).
        用文本编辑器(比如Ultraedit 32, Editplus,最好别用写字板和记事本.我最近对Linux下的工具比较感兴
         趣,所以用的是NT下的gvim,根linux下的基本一样,很好用而且免费)打开Apache安装目录下的
        /conf/ httpd.conf.找到
                #LoadModule dav_module modules/mod_dav.so           
                #LoadModule dav_fs_module modules/mod_dav_fs.so   
         两行,去掉前面的注释符#, 然后在这一系列LoadModule的最后面加上
               LoadModule dav_svn_module modules/mod_dav_svn.so    
               LoadModule authz_svn_module modules/mod_authz_svn.so
         不一定非要在最后,便这两行必须在mod_dav.so的后面,但是我建议你放到后面好些。
         这样Apache就会知道在启动时加载svn的模块与身份认证模块了
       b) 我在哪里
               前面只是告诉Apache要做什么,但是仓库在哪里,Apache一点也不知道,因而你还得告诉它你的配
          置库在哪个位置.
               还是在httpd.conf里,到最后一行,加入
                    <Location /svn>                               
                          DAV svn                                     
                          SVNParentPath D:\svnServices  
                    </Location>                                     
            保存,重启服务器.
  作点说明:
                <Location /svn>中的/svn标识了svn服务的根路径.表示你所有项目库服务都基于http://ip:port/svn/
          下的./svn命名随你喜欢
               DAV svn 指示DAV模块,老实说,现在我也不清楚它的具体作用,不用变它
               SVNParentPath , 指示SVN仓库父目录的所在地,相当于svnserve -d -r D:\svnServices 中的  
          -r 参数.

               另外,Subversion与Apache版本不一致时,就是在这里重启不了,害我重查了几次配置文件和说
          明文档。
  验证一下:
               如果你的配置管理库和我采用的管理方式有着一样的结构
                      / svnServices /repse1
                     / svnServices /repse2
               那么你就应该可以通过http://localhost/svn/repse1 看到repse1的源码库目录,那么恭喜你,
          基于http 的 svn服务器已经正确运行了.

        c) 别高兴太早-安全问题
                   随便找台开发机,checkout, edit, commit, update,看下吧,肯定吓一跳,随便哪个人都可以轻
           松浏览,修改代码库,想想把它放在公网上的后果吧!!
  那么让我们现在开始处理用户身份的问题,其实很简单.
                   进入到Apache安装目录,使用htpasswd.exe 创建密码文件。htpasswd命令格式是:  
                           htpasswd [控制参数] 密码文件 用户名
                    由于是第一个用户,我们使用如下命令: htpasswd –cm uservalidate username1
             回车后会要求输入该用户密码,这条命令意思是创建uservalidate文件 –c 表示
            密码是使用MD5计算散列值 –m 控制,可以写成 –cm,并且加入用户username1.
             如果还需要加入其它用户,则使用命令 htpasswd –m username2加入就可以
  把生成的密码文件 uservalidate 拷贝到一个目录中,只是为了方便管理,放到哪里都可以。
            我的放在了C:\svnValidate 下面。记住这个目录地址,下面要用到.
  编写授权策略文件,这个文件同样随便放哪个目录。为了方便管理,我的仍然放在了
              C:\svnValidate 下面,命名为accessValidate,你也可以命一个你喜欢的名字。这个文件的编写和svn
             的授权文件编写方式基本一样。所以不要担心。如可以指定源码仓库
                          [reps1:/branches/calc/bug-142]
                          harry = rw
                          sally = r

                          [reps2:/]
                          sally = rw
                          @ everyone = r #指定组
  还可以指定组
                           [groups]
                           calc-developers = harry, sally, joe
                           paint-developers = frank, sally, jane
                           everyone = @cal-developers, @paint-developers
              
               也可以指定匿名用户:
                           [/]
                           * = r
               熟悉吧,太相似了,配好你自己的吧!详细的可以参考《svn中文手册》的6.4.4.2和6.4.4.3节.
  然后打开httpd.conf文件,找到前面配置的<Location /svn/>小节,在里面写入配置信息,结果看
              起来像下面的一样:
                        <Location /svn>
                              DAV svn
                              SVNParentPath D:\svnServices

                              AuthzSVNAccessFile C:\svnValidate\svnAccess     # 授权策略文件路径
  Require valid-user                 # 要求验证客户端身份
  AuthType Basic #基本认证方式
                             AuthName "xxx公司-源码服务器"      # 密码输入框的提示信息
                             AuthUserFile C:\svnValidate\userValidate # 用户和密码信息文件
                        </Location>
  OK,保存配置,重启服务器.
  验证一下:
                   打开http://localhost/svn/resp1 , 怎么样?要求输入密码了吧,想得到源码?哼哼!
                   权限策略配好了,好好管理你的源码库吧。
  下一部分写下如何通过SSL进行双向认证,加强我们的源码库的保护。虽然都在提倡开源,
              但……适合下我们的国情嘛!

                没时间写了,待续…….


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-219093-1-1.html 上篇帖子: Win XP/2003的预读取文件 下篇帖子: 当使用 Windows Server 2003 中添加或删除程序 " 消息收到 " 无法加载安装库 wbemupgd.dll " 错误
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表