本节向大家简单描述一下如何在Fedora 11上通过Apache搭建SVN服务器, 主要有八个步骤,希望通过本节的介绍大家能够掌握在Fedora 11上通过Apache搭建SVN服务器方法。 下面是具体介绍。
在Fedora 11上通过Apache搭建SVN服务器(Subversion)
1. 安装SVN所需module:
#yum install mod_dav_svn
安装完毕之后发现,在/etc/httpd/conf.d下多出了subversion.conf,以及/etc/httpd/modules下多出了 mod_dav_svn.so和mod_authz_svn.so两个文件,这正是subversion.conf中所需要的。
2. 修改subversion.conf,取消一下几行的注释,使之成为:
- <Location /repos>
- DAV svn
- SVNParentPath /var/www/svn/
- #
- # # Limit write permission to list of valid users.
- # <LimitExcept GET PROPFIND OPTIONS REPORT>
- # # Require SSL connection for password protection.
- # # SSLRequireSSL
- #
- # AuthzSVNAccessFile /etc/httpd/authz.conf
- # AuthType Basic
- # AuthName "Please enter your name and password"
- # AuthUserFile /etc/httpd/conf.d/authfile
- # Require valid-user
- # </LimitExcept>
- </Location>
其中,SVNParentPath是所有Repository的上层目录,此处并没有对访问SVN的Repository进行限制,就像google code一样,无须用户名密码即可查看,甚至checkout源代码。
3. 搭建SVN服务器时在/var/www/下创建一个svn/的文件夹,并在此目录下创建subversion版本库:
$ svnadmin create your_repo_name
4. 进入该repository,修改配置文件,位于your_repo_name/conf下,首先修改svnserve.conf,找到并去掉以下几行的注释:
anon-access = read #匿名访问的权限,可以是read,write,none,默认为read
auth-access = write #认证用户的权限,可以是read,write,none,默认为write
password-db = passwd #密码数据库的路径
authz-db = authz #用户操作权限
5. 修改passwd文件,其格式为:
[users]
user1 = password1
user2 = password2
6. 修改authz文件,格式为:针对每一个repo_name下的目录,指定每一个用户应该具有怎样的权限(注意每行前面不能有空格):
[repo_name:/directory1]
user1 = rw #user1具有read和write权限
[repo_name:/directory2]
user2 = r #user2只具有read权限
7. 搭建SVN服务器时在windows下用TortoiseSVN导入项目:
将项目初始文件,建立成包含以下三个文件夹的形式,其中项目根目录放入trunk下:
svn_temp\trunk #包含项目整体的,稳定的代码
svn_temp\branch #包含项目的一个分支,如一个子功能
svn_temp\tag #标志项目的一个milestone,如一个release
然后使用TortoiseSVN的import功能,这时可能会出现Permission denied的问题,这是因为上传文件的目录的owner是root,需要修改目录的owner:
Can't open file '/var/www/svn/repo_name/db/txn-current-lock': Permission denied
$ cd /var/www/svn
$ chown -R apache.apache repo_name
# chcon -R -t -t http_sys_content_rw_t repo_name #这一步不需要,因为已经关闭了selinux
这样可能存在问题,就是任意用户如果知道了SVN的地址,都可以import任意文件到repository中。这可能需要引入访问控制(to be continued)。
8. 通过http查看repository中的文件:
http://your_ip_address:port/repos/your_repo_name。本节关于在Fedora 11上通过Apache搭建SVN服务器步骤介绍完毕。
【编辑推荐】
- 浅析如何搭建SVN服务器
- 深入剖析opensuse10.3上如何搭建SVN服务器
- RedHat系统下如何搭建SVN服务器大揭秘
- Windows下搭建SVN服务器简明步骤
- 学习笔记: 如何删除SVN版本控制信息