SVN与Apache HTTP服务器的整合安装

来源:互联网 发布:淘宝开店条件及流程 编辑:程序博客网 时间:2024/06/05 18:31

1. 环境:

a)        操作系统:RedHat AS5

b)       httpapache httpd-2.2.16,假设httpd安装在/opt/apache2目录中

c)        svnsubversion-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是需要导入的项目目录,按照约定,项目中一般需要创建branchestagstrunk目录

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 httpSVN相关设置

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我。jacktanlikejava@hotmail.com