VisualSVN Server是非常方便好用的SVN服务器端软件,但有个问题,你在服务器端创建了用户名密码后,用户无法自己修改密码,据说VisualSVN的客户端可以修改用户密码,但客户端是收费软件。使用VisualSVN就是因为它是免费的,现在修改密码要收费,这我就不开心了。既然我是个技术男,我就要用我多年的技术,解决我的不开心。
本文不仅包含了如何给VisualSVN扩展:在线修改密码功能。在文章最后一部分,还包括了出错,如何排除错误,分析错误,解析错误的详细步骤,希望可以帮到有需要的朋友。
一、修改密码原理
要实现客户端修改密码,其实就是通过apache的cgi模块去实现,就是把数据提交到指定的地址操作。
本次操作需要用到ApachePasswd包,网上有很多apachepasswd的包,但是用了之后发现无法重启服务了,所以要找符合当前VisualSVN版本的包。我准备的附件在VisualSVN4.2.1和VisualSVN4.3.4版本中,测试可用。所以推测,此附件适用VisualSVN4的版本。
本文用到的相关软件以百度云盘的方式,分享出来如下:
链接:https://pan.baidu.com/s/1rJ9-cTWRH0X0-5MVLZ9b3w
提取码:feig
二、具体操作步骤
1、停止VisualSVN服务
因为要覆盖当前VisualSVN安装目录中的文件,不停止VisualSVN的话无法覆盖。
2、关闭VisualSVN当前窗口
此操作的目的,仍然是防止有进程占用
3、解压附件
把apachepasswd.zip解压出来,解压出的内容如下图:
未被解压的附件覆盖前,原始VisualSVN安装目录内容如下图:
把解压的所有文件覆盖到VisualSVN安装目录下,我VisualSVN的安装目录是:C:\Program Files\VisualSVN Server,覆盖后的VisualSVN安装目录内容如下图:
可以看到,在VisualSVN安装目录多一个cgi-bin目录。VisualSVN增加在线修改密码功能,就是通过apache的cgi模块实现的。
4、修改httpd-custom.conf
httpd-custom.conf这个文件,它在VisualSVN安装目录的conf子目录中。
5、修改cgi模块中的svnpass.ini文件
svnpass.ini这个文件,它在VisualSVN安装目录的cgi-bin子目录中。
修改svnpass.ini时,只需要修改pwdFilePath的路径即可,要注意修改成你自己的Repositories路径。Repositories的路径设定,在安装VisualSVN时指定的,我的Repositories路径如下图:
修改svnpass.ini文件中的pwdFilePath
6、重新启动VisualSVN服务
从开始菜单中,找到最近添加,即可快速找到VisualSVN,如下图:
三、测试在线修改密码
1、输入访问地址
访问地址:http://ip地址/passwd.html
此处的ip地址写你的VisualSVN中配置的IP,如下图所示:
我的最终访问地址:http://192.168.8.100/passwd.html
2、修改密码操作
3、使用新的密码访问SVN服务
在浏览器中,记录了之前SVN的访问记录,这次登录使用了新的密码,所以浏览器给出提示:要更新密码。
至此,为VisualSVN扩展在线修改密码功能就结束,如果你操作的过程和我一样顺利,恭喜恭喜啊!
但是有一些人操作就不顺利了,在全配置完成后,征订VisualSVN服务时,会报HTTP的错误,别着急往下接着看。
四、扩展
1、报错
做完以上所有操作,重启VisualSVN报http错误如下:
点击 Start Event Viewer... 显示日志如下:我去提示的目录中看了,对应的mod_alias.so文件也在
vsvnhttpsvc.exe: Syntax error on line 45 of C:/Program Files/VisualSVN Server/conf/httpd.conf: Cannot load bin/mod_alias.so into server: \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3
2、查看当前操作系统默认安装组件
3、安装SSMS
此处我安装的SSMS版本是18.6
从安装界面提示,可以看出来,在安装SSMS的同时,在本机安装了好多其它组件。
4、查看当前操作系统已安装组件
可以看到安装SSMS时,自动安装了Microsoft Visual C++相关的组件
5、重启VisualSVN
重启VisualSVN也正常了