事件:
下午16点左右,软研自建svn服务器无法访问
事故原因:
由于搬家,作为权限认证的LDAP服务器(部署在工作机上)被关停回收
解决办法:
被关停的LDAP服务器只是一台备份机,所以讲相关LDAP认证重新配置到残留的LDAP服务器(云基地地下机房存放)即可
作废的LDAP服务器IP:ldap://x.x.x.x:xx
可用的LDAP服务器IP:ldap://x.x.x.x:xx
关于svn服务器重新启动的过程
在还没有发现是因为LDAP服务器问题时,尝试对svn服务器重新启动,结果有不少坑,在这里记录一下合理的重启svn服务过程,为后续配置留作参考
1.svn服务器x.x.x.x,用户名密码保密,代码仓库路径为/home/data/svn_server/repos
2.svn服务采用的是svnserve ,重启可以采用
service svnserve restart
或者
service svnserve stop
svnserve –d -r /home/data/svn_server/repos
其中-d表示服务为init.d类型(注意和inetd 类型的服务区分)
-r表示svn的根目录
正常启动后可以看一下3690端口(svn默认端口)是否被绑定
netstat -tnlp
3.启动http服务
在我们启动完svnserve后,其实采用svn://服务器IP/ 的格式已经可以用了,单实际我们的svn是和http服务(采用的Apache服务)结合使用,这样就可以通过http协议来访问svn的资源了
在这台机器上,部署了两套Apache,分别是
/usr/local/apache/bin/httpd
和
/usr/sbin/httpd
其中系统的init.d目录下采用的是
而svn正真依赖的Apache是/usr/local/apache/bin/httpd,所以我们不能采用service命令或者进入init.d操作httpd的启动脚本
正确方式是进入
/usr/local/apache/bin/
运行 ./apachectl start
如果启动失败提示端口被占用,可以尝试杀一下httpd进程:killall httpd
正确运行后可以看到80端口已被绑定
netstat -tnlp
到此,svn相关服务整个重启完毕!
4.修改Apache中关于ldap的配置
前文也提到了,这次的问题本质是ldap服务器的问题,所以还需要修改Apache相关的配置,让他可以正确的获取认证信息
配置所在路径:/usr/local/apache/conf/httpd.conf (修改前务必备份!!!)
本次主要修改如下,配置其它含义请自行查阅
修改完毕后重启一下Apache
/usr/local/apache/bin/apachectl restart
关于svn和Apache的结合相关配置可以参考:
http://www.ibm.com/developerworks/cn/java/j-lo-apache-subversion/
谢谢
12/30/2015