SVN服务器的简单配置一般来说,使用SVN建立服务器还是相对简单的。这个配置表示SVN服务器可以匿名checkout,但是需要提交时必须使用用户名和密码,用户名和密码的配置文件是passwd。领域realm的名字为repos,具有相同realm的版本库也具有相同的验证方式。另外,虽然启动SVN服务器时可以使用直接指定版本库的方法,用起来可以直接用光秃秃的URL(不加后面的path)。建立一个/path/SVNROOT/目录,在其下建立N个版本库,之后启动SVN服务器时指定目录为/path/SVNROOT,就可以使用在URL后面加上对应版本库的文件夹名字来指定特定的版本库了。
| |||
一个实例介绍 在linux下搭建svn服务器步骤 1. 安装软件 下载相关的压缩包 下载: subversion-1.2.0.tar.gz 地址: [url]http://subversion.tigris.org/servlets/NewsItemView?newsItemID=1159[/url] 下载: libxml2-2.5.3.tar.gz 地址: [url]http://cosoft.org.cn/html/osl/projects.php?group_id=4981[/url] 下载: neon-0.24.7.tar.gz 地址: [url]http://www.webdav.org/neon[/url] 下载: db-4.3.28.NC.tar.gz 地址: [url]http://www.sleepycat.com/download/index.shtml[/url] 下载: Apache Web Server 2.0.49 or newer 地址: [url]http://httpd.apache.org/download.cgi[/url] 添加软件包 应用程序 ->系统设置->添加/删除应用程序 把里面的程序全部选中.更新.这时就会让你插入磁盘,在Red Hat Enterprise Linux 4 点击settings ->CD-ROM在Use Iso中选择所需磁盘 ,进行更新 这里有点慢,耐心等待.现在你可以看看解压的一些相关命令,它们都是什么意思. 解压安装 安装libxml2-2.5.3,在终端输入: tar -zxf libxml2-2/[1/].5.3.tar.gz cd libxml2-2.5.3 ./configure make make install make clean 安装Neon library 0.24.7在终端输入: tar -zxf neon-0.24.7.tar.gz cd neon-0.24.7 ./configure make make install make clean 安装Berkeley DB 4.3.28在终端输入: tar -zxf db-4.3.28.NC.tar.gz cd docs ../dist/configure make make install make clean 安装Apache 2.0在终端输入: tar -zxf httpd-2.0.54.tar.gz ./configure --enable-dav --enable-so --enable-maintainer-mode make make install make clean安装Subversion在终端输入: tar -zxf subversion-1.2.0.tar.gz ./configure --with-apxs=/usr/local/apache2/bin/apxs make make install make clean
2 在安装的apache中编写配置文件 查看自动添加语句 打开/usr/local/apache2/conf/httpd.conf ,查看是否有系统自动添加的以下语句 LoadModule dav_svn_module module/mod_dav_svn.so LoadModule authz_svn_module module/mod_authz_svn.so 手工添加语句 在/usr/local/apache2/conf/httpd.conf文件中添加以下语句: <Location /svn> DAV svn SVNPath /var/www/svn AuthType Basic AuthName “Subversion repository” AuthUserFile /etc/svn-auth-file AuthzSVNAccessFile /etc/accessfile Require valid-user </Location> 3 Svn的使用 自动创建svn文件 建立svn文件,在var/www/svn下输入: svnadmin create svn 之后查看svn文件夹中是否有系统自动生成的svn的文件创建svn的用户: htpasswd –c /etc/svn-auth-file xxx (准备添加的svn用户名) new password: (在这里输入用户xxx的密码) Re-type new password : (再次输入用户xxx的密码) 出现Adding password for user xxx则表示创建svn用户成功 关于-c的解释: 第一次创建svn的用户时,语句中要有-c,之后再建立用户的时候就没有-c了,比如: 创建第二个用户时htpasswd /etc/svn-auth-file yyy.就可以了.若在语句中添加了-c那么yyy用户会覆盖xxx用户., 对svn用户进行分组设权限: 在etc/accessfile输入 [group] PM= xxx [svn:/] @PM = rw 开启apache和svn服务 运行自己安装的apache: 在usr/local/apache2/bin下输入 apachectl start 开启svn服务 在终端下输入svnserve –d –r /var/www/ --listen – host 10.28.2.xx(虚机的ip). 运行konqueror 运行IE 应用程序à互联网àkonqueror.在位置窗口输入[url]http://10.28.2.xx/[/url] (虚拟机的ip).界面显示出Red Hat Enterprise Linux Test Page则证明apache成功运行. 验证svn登陆是否成功 之后输入[url]http://10.28.2.xx/svn/[/url] 若弹出输入用户名的和密码的界面.则证明svn成功 4创建svn目录: 在终端输入:svn mkdir [url]http://10.28.2.xx/svn/personal[/url] -m “mkdir personal” 输入用户名和密码.创建成功. 之后,就可以用svn来进行版本控制了.安装svn完成.5 问题解决: 出现Not found界面 若apache界面可以显示,而svn界面显示为Not found 则进行如下改动: 更换apache,将apache换为虚机自带的apache.将usr/local/apache2/modules中的 mod_authz_svn.so和mod_dav_svn.so拷贝到etc/http/modules中,之后在 etc/httpd/conf/httpd.conf中添加配置语句.在很多的LoadModule后面添加如下两句 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so 最后添加刚才在/usr/local/apache2/conf/httpd.conf文件中添加的语句 <Location /svn>……….. </Location> 重启apache在终端输入apachectl start .现在svn用户界面会弹出来,输入xxx和xxx的密码,将会正确进入svn界面 创建svn目录出现svn:Can't create directory错误 创建svn目录报如下错误 svn:Can't create directory '/var/www/svn/db/transactions/0-1.txn':权限不够 则在终端输入:chown –R apache.apache /var/www/svn 重启apache之后,问题解决. |
| |||
实例2 Linux下的svn服务器的搭建 1 环境: 服务器放在redhat9。0上,客户端在windows 2000。 2 软件包 2.1 服务器: subversion-1.3.2-1.rh90.i386.rpm。可能还会用到其他依赖组件,在我的配置中要用到:apr-0.9.5-0.2.i386.rpm , neon-0.24.7-1.i386.rpm,apr-util-0.9.5-0.1.i386.rpm。 2.2 客户端: TortoiseSVN-1.3.2.5840-svn-1.3.0 3 安装服务器 [root@localhost root] #rpm –ivh apr-0.9.5-0.2.i386.rpm [root@localhost root]#rpm –ivh neon-0.24.7-1.i386.rpm [root@localhost root]#rpm –ivh apr-util-0.9.5-0.1.i386.rpm [root@localhost root]#rpm –ivh subversion-1.3.2-1.rh90.i386.rpm 安装完成以后,要测试是否已经安装成功,则要输入以下命令: [root@localhost root]#svnserve –version 若显示如下,安装成功: svnserve, version 1.4.0 (r21228) compiled Oct 12 2006, 10:18:56 Copyright (C) 2000-2006 CollabNet. Subversion is open source software, see [url]http://subversion.tigris.org/[/url] This product includes software developed by CollabNet ([url]http://www.Collab.Net/).[/url] The following repository back-end (FS) modules are available: * fs_fs : Module for working with a plain file (FSFS) repository. 4 Svn配置 4.1 建立版本库目录 [root@localhost root] #mkdir –p /home/svnrepos;svnrepos 是我自己建立的目录,各人根据具体情况设计名字 4.2 建立一个用户,用与管理这个版本库目录 [root@localhost root] #useradd -m -s /bin/bash svn_leader;svn_leader是我建立的用户名,可以根据习惯改 4.3 用建立的用户管理我们刚建的版本库目录 [root@localhost root] #chown –R svn_leader.svn_leader /home/svnrepos 用svn_leader来管理我们的版本库目录/home/svnrepos 4.4 启动服务器 用用户svn_leader来管理版本库目录/home/svnrepos,则须转为svn_leader,命令如下: [root@localhost root] #su svn_leader 启动svn服务 [root@localhost root] #svnserve -d -r /home/svnrepos/; -d表示以daemon方式(后台运行)运行 -r/home/svnrepos/指定根目录是/home/svnrepos/ 检查服务器是否启动正常: [svn_leader@localhost root]$ ps –ef|grep svnserve 如果显示如下,即为启动成功: svn 6941 1 0 15:07 ? 00:00:00 svnserve -d --listen-port 9999 -r /home/svnrepos 5 建立版本库 [root@localhost home]# cd /home/svnrepos/ [root@localhost svnrepos]# svnadmin create test;test可以改,在test目录下会有下面目录:conf dav db format hooks locks README.txt 6 配置允许访问test的用户 进入到conf,命令为: [root@localhost safety]# cd conf 出现三个文件:authz passwd svnserve.conf 6.1 修改svnserve.conf [root@localhost conf]# vi svnserve.conf 出现: [general] ……………………… # anon-access = read # auth-access = write ……………………… # password-db = passwd ……………………… # authz-db = authz 内容修改为: [general] ……………………… anon-access = none auth-access = write ……………………… password-db = passwd ……………………… authz-db = authz 6.2 修改passwd [root@localhost conf]# vi passwd 文件格式如下: [users] <用户1> = <密码1> <用户2> = <密码2> 其中,[users]是必须的。下面列出要访问svn的用户,每个用户一行。示例: [users] alan = password king = hello 这个里面的user表示当前test版本库的成员. 6.3 修改authz [root@localhost conf]# vi authz 用户组格式: [groups] <用户组名> = <用户1>,<用户2> 其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。用户必须要在passwd文件里能找到,它是给那个里面的user赋权限. 版本库目录格式: [<版本库>: /目录] @<用户组名> = <权限> <用户名> = <权限> 示例: [groups] admin = alan [/] @admin = rw [test:/] king = rw,表示king能够读写test目录下的所以信息 到此svn服务器的的安装和配置就已经完成了. |