技术开发 频道

Debian下配置使用Subversion版本控制服务器

【IT168 技术文章】    就像大多数软件的安装和配置一样,Debian下面配置和使用Subversion也是非常方便。现以使用Apache2+mod_svn的方式加以说明。
    假定条件:我们将所有的项目都放在/var/lib/svn目录下,要创建foo这个项目。项目的使用人员有张三(zhangs)和李四(lis)。张三(zhangs)是领导,只负责审查(只读),不用修改;李四(lis)是苦工,什么都要干(读写)。

    1. 首先当然是安装Apache2和Subversion。
        apt-get install libapache2-svn apache2-mpm-prefork subversion 

    这儿选用apache2-mpm-prefork的理由是,当前在Debian中只有这个版本可以使用PHP4。

    2. 创建一个项目
        svnadmin create /var/lib/svn/foo 

    因为我们要由Apache2来提供服务,所以将目录权限改成是Apache2运行时用户www-data:
        chown www-data.www-data /var/lib/svn/foo -R 

    3. 配置Apache2
    编辑/etc/apache2/mods-available/dav_svn.conf,使之如下:
    # dav_svn.conf - Example Subversion/Apache configuration
    #
    # For details and further options see the Apache user manual.

    # <Location URL> ... </Location>
    # URL controls how the repository appears to the outside world.
    # In this example clients access the repository as http://hostname/svn/repos
    <Location /svn>
      # uncomment this to enable the repository
       DAV svn
   
      # set this to the path to your repository
       SVNParentPath /var/lib/svn
       SVNIndexXSLT "/svnindex.xsl"

      # The following allows for basic http authentication.  Basic authentication
      # should not be considered secure for any particularly rigorous definition of
      # secure.

      # to create a passwd file
      # # rm -f /etc/apache2/dav_svn.passwd 
      # # htpasswd2 -c /etc/apache2/dav_svn.passwd dwhedon
      # New password: 
      # Re-type new password: 
      # Adding password for user dwhedon
      # #

      # Uncomment the following 3 lines to enable Basic Authentication
       AuthType Basic
       AuthName "Subversion Repository"
      # AuthLDAPEnabled on
      # AuthLDAPURL ldap://localhost/ou=Users,dc=sczfcpa,dc=com?uid?one
       AuthUserFile /etc/apache2/dav_svn.passwd

      # Uncomment the following line to enable Authz Authentication
       AuthzSVNAccessFile /etc/apache2/dav_svn.authz

      # Uncomment the following three lines allow anonymous read, but make
      # committers authenticate themselves

      # <LimitExcept GET PROPFIND OPTIONS REPORT>
        Require valid-user
      # </LimitExcept> 
    </Location> 

    修改访问权限的配置文件/etc/apache2/dav_svn.authz(/etc/apache2/mods-available/dav_svn.conf指定的),使之如下:
        [foo:/] 
        * = 
        zhangs = r 
        lis = rw 

    然后再添加用户到/etc/apache2/dav_svn.passwd:
        htpasswd2 -c /etc/apache2/dav_svn.passwd zhangs 
        (输入密码) 
        htpasswd2 -c /etc/apache2/dav_svn.passwd lis 
        (输入密码) 

    Apache2的监听端口在/etc/apache2/ports.conf里面设置,我设置的81,这样可以不影响现有的Apache 1.3。
    现在可以试试用http://localhost:81/svn/foo来访问了。

0
相关文章