目的:
可以通过apache记录svn操作相关日志,增加安全性
apache2+svn1.6,svn+apache文档与svn文档安装无差异,只是在于多安装一个apache以及多了apache中的配置.
1.安装相关包
yum install httpd subversion cronolog
cronolog[日志截获指令,在lighttpd日志中有介绍]
2.建立一个svn库
mkdir -p /www/svndata/
svnadmin create /www/svndata/MY9
[以上配置可以与svn安装篇一致,即直接将svn安装上,apache只是起到一个http支持.]
3.配置apache
vi /etc/httpd/conf/httpd.cnf
<VirtualHost *:8080>
ServerAdmin [email protected]
<Location /svn>
DAV svn
SVNPath /www/svndata/MY9
AuthType Basic
AuthName “svn repos”
AuthUserFile /www/svndata/MY9/conf/passwd #可以将这两个改成与svn配置时一致目录
AuthzSVNAccessFile /www/svndata/MY9/conf/authz #可以将这两个改成与svn配置时一致目录
Satisfy Any
Require valid-user
</Location>
ErrorLog /www/var/log/httpd/error.log #目录可以自己行定义
CustomLog “|/usr/sbin/cronolog /www/var/log/apache2/%Y_%m_%d.access.log” combined #[日志截获命令可以通过whereis查看,再写]
</VirtualHost>
#上面日志使用cronolog进行分割,每天1个,svn相关操作会记录到日志文件
修改/www/svndata/MY9该仓库下的conf下的svnserve.conf文件,
修改为:
anon=read
auth=write
password-db=passwd
4.删除默认的dav_svn.conf
/etc/httpd/mods-available/dav_svn.conf
/etc/httpd/mods-enabled/dav_svn.conf
5.为http访问增加用户
htpasswd -c /www/svndata/My9/conf/passwd yingzi
添加多个用户,这时不需要-c选项
htpasswd /www/svn/web/conf/passwd shengchao
如果需要使用到sudo时,增加如下2行,不用到的话,无视
vi /etc/sudoers
%www-data ALL=(ALL) NOPASSWD: /usr/bin/svn
%www-data ALL=(ALL) NOPASSWD: /bin/chown
6.目录权限控制
vi /www/svn/web/conf/authz
[groups]
admin = yingzi
opx = yingzi,shengchao
idc = shengchao
[/]
@admin = rw
* =
####
[/MY9/aa]
@idc = rw
* =
[/MY9/bb]
@main = rw
@idc = rw
* =
#####
7.重启apache
service httpd restart
svnserve -d -r –port=8888 /www/svndata/MY9
增加sudo权限,不需要输入密码
9.使用svn
svn checkout地址 http://ip:8080/svn/
为使用http://访问时中密码如下
htpasswd /www/svndata/My9/.passwd poweryingzi 回车之后需要输入两次密码即可
以后通过http访问则使用poweryingzi