LINUX服务器一台
使用yum安装方式,完成svn以及http的安装(当然你也可以自己下载包编译安装,这里yum安装比较方便)yum -y install mod_dav_svnyum -y install httpd
建一个目录,作为svn的存储目录#cd /#mkdir test#cd test#svnadmin create svn对svn目录进行授权(不授权的话在访问版本库创建目录时可能会报错)#chmod 777 -R svn确保防火墙已经关闭,或者将以下端口全部打开/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT/sbin/iptables -I INPUT -p tcp --dport 389 -j ACCEPT/sbin/iptables -I INPUT -p tcp --dport 636 -j ACCEPT/sbin/iptables -I INPUT -p tcp --dport 873 -j ACCEPT/sbin/iptables -I INPUT -p tcp --dport 8443 -j ACCEPT打开 /test/svn/conf下的authz文件,添加一个测试账号,比如:[/]ywyuan=rw* =
清空passwd的文件内容(清空,直接是空白)然后#cd /test/svn/conf,执行#htpasswd -c /test/svn/conf/passwd ywyuan接着输入两次密码完成配置这里如果要再加一个账号的话执行的是htpasswd -m而不是-c,否则会将原来的覆盖掉
进入/var/www/cgi-bin目录创建一个空文件,命名为ChangePasswd.ini,并粘贴以下内容:[path]authuserfile=/test/svn/conf/passwd(根据实际路径修改)logfile=/var/www/cgi-bin/ChangePasswd.log(根据实际路径修改)[setup]pwdminlen=6[html]title=SVN自助密码修改description=SVN自助密码修改yourname=用户名oldpwd=旧密码newpwd1=新密码newpwd2=确认新密码btn_change=修 改btn_reset=重 置 changepwdok=密码修改成功changepwdfailed=密码修改失败servererror=服务器错误,请联系管理员passmustgreater=新密码位数必须大于twopassnotmatched=两次密码输入必须相同entername=请输入你的用户名enterpwd=请输入你的密码errorpwd=你的密码不正确back=返 回
创建一个空文件,将命名为ChangePasswd.cgi,粘贴以下内容,并授权为755命令:chmod 755 ChangePasswd.cgi #!/usr/bin/perl -wuse strict;use CGI;my $time = localtime;my $remote_id = $ENV{REMOTE_HOST} || $ENV{REMOTE_ADDR};my $admin_email = $ENV{SERVER_ADMIN}; my $cgi = new CGI;my $pwd_not_alldiginal = "PASSWD CAN'T BE ALL NUMBERS";my $pwd_not_allchar = "PASSWD CAN'T BE ALL LETTERS";my $user_not_exists ="USER DOES NOT EXIST";my $file_not_found ="FILE DOES NOT EXIST,PLEASE CONTACT THE MANAGER"; my $authuserfile;my $logfile;my $pwdminlen;my $title;my $description;my $yourname;my $oldpwd;my $newpwd1;my $newpwd2;my $btn_change;my $btn_reset; my $changepwdok;my $changepwdfailed;my $oldpwderror;my $passmustgreater;my $twopassnotmatched;my $entername;my $enterpwd;my $errorpwd;my $back; &IniInfo; if ($cgi -> param()){#8my $User = $cgi->param('UserName');my $UserPwd = $cgi->param('OldPwd');my $UserNewPwd = $cgi->param('NewPwd1');my $MatchNewPwd = $cgi->param('NewPwd2'); if (!$User) {&Writer_Log("Enter no user name"); &otherhtml($title,$entername,$back);}elsif (!$UserPwd ) {&Writer_Log("Enter no OldPasswd"); &otherhtml($title,$enterpwd,$back); }elsif (length($UserNewPwd)<$pwdminlen) {&Writer_Log("Password's length must greater than".$pwdminlen); &otherhtml($title,$passmustgreater.$pwdminlen,$back);}elsif ($UserNewPwd =~/^\d+$/) {&Writer_Log("New Passwd isn't all diginal"); &otherhtml($title,$pwd_not_alldiginal,$back);}elsif ($UserNewPwd =~/^[A-Za-z]+$/) {&Writer_Log("New Passwd isn't all char"); &otherhtml($title,$pwd_not_allchar,$back);}elsif ($UserNewPwd ne $MatchNewPwd) {&Writer_Log("Two new passwords are not matched"); &otherhtml($title,$twopassnotmatched,$back);}else{if($authuserfile){#6open UserFile, "<$authuserfile" or die "open file failed:$!";while (
$description
WARNING:YOUR NEWPASSWD MUST MORE THAN $pwdminlen CHARACTERS,ADN BOTH CONTAIN NUMBERS AND LETTERS