Chinaunix首页 | 论坛 | 博客
  • 博客访问: 81974
  • 博文数量: 36
  • 博客积分: 835
  • 博客等级: 准尉
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-14 09:26
文章分类

全部博文(36)

文章存档

2012年(1)

2011年(35)

我的朋友

分类: LINUX

2011-02-16 14:53:31

1.本文需要两个文件,httpd和subversion
    httpd是web服务器,用来通过web访问subversion,这里是官方网站,这里是它的下载网页
      
      
2.编译安装httpd,subversion
  ## httpd
      ./configure  --prefix=/usr/local/httpd-2.2.17 \
                       --with-mpm=prefork \
                       --enable-dav \
                       --enable-so  \
                       --enable-maintainer-mode \
                       --enable-mods-shared=all \
                        --enable-deflate=shared 
     make && make install                   

     httpd我们安装完成现在来看看svn的编译吧! 
 ##svn
      ./configure --prefix=/usr/local/subversion \
                      --with-apxs=/usr/local/httpd-svn/bin/apxs \
                      --with-ssl \
                      --enable-maintainer-mode
       make && make install
      安装完后查看/usr/local/http-2.2.17/modules/mod_dav_svn.so是否存在
      如果少一些auth mod的话可以用以下方式动态加载进去
      源码包  cd /opt/src/httpd-2.2.17/modules/aaa
                       /usr/local/httpd/bin/apxs -i -a -c mod_authn_file.c    动态加载authn_file
      svn配置所需要的mod有
LoadModule authn_dbd_module modules/mod_authn_dbd.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule dbd_module modules/mod_dbd.so
LoadModule substitute_module modules/mod_substitute.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule log_forensic_module modules/mod_log_forensic.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule ident_module modules/mod_ident.so
LoadModule version_module modules/mod_version.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dir_module modules/mod_dir.so
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
LoadModule authn_file_module  modules/mod_authn_file.so

3.svn配置
   //创建库文件所在的目录 (svnroot用户进行下面的操作)
       mkdir /home/svnroot/repository                                 创建库文件所在的目录
       chmod 700  /home/svnroot/repository                         让其它用户没有权限
  //创建仓库"home_site"
     svnadmin create /home/svnroot/repository/home_site     创建仓库home_site 
     cd /home/svnroot/repository/home_site                         看看是不是多了些文件,如果是则说明Subversion安装成功了
     svn import /home/www/guide  file:///home/www/svnroot/repository/home_site  -m "20110222" 提交后的修订版为20110222

4.apache配置
        DocumentRoot /home/www                                 
        ServerName  svn.home.corp.anjuke.com 
    
        DAV svn  
        SVNListParentPath on
        SVNParentPath /home/www/svnroot/repository/                                //svn父目录
        AuthzSVNAccessFile /home/www/svnroot/repository/authz.conf         //svn权限配置文件
        AuthType Basic                                                                             //连接类型设置
        AuthName "Subversion repository"                                                  //连接框提示
        AuthUserFile /home/www/svnroot/repository/authfile                        //用户配置文件
        Satisfy Any
        Require valid-user                                                                           //采用何种认证 
  

   //其中authfile是通过"htpasswd –c /home/svnroot/repository/authfile username password"来创建的 
   //"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,
   //则只能第一个用户可以访问新建库
增加用户
   htpasswd [-c] /home/svnroot/repository/authfile wooin
//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
   htpasswd authfile 用户名(加入新的用户)

vi /home/svnroot/repository/authz.conf 
   [test:/] //这表示,仓库test的根目录下的访问权限 
   wooin = rw //test仓库wooin用户具有读和写权限 
   bao = r //test仓库bao用户具有读权限 
   [test2:/] //test2仓库根目录下的访问权限 
   wooin = r //wooin用户在test2仓库根目录下只有读权限 
   bao = //bao用户在 test2仓库根目录下无任何权限 
   [/] //这个表示在所有仓库的根目录下 
   * = r //这个表示对所有的用户都具有读权限 
   #[groups] //这个表示群组设置 
   #svn1-developers = wooin, bao //这个表示某群组里的成员 
   #svn2-developers = wooin 
   #[svn1:/] 
   #@svn1-developers = rw //如果在前面加上@符号,则表示这是个群组权限设置

阅读(1108) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~