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

相关日志:

  1. MySQL集群配置详细案例
  2. 比较两个库中表的增减以及表定义的变化
  3. Smarty基本语法-控制结构
  4. 双管理节点集群配置范例
  5. Smarty基本语法-变量

评论已经关闭