几天来配置svn的记录
工作背景:
公司内部要对原有的svn进行重新的管理,同时希望将原来使用cvs,vss等管理工具统一转移到svn的管理中.同时因为原来svn的管理方式就是通过最简单的apache+svn通过 apache 的htpasswd生成md5加密的文件对人员进行管理,权限也是通过文件形式进行管理.
存在问题:
现在存在的问题有2点.
第一,使用原来的管理方式,对人员的管理不是很方便(因为公司内部svn用户名都是使用员工号码.这样管理起来比较麻烦.无论是在录入,管理,还是查询的时候,管理员都要借助另外的人员管理系统.,)
第二,由于svn的管理人员不是专业的管理人员.所以在添加svn用户,分配权限的时候由于操作的不规范.就经常的导致svn崩溃.公司的工作效率底下(后来查找原因是因为在分派中文权限utf8字符集的问题)
公司的意见:
所以公司决定趁着这次对svn的统一整理将这些问题统一的解决.
查找了些网上的资料.认为对于上面的问题完全可以解决.
第一个问题,我们可以使用apache中集成的mysql认证管理模块将人员管理起来,同时还可以将公司人力资源的系统管理结合起来,完成一个人员的管理系统.(公司内部还有一些内部使用的系统,比如需求人员用的需求管理工具.通过这个mysql数据库表完成对所有的内部系统进行人员管理)
第二个问题,决定找一个第三方的图形界面工具来完成这项任务.最开始的时候打算通过对mysql的人员和权限管理,以mysql数据库为基础.通过使用java,ruby的语言.进行开发.
在后来的实践中,遇到了一些问题.没有完全象我想的哪么简单.于是svnmanager出现了(现在还有实现这个功能..正在努力.~~~~(>_<)~~~~ ).
开始工作:
按照 http://aone.iteye.com/blog/97352 的配置方法.很容易的完成了上面的配置.当然也发生了一些小问题.
第一个问题.
我使用的是apache2.26的版本.使用svn1.4的mod_authz_svn.so和mod_dav_svn.so出现了版本不兼容.我将svn服务器端升级了版本.使用的是 svn1.4.6.重启apacheè通过
第二个问题.
按照上面的配置.全部完成.在最后测试的时候,使用数据库里的svn用户登陆.老是失败.于是我也产生了对svn用户登陆的密码是不是md5加密格式的怀疑.将原来的md5的密码复制到数据库中.还是失败.最后查看apache的error.log发现了
” Client does not support authentication protocol requested by server; consider upgrad”
So.更换数据库到更高的版本.虽然我使用的是mysql5.但是还是决定将小版本从18升级到了22.重启apache重试,还是一样的.
最后在晚上找到了问题的原因.通过下面的sql
“set password for 'root'@'localhost' =old_password('root');”
Root为用户名,localhost是mysql服务器所在ip.最后的root是数据库的密码.
问题è通过
上面的配置总算是通过了.我最后将权限控制的文件也加上
AuthzSVNAccessFile “权限文件地址”
通过测试.是可以控制用户的权限.可是当用户没有权限的时候.出现了 403.不知道这个提示能不能通过我们来设置.因为这样的提示不是很友好.和错误的提示是一样的.很容易让人误解.最好是可以设置.比如说”您当前没有权限,请找管理员核实您的权限!”给人一个比较友好的提示.
安装svnmananger 参照
Windows XP(SP2)下Svnmanager和Bugfree安装指南
大家可以去google上下载.
虽然按照上面的配置.但是最后还是没有实现.待我慢慢的研究…
通过这段时间的研究.我总结了下以上对svn的配置(也不知道对不对,欢迎大家批评.).
配置apache+svn+mysql 主要分为3个步骤
第一.通过apache中的webdav方式执行svn的资源库.
# SVNParentPath指向svn资源库的上一级目录# SVNPath "E:/svndemo/repository"
# SVNPath指向svn资源库目录.
第二.使用 apache htpasswd生成md5方式加密的密码文件.通过AuthUserFile(密码文件)和AuthUserFile(目录权限)来控制.
第三.加上mysql代替AuthUserFile文件.
Require valid-user
AuthMySQLHost localhost
附件中加上 apache配置的 httpd.conf以及权限认证的文件auth