yum -y install subversion httpd mod_dav_svn 使用yum命令安装svn(subversion),httpd(apache服务器)和svn在apache上的插件(mod_dav_svn)
安装过程
安装完成
rpm -q subversion 查看svn安装信息
svnserve --version 也可以使用svnserve 命令加选项的方式查看svn版本信息
rm -rf /opt/svndata 先删除svndata这个目录和它的子目录
mkdir -p /opt/svndata/oa 递归方式创建svn数据仓库oa目录
svnadmin create /opt/svndata/oa 创建svn数据仓库oa版本库
ls -l /opt/svndata/oa 查看oa版本库目录的长格式信息
ls -l /opt/svndata/oa/conf 查看oa版本库目录中conf目录所有信息,这三个文件是用来控制svn权限的
authz表示每个用户的权限设置信息
passwd表示每个用户和密码存储信息
svnserve.conf表示svn用户和权限的配置信息
vim /opt/svndata/oa/conf/svnserve.conf 修改svnserve.conf文件
1、为每一个工厂创建属于自己独立的用户和权限管理,注意:svn不识别配置文件中开头带空格的参数,下面这幅图是带空格开头的,这是错误的。
2、为每一个工厂创建公用的用户和权限管理,注意:svn不识别配置文件中开头带空格的参数
mkdir -p /opt/svn/conf/ 递归方式创建/opt/svn/conf目录 cp -p /opt/svndata/oa/conf/authz /opt/svn/conf/authz.conf 复制/opt/svndata/oa/conf/authz文件到/opt/svn/conf/authz.conf,保留文件属性信息
cp -p /opt/svndata/oa/conf/passwd /opt/svn/conf/passwd.conf 复制/opt/svndata/oa/conf/passwd文件到/opt/svn/conf/passwd.conf,保留文件属性信息
ls -l /opt/svn/conf 查看/opt/svn/conf目录所有长格式信息
vim /opt/svn/conf/passwd.conf 编辑用户配置文件passwd.conf
注意:
* 对用户配置文件的修改立即生效,不必重启svn。
文件格式如下:
[users]
<用户1> = <密码1>
<用户2> = <密码2>
其中,[users]是必须的。下面列出要访问svn的用户,每个用户一行。示例:
[users]
wyp = wyppwd
shuaige = shuaigepwd
为了简化配置,多个版本库共用1个权限配置文件/opt/svn/conf/passwd.conf。如有必要,也可以分开。
配置svn用户访问权限vim /opt/svn/conf/authz.conf 文件中定义用户组和版本库目录权限。 注意: * 权限配置文件中出现的用户名必须已在用户配置文件中定义。 * 对权限配置文件的修改立即生效,不必重启svn。 用户组格式: [groups] <用户组名> = <用户1>,<用户2> 其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。 版本库目录格式: [<版本库>:/项目/目录] @<用户组名> = <权限> <用户名> = <权限> 其中,方框号内部分可以有多种写法: /,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/opt/svndata。这样,/就是表示对全部版本库设置权限。 oa:/,表示对版本库oa设置权限 oa:/abc, ,表示对版本库erp中的abc项目设置权限 oa:/abc/aaa, ,表示对版本库erp中的abc项目的aaa目录设置权限 权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。 权限可以是w、r、wr和空,空表示没有任何权限。 示例: [groups] admin = wyp [/] @admin = rw 组admin设置读写权限
* = 所有用户设置无权限
[oa:/]
@admin = rw
wyp = rw
[oa:/abc] meinv = 用户meinv设置无权限 [oa:/abc/aaa]
shuaige = rw 用户shuaige设置读写权限
svn配置完毕,删除无用文件 rm /opt/svndata/oa/conf/authz rm /opt/svndata/oa/conf/passwd
vim /opt/svn/conf/authz.conf 编辑权限配置文件authz.conf
svnserve -d -r /opt/svndata 启动svn服务器
service iptables stop 临时关闭防火墙
在windows系统中,D:\创建oa目录,进入oa目录,右键菜单选择svn检出
输入用户名和密码
检出完成!
在D:\oa目录中创建abc目录,注意abc文件夹图标样式“?”,右键菜单选svn提交
选"全部(A)",点"确定"按钮
提交时需要输入用户名和密码之后,点"确定"按钮关闭认证窗口,点"确定"按钮关闭后面的提交窗口。
查看abc文件加图标样式“对勾”。
svn co svn://192.168.6.3/oa 连接SVN服务器,需要提示输入用户名和密码
输入用户wyp和它的密码,看到获取oa版本库成功,说明大功告成啦。
svn co svn://192.168.6.3/oa 连接SVN服务器,需要提示输入用户名和密码
输入用户shuaige和它的密码,获取oa版本库失败,原因为shuaige没有获取oa的权限。
svn co svn://192.168.6.3/oa/abc 测试服务器,需要输入密码
输入用户wyp和它的密码,获取oa版本库的abc目录成功
输入用户shuaige和它的密码,获取oa版本库的abc目录成功
配置SVN服务器的HTTP支持
cd /opt/svndata/oa/conf 切换到oa版本库的conf目录下
vim PtoWP.pl 这个文件,或者直接复制这个文件到当前目录中,修改 "passwd.conf"为"/opt/svn/conf/passwd.conf"
1 #!/usr/bin/perl 2 3 use warnings; 4 use strict; 5 6 #open the svn passwd file 7 open (FILE, "/opt/svn/conf/passwd.conf") or die ("Cannot open the passwd file!!!\n"); 8 9 #clear the apache passwd file 10 open (OUT_FILE, ">webpasswd") or die ("Cannot open the webpasswd file!!!\n"); 11 close (OUT_FILE); 12 13 #begin 14 foreach (<FILE>) { 15 if($_ =~ m/^[^#].*=/) { 16 $_ =~ s/=//; 17 `htpasswd -b webpasswd $_`; 18 } 19 }