linux下配置apache2.2.10与svn1.4.5整合

 =====================================================================================================
<1> 配置apache:
./configure --prefix=/opt/apache2 --enable-so  --enable-mods-shared=all  
./configure --prefix=/opt/apache2 --enable-so  --enable-dav --enable-dav-fs --enable-mods-shared=most  
./configure --prefix=/opt/apache2 --enable-so --enable-mods-shared=all  
三种,任意选一种,看自己需要的模块。我选择的第二种;
make clean
make
make install
安装好后,执行/opt/apache2/bin/apachectl start启动,使用http://localhost看是否成功 .

<2>编译SVN:
使用默认的文件系统保存数据.
最终完整通过安装和测试的编译参数为:
./configure --with-apxs=/opt/apache2/bin/apxs /
--with-apr=/home/src/server/httpd-2.2.10/srclib/apr /
--with-apr-util=/home/src/server/httpd-2.2.10/srclib/apr-util/
--prefix=/opt/subversion/
--with-ssl
其中 /home/src/server/ 为 httpd-2.2.10 源代码所在文件夹,根据实际情况调整一下.

如果编译出错,提示--with-apr=/home/src/server/httpd-2.2.10/srclib/apr
--with-apr-util=/home/src/server/httpd-2.2.10/srclib/apr-util
不是合法的参数,请到apache源代码(srclib)下面自行编译apr和apr-util
./configure --prefix=/usr/local/apr
./configure --prefix=/usr/local/apr-util
make
make install

如果修改后,编译还是通不过,将编译参数修改为:
./configure --with-apxs=/opt/apache2/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config /
--with-apr-util=/usr/local/apr/bin/apu-1-config --prefix=/opt/subversion/
--with-ssl/
apr-1-config,apu-1-config 是刚才编一apr,apr-util时,在其目录下生成的。
如果还是编译不过,那就见鬼了,哈.
成功编译svn后会在 httpd.conf 中自动加上
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
两个模块,没有的话,自行加上或检测是否真的编译成功
查看svn是否安装成功:
#/opt/subversion/bin/svnadmin --version

<3> 添加一个用户,用来运行apache和svn
#groupadd svngroup
#useradd svnuser -g svngroup
#passwd svnuser

<4>之后,将用户从root权限切换到svnuser
创建库文件所在的根目录:
mkdir /home/svnuser/repository
创建仓库"test":
/opt/subversion/bin/svnuser create /home/svnuser/repository/test
//不让其他人有该目录的权限
# chmod 700 /home/svnuser/repository/

<5>修改Apache配置文件
修改apache 的User 和Group
User svngroup
Group svnuser
如果是单库不需要认证即可访问用如下配置
<Location /svn>
       DAV svn
       SVNPath /home/svnroot/repository/
</Location>
如果是单库需要认证的用如下配置
<Location /svn>
 DAV svn
 SVNPath /home/svnuser/repository/
 AuthzSVNAccessFile /home/svnuser/repository/authz.conf
 AuthType Basic
 AuthName "Subversion.Storage"
 AuthUserFile /home/svnuser/repository/authfile
 Require valid-user
</Location>
如果是多库需要认证的用如下配置(我使用的是这种方式)
     <Location /svn>
     DAV svn
     SVNParentPath /home/svnuser/repository/  //此处目录一定要是库目录的父目录
     AuthzSVNAccessFile /home/svnuser/repository/authz.conf
     AuthType Basic
     AuthName "Subversion.zoneyump"
     AuthUserFile /home/svnuser/repository/authfile
     Require valid-user
</Location>
//"Require valid-user"告诉apache在authfile中所有的用户都可以访问。
如果没有,则只能第一个用户可以访问新建库.

<6>权限管理:
1 利用apache2/bin/htpasswd 生成用户配置文件(authfile):
    /opt/apache2/bin/htpasswd -cm /home/svnuser/repository/authfile testuser
    会提示输入密码,如果是第一次创建用户,需要用-c 参数,以后需要添加用户,则不需要-c参数。
2  权限分配
    vi /home/svnuser/repository/authz.conf
    格式如下:
      [groups] //这个表示群组设置
      project1_developers = wooin, bao //这个表示某群组里的成员
      project2_developers = wooin
      [project1:/]
      @project1_developers = rw //如果在前面加上@符号,则表示这是个群组权限
      [test:/] //这表示,仓库test的根目录下的访问权限
       wooin = rw //test仓库wooin用户具有读和写权限
       bao = r //test仓库bao用户具有读权限
       [test2:/] //test2仓库根目录下的访问权限
       wooin = r //wooin用户在test2仓库根目录下只有读权限
       bao = //bao用户在 test2仓库根目录下无任何权限
       [/] //这个表示在所有仓库的根目录下
       * = r //这个表示对所有的用户都具有读权限
3 我自己的测试配置如下:
    [groups]
    admin = svnuser
    [/]
    @admin = rw

<7> 收尾工作

//重启apache

 # /opt/apache2/bin/apachectl restart

//打开浏览器访问http://localhost/svn/test/,如果有东西显示就说明成功。


<8>几条常用svn 命令
svn update
svn add “filename”
svn commit
<9> 限制apache访问web-info目录:

<LocationMatch ".*WEB-INF.*">  
     Deny from all 
</LocationMatch>  
# # Allow direct access to WEB-INF directory under /projects and /svn  
<LocationMatch "[/projects/ /svn/].*/WEB-INF.*">  
     Allow from all 
</LocationMatch>  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值