最近从subversion站看到apache在处理webdav的bug得到解决(apache 2.2.4),并且apache2.2.X的ldap⽀持⽐2.0.X更加稳定,所以决定尝试在windows XP(or 2003)下安装subversion+apache使之⽀持ldap认证.环境: windows XP(or 2003), Windows AD,
  问题是subversion官⽅站上下载到的⼀个基于Apache 2.2.X的2进制包(svn-win32-1.4.4.zip), 在配合apache官⽅站下载的2.2.4版本上出错, 加载ldap模块后访问版本库的时候会发⽣runtime error.尝试了⼏种组合后,到能够正确编译安装subversion1.4.4+apache 2.2.4并使之⽀持ldap 和SSL的⽅法.
1.下载apache
2.2.4的source code.(httpd-2.2.4-win32-src.zip)
  2.下载apache 2.2.4的windows安装包.(with ssl或者no ssl的都可以).如果下载到with ssl的安装包, 是可以直接使⽤的,就是说,不⽤再⾃⼰编译apache了. 不过,其实后⾯编译subversion的时候,还是会编译apapche, 只是编以后的apapche⽤不着copy到安装⽬录去替换安装的⽂件.
下载apache3.下载 subversion1.
4.4的windows 安装包(svn-1.)
  4.下载 subversion1.4.4的source code(subversion-1.4.4.zip).
5.编译环境需要VC
6.0以及安装windows 2003 SDK.否则就没有的windows下ldap的SDK.
  6.编译过程可以参考subversion source code ⽬录下的install⽂件.按照⽂件⼀步⼀步做就可以了.⾥⾯说得很清楚, 我这⾥再说就是废话了.
  7.编译好以后, 先安装前⾯下载的apache 和 subversion的安装包,安装过程在另⼀篇⽂章中已经有说明.安装完以后先不要去配置f
  8.编译好subversion以后, 出同安装⽬录中bin⽬录 (如:c:\subversion\bin)下同名的⽂件覆盖到bin⽬录下.有⼀些apr的dll ⽂件名字可能略有差异, 后⾯会多出⼀个-1(如, libapr.dll, 可能对应的是libapr-1.dll), 也别忘了要覆盖两个so⽂件.
  9.这个时候就可以先设定不带ldap的版本库访问, 如果能够正常⼯作, 那么系统就算成功了.
  10.设置ldap.
  设置ldap的时候, 能先⽤⼀些ldap查看⼯具浏览⼀下你的windows domain ,以确定baseDN等等这些基本信息.⼀个⽐较好的⼯具就是LDAPbrowser.⽤它可以浏览Domain⾥⾯的LDAP对象.
  f的设置
  LoadModule ssl_module modules/mod_ssl.so
  LoadModule ldap_module modules/mod_ldap.so
  LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
  LoadModule dav_svn_module "C:/Subversion/bin/mod_dav_svn.so"
  LoadModule authz_svn_module "C:/Subversion/bin/mod_authz_svn.so"
  …………
  Include C:/Apache/Apache22/conf/f
  …………
  LDAPSharedCacheSize 200000
  LDAPCacheEntries 1024
  LDAPCacheTTL 600
  LDAPOpCacheEntries 1024
  LDAPOpCacheTTL 600
  DAV svn
  SVNParentPath c:/repos
  AuthBasicProvider ldap file
  AuthType Basic
  AuthzLDAPAuthoritative off
  AuthName "Subversion repository"
  AuthLDAPURL "ldap://yourIP:389/dc=nnn,dc=com?sAMAccountName?sub?(objectClass=*)" NONE
  AuthLDAPBindDN "someone@nnn"
  AuthLDAPBindPassword 111111
  AuthUserFile c:/repos/passwordfile
  AuthzSVNAccessFile c:/repos/authz
  # Satisfy Any
  Require valid-user
  SSLRequireSSL

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。