一,安装软件:
安装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/repos是svn的库根/
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