1. 环境:
a) 操作系统:RedHat AS5
b) http:apache httpd-2.2.16,假设httpd安装在/opt/apache2目录中
c) svn:subversion-1.6.0-rc2,假设svn安装在/opt/subversion目录中
2. 安装apache httpd
#./configure --enable-dav --enable-so --prefix=/opt/apache2/
#./make clean && make && make install
3. 安装svn
#./configure --prefix=/opt/subversion --with-apxs=/opt/apache2/bin/apxs --with-apr=/opt/apache2 --with-apr-util=/opt/apache2 --with-ssl --enable-maintainer-mode
#./make clean && make && make install
4. 创建svn仓库
#/opt/subversion/bin/svnadmin create /var/svn/repos
#ls –l /var/svn/repos
可以看到创建了一些SVN的目录和文件,则表示安装SVN成功。
5. 导入需要进行版本控制的项目目录
#/opt/subversion/bin/svn import /tmp/myproject file:///var/svn/repos/myproject -m "initial
import"
Adding /tmp/myproject/branches
Adding /tmp/myproject/tags
Adding /tmp/myproject/trunk
…
Committed revision 1.
其中/tmp/myproject是需要导入的项目目录,按照约定,项目中一般需要创建branches、tags、trunk目录
6. SVN权限控制
a) 创建用户名和密码文件:
#/opt/apache2/bin/htpasswd –c / var/svn/repos/authfile username
然后提示输入密码和确认密码结束密码文件的创建,如果需要追加用户,则不需要-c参数。
b) 创建访问控制文件:
#vi /var/svn/repos/authz.conf
输入如下内容:
[storevm:/]
xiangqing.tan = rw
[/]
* = r
#[groups]
#svn1-developers = wooin, bao
#svn2-developers = wooin
#[svn1:/]
#@svn1-developers = rw
注释:
[storevm:/]
xiangqing.tan = rw
表示设置storevm项目的访问控制,其中xiangqing.tan用户对于该项目拥有读写权限。
[/]
* = r
表示所有用户对所有仓库中的项目拥有读权限。
#[groups]
#svn1-developers = wooin, bao
#svn2-developers = wooin
创建用户组,创建了2个用户组,并指定了组中的成员。
#[svn1:/]
#@svn1-developers = rw
设置用户组的访问控制权限。svn1-developers组对svn1项目拥有读写权限。
7. Apache http的SVN相关设置
在httpd.conf文件中加入如下内容:
# Needed to do Subversion Apache server.
LoadModule dav_svn_module modules/mod_dav_svn.so
# Only needed if you decide to do "per-directory" access control.
LoadModule authz_svn_module modules/mod_authz_svn.so
#
# Example location directive.
#
<Location /svn>
DAV svn
SVNPath /var/svn/repos/
#
# # Limit write permission to list of valid users.
# <LimitExcept GET PROPFIND OPTIONS REPORT>
# # Require SSL connection for password protection.
# # SSLRequireSSL
#
AuthzSVNAccessFile /var/svn/repos/authz.conf
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /var/svn/repos/authfile
Require valid-user
# </LimitExcept>
</Location>
注释:
<Location /svn>设置了浏览器访问的上下文路径,例如可以通过http://localhost/svn访问SVN仓库。
SVNPath /var/svn/repos/设置了SVN的仓库路径
AuthzSVNAccessFile /var/svn/repos/authz.conf设置了访问控制权限文件的路径
AuthUserFile /var/svn/repos/authfile设置了密码文件的路径
8. 启动
#/opt/apache2/bin/apachectl –k start
9. 如果安装都成功了,会展现如下的界面:
由于我们给SVN的访问设置了用户名和密码,所以要求我们输入用户名和密码。输入成功后会显示如下的界面
点击链接,我们就能看到我们导入的项目目录了
至此所有安装宣告全部成功!
附件:svn的完整源代码安装包,包含了所有svn安装时需要的依赖(apache httpd不包含在内,需要另行安装)。如有需要请email我。 [email protected]
转载: http://blog.csdn.net/jacktan/article/details/5977470