Ubuntu+apache+svn配置备忘
此配置按照ubuntu登录用户为administrator,项目名为hwjn配置,如需配置其他项目,修改替换即可。userName = administrator
projectName = hwjn
sudo apt-get install subversion sudo apt-get install libapache2-svn sudo addgroup subversion sudo usermod -G subversion -a www-data sudo usermod -G subversion -a administrator sudo mkdir /home/svn cd /home/svn sudo svnadmin create hwjn sudo chown -R administrator:subversion hwjn sudo chmod -R g+rws hwjn echo '<Location /svn/hwjn> DAV svn SVNPath /home/svn/hwjn AuthType Basic AuthName "pro1 Subversion Repository" AuthUserFile /home/svn/hwjn/conf/passwd AuthzSVNAccessFile /home/svn/hwjn/conf/authz Require valid-user </Location>' | sudo tee -a /etc/apache2/apache2.conf htpasswd -cb /home/svn/hwjn/conf/passwd super super htpasswd -b /home/svn/hwjn/conf/passwd admin admin echo "[/] super = rw admin = rw" | tee -a /home/svn/hwjn/conf/authz 操作需要重启apache: sudo service apache2 restart sudo chmod -R g+rws hwjn 创建目录结构:sh -c | cat list.txt svn import -m " " /home/administrator/pro file:///home/svn/hwjn 在线修改密码: sudo mkdir -p /home/www/hwjn/ echo ' Alias /hwjn/ "/home/www/hwjn/" <Directory "/home/www/hwjn/"> AuthType Basic AuthName "svntools repository" AuthUserFile /home/svn/hwjn/conf/passwd Require valid-user </Directory> ' | tee -a /etc/apache2/apache2.conf sudo chown -R administrator:subversion /home/svn/hwjn sudo chmod -R g+rws /home/svn/hwjn 操作需要重启apache: sudo service apache2 restart echo ' <? $auth_user = $_SERVER["PHP_AUTH_USER"]; $auth_pass = $_SERVER["PHP_AUTH_PW"]; ?> <html> <head> <title>Change SVN Password</title> </head> <body> <? if ($_REQUEST["action"] != "modify") { ?> <script language = "javaScript"><!-- function check_and_submit(myform) { var oldpass = myform.oldpass.value; var newpass = myform.newpass.value; var repeatpass = myform.repeatpass.value; if (oldpass == "") { alert("Old password is empty!"); myform.oldpass.focus(); } else if (newpass == "") { alert("New password is empty!"); myform.newpass.focus(); } else if (repeatpass == "" || repeatpass != newpass) { alert("Repeat password is empty or not same as new password!"); myform.repeatpass.focus(); } else myform.submit(); } // --></script> <form method="post"> <input type="hidden" name="action" value="modify"/> <table> <tr> <td>User Name</td> <td align="left"><?=$auth_user?></td> </tr> <tr> <td>Old Password</td> <td><input type="password" size=20 name=oldpass></td> </tr> <tr> <td>New Password</td> <td><input type="password" size=20 name=newpass></td> </tr> <tr> <td>Repeat Password</td> <td><input type="password" size=20 name=repeatpass></td> </tr> <tr> <td colspan=2> <input type="button" value="Change" onclick="check_and_submit(this.form)"> <input type="reset" value="Reset"> </td> </tr> </table> </form> <? } else { $old_pass = $_REQUEST["oldpass"]; $new_pass = $_REQUEST["newpass"]; if ($old_pass != $auth_pass) $msg = "Old password is wrong!"; else { # change here $cmd = "htpasswd -b /home/svn/hwjn/conf/passwd $auth_user $new_pass"; system($cmd, $res); if ($res == 0) $msg = "Change password for [$auth_user] succeed! Please login again."; else $msg = "Change password for [$auth_user] failed! Please contact server administrator."; } ?> <script language="javaScript"><!-- alert("<?=$msg?>"); window.location.href="<?=$_SERVER["PHP_SELF"]?>" // --></script>} <? } ?> </body> </html>' | tee -a /home/www/hwjn/index.php