SVN安装及配置
SVN安装:yum install subversion -y
5.1 配置并启动svn
第一步建立存储目录
建立svn版本库数据存储根目录(svndata)及用户、密码权限目录(svnpasswd)
mkdir -p /application/svndata 数据存储的根目录
mkdir -p /application/svnpasswd 用户、密码 权限目录
第二步启动SVN
启动svn服务指定服务的svn根目录
svnserve -d -r /application/svndata --pid-file=/application/svndata/svn.pid
提示:pid 的参数可加可不加
可以查看svnserver 命令帮助,了解相关启动参数
[root@localhost /]# svnserve --help
[root@zentao-svn-sonar ~]# svnserve --help
用法: svnserve [-d | -i | -t | -X] [options]
有效选项:
-d [--daemon] : 后台模式
-i [--inetd] : inetd 模式
-t [--tunnel] : 隧道模式
-X [--listen-once] : 监听一次方式(调试用)
-r [--root] ARG : 服务的根目录
-R [--read-only] : 强制只读;覆盖版本库配置文件
--config-file ARG : 从文件 ARG 读取配置
--listen-port ARG : 监听端口
[方式: daemon, listen-once]
--listen-host ARG : 监听主机名称或IP地址
[方式: daemon, listen-once]
-T [--threads] : 使用线程代替进程 [方式: daemon]
--foreground : 在前台运行(调试用)
[方式: daemon]
--log-file ARG : svnserve 日志文件
--pid-file ARG : 写进程 PID 到文件 ARG
[方式: daemon, listen-once]
--tunnel-user ARG : 隧道用户名(默认是当前UID对应的用户名)
[方式: tunnel]
-h [--help] : 显示本帮助
--version : 显示程序版本信息
查看svn进程
[root@localhost /]# ps -ef|grep svn
查看端口:
[root@localhost /]# netstat -lntup|grep svn
建立项目的版本库
创建一个新的subversion 项目sadoc
[root@localhost /]# svnadmin --help 命令使用
[root@localhost /]# svnadmin help create 命令帮助
创建svn的项目实例(svn版本库)
mkdir /application/svndata/sadoc1
svnadmin create /application/svndata/sadoc1 #在上面创建的svn数据目录下,创建项目
tree /application/svndata
[root@localhost /]# cd /application/svndata/sadoc/conf/
[root@localhost conf]# ll
total 12
-rw-r--r-- 1 root root 1080 Aug 31 17:40 authz 权限管理文件
-rw-r--r-- 1 root root 309 Aug 31 17:40 passwd 用户密码 文件
-rw-r--r-- 1 root root 2279 Aug 31 17:40 svnserve.conf 主配置文件
[root@localhost conf]# cp svnserve.conf svnserve.conf.ori 备份主配置文件
[root@localhost conf]# cp authz passwd /application/svnpasswd/ 将模板文件拷贝过去
[root@localhost conf]# cd /application/svnpasswd/
[root@localhost svnpasswd]# chmod 700 *
[root@localhost svnpasswd]# ll
total 8
-rwx------ 1 root root 1080 Aug 31 17:54 authz
-rwx------ 1 root root 309 Aug 31 17:54 passwd
root@zentao-svn-sonar conf]# cp svnserve.conf ./svnserve.conf.back
[root@localhost conf]# cd /application/svnpasswd/
[root@localhost svnpasswd]# chmod 700 *
[root@centos conf]# vim svnserve.conf
修改的内容如下:
12 anon-access = none (匿名用户只读,也可以设成none,不可访问)
13 auth-access = write
20 password-db = /application/svnpasswd/passwd #这样修改的目的是便于统一管理,以后所有的项目密码都放在这个目录下 (svn密码文件,如果有多个项目,建议将该文件放到公共位置)
27 authz-db = /application/svnpasswd/authz #这样修改的目的是便于统一管理,以后所有的项目认证都放在这个目录下了(目录权限文件,建议同上)
real = My First Repository (认证域,相同认证域下的项目使用相同的passwd和authz,暂时不用理会)
提示:
1. 等号前为svn账号,等号后为svn密码,密码是明文密码,注意密码权限
2. 更改svnserver.conf 时,需要重启svn,更改authz,passwd文件时不需要重启svn服务
接下来,passwd文件中添加明文的用户名/密码。authz文件中设置别名和用户组,并针对不同目录 对不同的用户或组分配权限(r,w,rw)。设置权限时,用户组前面要加@,别名前面要加&。
这样配置好后,就可以通过svn://来访问了。
启动
svnserve -d -r /application/svndata/
关闭svn
kill -9 `ps -ef |grep svn|grep -v grep|awk '{print $2}' -v: 排除grep
[root@SVN svnpasswd]# cat authz
[aliases]
# joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
# [/foo/bar]
# harry = rw
# &joe = r
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[sadoc1:/]
zhang = rw
qiong = rw
[root@SVN svnpasswd]#
===============
上面是svn的权限配置文件,
注意:
权限配置文件中出现的用户名必须要在用户配置文件中出现,也就是必须要在passwd 文件中定义。
对权限配置文件的修改使立刻生效的,不必重启svn服务器
用户组格式:
[groups]
组名 = username1,username2,username3,...
其中,1个用户组可以包含一个或多个用户,用户和用户之间用逗号分隔
版本库目录
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户组> = <权限>
其中,方框内部分有多种写法
[/],表示根目录及根目录下面的目录,根目录是svnserve启动时指定的,我们指定为/application/svndata,[/]就表示对全部版本库设置权限。
[repos:/]表示对版本库repos设置权限
[repos:/sadoc]表示对版本库repos中的sadoc项目设置权限;
[repos:/sadoc]/lvnian]表示对版本库repos中的sadoc项目的lvnian目录设置权限;
权限主体可以是用户组、用户和*,用户组在前面需要加@,*表示全部用户
authz中每个参数都要顶格写,开头不能有空格
对于组,必须要以@开头加组名,用户则不需要加@开头
客户端下载地址:
http://tortoisesvn.net/downloads.html
在windows中下安装就一路下一步安装。即可
svn客户端连接服务器的方法,账号及密码:
svn://IP/svn项目名称
如
svn://ip/sadoc1
用户名:lvnian01
密码:lvnian
5.7 windows客户端软件测试
http://tortoisesvn.net/downloads.html 下载svn客户端软件
安装好客户端之后,在桌面建立一个svndata的文件夹选择svndata文件夹,选择checkout
点击ok,输入用户名和密码就 可以提交和下载文件
SVN+ apache
yum -y install mod_dav_svn
配置 1.创建版本库
# mkdir -pv /svn/date
--创建主目录
# svnadmin create /svn/date/www
--创建仓库
2.更改权限
# chmod -R 700 /svn/date/
--修改库的其他人无权限
# chown -R apache:apache /svn/date/
--修改库的所属
3.更改apache配置
#vim /etc/httpd/conf/httpd.conf
加入以下内容
<Location /svn> (apache下的位置)
DAV svn
SVNPath /home/svn/myproject (指明资源库的路径)
或
SVNParentPath /home/svn (如果有多个库,使用该选项)
SVNListParentPath on (打开这个选项可以列出ParentPath下面的所有库)
AuthType Basic (认证类型为基本认证 )
AuthName "Subversion Repository" (认证名称,将在IE界面弹出一个对话框,其标题)
AuthUserFile /etc/apache2/dav_svn.passwd (认证密码文件)
# AuthzSVNAcessFile /etc/apache2/dav_svn.authz (目录权限文件)
Require valid-user (要求验证用户,即不能匿名访问)
</Location>
5. 通过sudo htpasswd -c /etc/apache2/dav_svn.passwd abc创建用户abc并按照提示设置密码,网页认证的时候使用该用户名和密码登录。后面再添加用户的时候去掉-c选项。
配好以后就可以通过Http页面来访问SVN了。
# service httpd start
# svnserve -d -r /svn/date/
报错处理:
正在启动 httpd:httpd: Could not reliably determine the server's fullyqualified domain name, using localhost.localdomain forServerName
(98)Address already in use: make_sock: could not bind to address[::]:80
(98)Address already in use: make_sock: could not bind to address0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
解决方法:杀了从启
ps -ef | grep httpd |awk '{print $2}' | xargs kill -9
2.如果出现,这样的错误信息,“svnserve: 不能绑定服务器套接字: 地址已经被使用”
那先把svnserve进程干掉。
具体做法是
$ ps -aux #查看进程,svnserve的pid为16663
$ kill -9 16663 #干掉svnserve
再次运行$ svnserve -d -r /var/www/svn
转载于:https://blog.51cto.com/feibendeqie/1712444