一,安装软件:

安装apache

#yum  install httpd

安装subversion

#yum install subversion*

安装需要的模块mod_dav_svn

#yum -y install mod_dav_svn

二,创建版本库并开始配置svn

 1,创建版本库

  创建目录结构

 #mkdir -p /var/svn              注:/var/svn SVN的库存放目录     /var/svn/repossvn的库根/

2.运行创建版本库的命令,指定数据存储为 FSFS,如果要指定为 Berkeley DB,则将 fsfs 替换为 bdb
# svnadmin create --fs-type fsfs/var/svn/repos

/var/svn/repos/conf/passwd  是用户名密码文件,如用http方式访问svn则此文件无用

[users]

用户名 = 密码

/var/svn/repos/conf/svnserve.conf 是主配置文件

[general]
anon-access = none
auth-access = write
password-db = passwd     #用户名密码文件位置
authz-db = authz          #权限文件位置


3,可用可写的svn账户提交库内容,也可以创建目录结构并导入项目,

#svn import /etc/svn/tmp/ file:///var/svn/repos/--message "init"

启动svn

#svnserve -d -r /var/svn/

注:关闭防火墙,进行测试


三,配置apache 实现apache+svn的结构

1,第一步要给svn的源目录修改权限

#chown -R apache:apache /var/svn

apache http的启动用户 

2,查看apache支持的模块vim /etc/httpd/conf.d/subversion.conf

LoadModule dav_module modules/mod_dav.so
LoadModule dav_svn_module modules/mod_dav_svn.so

并添加相应的apache配置

<Location /svn>      #这里的/svn是网页访问时http://ip/svn(这里)/库名
  DAV svn
  SVNParentPath /var/svn    #父目录
 AuthTypeBasic
 AuthName "Auth"
 AuthUserFile/var/svn/passwordfile      #密码文件位置
 AuthzSVNAccessFile /var/svn/repos/conf/authz   #权限文件
 Requirevalid-user
 ErrorDocument404 default
 </Location>


3,授权访问用户:

给密码文件授权

#chown apache.apache passwordfile

Apache 提供了一个工具 htpasswd,用于生成用户文件,可以在 Apache 的安装目录下找到。具体使用方法如下:-c 创建新的文件

#htpasswd –c /var/svn/passwordfile username

如果该文件已存在则需要加-b,更新用户密码也用这个

#htpasswd –b /var/svn/passwordfile username passwd

 

#service httpd restart

 

IE访问svn url http://192.168.40.149/svn/repos/

出现用户提示说明成功

3.目录访问控制

#vim /var/svn/repos/conf/authz      策略文件,详细的权限控制可以在这个策略文件中指定

[/]  是库根目录    [/test]  为库下文件夹    @users  为users组


网页自主更改密码

先安装PHP

#yum install php

把两个脚本放在apache主页目录/var/www/html/

#vim gaimi.html

把以下内容粘贴进去

<html>
<body>
<form action="http://59.151.109.141/passwd.php?"method="get">
<p>确认用户名: <inputtype="text" name="user" /><p>
<p>确认原密码: <inputtype="text" name="oldpass" /><p>
<p>新密码: <inputtype="test" name="passwd"/><p>
<input type="submit"value="修改" />
</form>
</body>
</html>

然后

#vim passwd.php

把以下内容粘贴进去

<?php
$username = $_GET["user"];
$oldpass = $_GET["oldpass"];
$passwd = $_GET["passwd"];
$passwdfile="/var/svn/passwordfile";
$command='"htpasswd" -b'.$passwdfile." ".$username." ".$passwd;
system($command, $result);
if($result==0){
   print("密码已修改");
}
else{
   print("修改失败,请重试");
 }
?>

然后从网页访问修改密码 http://ip/gaimi.html