事件:

       下午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