今天下午,我想在自己的服务器上面架设SVN服务器,采用的是与Apache结合的方案,简单地通过htpasswd创建验证文件验证用户身份,可是这么简单的一个东西居然让我弄了好久好久不成功,服务器平台是CentOS5.6,主要参考文章有下面这一些
CentOS官方维基:http://wiki.centos.org/HowTos/Subversion
http://www.if-not-true-then-false.com/2010/install-svn-subversion-server-on-fedora-centos-red-hat-rhel/
为了强化我的记忆我这里也自己再简单描述一遍
1.安装mod_dav_svn,subversion这两个软件包 2.往apache配置文件挂入subversion的配置文件 3.通过htpasswd创建用户身份验证文件 4.通过svnadmin建立代码仓库
大部分教程都只写了这四步,然而问题产生了。
第一点,服务器的web套件我采用的是军哥的lnmpa套件,这个套件的apache安装位置为/usr/local/apache
然而在安装subversion的时候我一个不小心让它连带升级了httpd,结果不仅覆盖了我原有的配置,而且让我好长一段时间在第二步:往apache配置文件挂入subversion配置这里错误的将配置文件挂在了/etc/httpd那个apache里面,而后来我又重新编译了lnmp原有版本httpd并且恢复了配置。这个明显的导致了subversion配置没有被读取到,所以我测试访问的时候一直出现403错误。后来一次不经意的晃神,我在403页面发现输出的服务器信息没有dav和svn的信息,我才意识到我的apache路径不是这个。
第二点,上面说了由于apache被更新等问题,结果那个mod_dav_svn模块也被装到了/etc/httpd/modules里面去了,这个倒简单,直接复制回来正确目录就好了,然而模块放好配置挂好之后,重启httpd发现出现undefined symbol: dav_register_provider报错,而再经过搜索,原来要启用dav模块,apache的编译参数里面还要有–enable-dav,而看了下目前服务器上apache就是没有启用这一项,所以需要重新编译apache。
经历了这些之后,apache svn的环境总算是搭起来了,后续还应该注意设置用户的权限。