Version: CentOS6.2_32bit、httpd-2.2.24.tar.gz、subversion-1.7.9.tar.gz |
1、Httpd的安裝:
[root@SRV src]# tar zxvf httpd-2.2.24.tar.gz [root@SRV src]# cd httpd-2.2.24 [root@SRV httpd-2.2.24]# ./configure --prefix=/usr/local/apache2 --enable-dav --enable-so --enable-maintainer-mode --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util [root@SRV httpd-2.2.24]# make && make install |
2、Subversion的安裝:
[root@SRV src]# tar zxvf subversion-1.7.9.tar.gz [root@SRV src]# cd subversion-1.7.9 [root@SRV subversion-1.7.9]# ./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --without-berkeley-db [root@SRV subversion-1.7.9]# make && make install [root@SRV bin]# svnserve --version svnserve,版本1.7.9 (r1462340) 編譯於 Apr 24 2013,20:09:13 Copyright (C) 2013 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/ 下列版本庫後端(FS) 模塊可用: * fs_fs : 模塊與文本文件(FSFS)版本庫一起工作。 Cyrus SASL 認證可用。 [root@SRV bin]# configure: error: Subversion requires SQLite |
3、配置Apache與SVN
[root@SRV local]# vi apache2/conf/httpd.conf LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so [root@SRV ~]# mkdir /opt/svndata [root@SRV ~]# chown -Rv daemon /opt/svndata/ [root@SRV ~]# chmod -R 755 /opt/svndata/ [root@SRV ~]# /usr/local/subversion/bin/svnadmin create --fs-type fsfs /opt/svndata/Project1 [root@SRV ~]# /usr/local/apache2/bin/htpasswd -c /opt/svndata/auth_user RELEARN New password: Re-type new password: Adding password for user RELEARN [root@SRV ~]# /usr/local/apache2/bin/htpasswd /opt/svndata/auth_user Readonly New password: Re-type new password: Adding password for user Readonly [root@SRV ~]# vi /opt/svndata/Access_Rights [groups] AdminGroup = RELEARN GuestGroup = Readonly [Project1:/] @AdminGroup = rw @GuestGroup = r [root@SRV ~]# vi /usr/local/apache2/conf/httpd.conf #SVN config file Include conf/extra/svn-config.conf [root@SRV ~]# vi /usr/local/apache2/conf/extra/svn-config.conf <Location /svn> DAV svn SVNParentPath /opt/svndata AuthType Basic AuthName "Subversion" AuthzSVNAccessFile /opt/svndata/Access_Rights AuthUserFile /opt/svndata/auth_user Require valid-user </Location> |
[root@SRVsvndata]# vi Access_Rights
[groups]
Project1_AdminGroup = RELEARN
Project1_GuestGroup = Readonly
Project2_AdminGroup = Project2_admin
Project2_GuestGroup = Project2_user
[Project1:/]
@Project1_AdminGroup = rw
@Project1_GuestGroup = r
[Project2:/]
@Project2_AdminGroup = rw
@Project2_GuestGroup = r
~―――――――――
[groups]
G_Project1 = RELEARN,wuyw
[Project1:/]
@G_Project1 = rw
* = r
<Location /svn>
DAV svn #開啓DAV模塊支持
SVNParentPath /var/www/newsvn
#<LimitExceptGET PROPFIND OPTIONS REPORT>
AuthType Basic
AuthName "Subversion"
AuthUserFile /var/www/newsvn/conf/auth.conf
AuthzSVNAccessFile /var/www/newsvn/conf/access.conf #授權配置文件(路經訪問權限)
Require valid-user
#</LimitExcept> 打開</LimitExcept>註釋,將允許匿名訪問
</Location>