1. 下载源代码:
通过wget 方式下载下面四个安装软件
1) apr-1.3.3.tar.gz http://apache.mirror.phpchina.com/apr/apr-1.3.3.tar.gz
2) apr-util-1.3.4.tar.gz http://apache.mirror.phpchina.com/apr/apr-util-1.3.4.tar.gz
3) httpd-2.2.11.tar.gz http://labs.xiaonei.com/apache-mirror/httpd/httpd-2.2.11.tar.gz
4) subversion-1.5.5.tar.gz http://subversion.tigris.org/downloads/subversion-1.5.5.tar.gz
2. 编译源代码:
按下面的顺序编译源代码:
(1) Apache Apr
# cd apr-1.3.3
# ./configure --prefix=/home/irteam/app/apache/apr
# make
# make install
(2) Apache Apr-Util
# cd apr-util-1.3.4
# ./configure --prefix=/home/irteam/app/apache/apr-util --with-apr=/home/irteam/app/apache/apr
# make
# make install
(3) Apache Httpd
# cd httpd-2.2.11
# ./configure --prefix=/home/irteam/app/apache/apache2 --enable-dav --with-apr=/home/irteam/app/apache/apr --with-apr-util=/home/irteam/app/apache/apr-util
# make
# make install
(4) Subversion
# cd subversion-1.5.5
# ./configure --prefix=/home/irteam/app/subversion --with-apxs=/home/irteam/app/apache/apache2/bin/apxs --with-apr=/home/irteam/app/apache/apr --with-apr-util=/home/irteam/app/apache/apr-util --with-berkeley-db
# make
# make install
以上的编译通常情况都能顺利编译成功,得到相应的可执行程序。
检查 SVN 模块:
# cd /home/irteam/app/apache/apache2/modules
检查 mod_dav_svn.so 和 mod_authz_svn.so,如果上述第4步编译成功,这两个模块应该可以看到。
5. 运行htpasswd添加用户和密码
/home/irteam/app/apache/apache2/bin/htpasswd -cm /home/irteam/app/svnroot/svn-auth-file admin
/home/irteam/app/apache/apache2/bin/htpasswd -cm /home/irteam/app/svnroot/svn-auth-file member1
/home/irteam/app/apache/apache2/bin/htpasswd -m /home/irteam/app/svnroot/svn-auth-file member2
6. 在Apache Http Server里配置虚拟主机:
将httpd.conf中的虚拟主机的注释去掉,然后编辑/home/irteam/app/apache/apache2/conf/extra/httpd-vhost.conf。
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
<VirtualHost *:8888>
ServerAdmin hu_bj@sina.com
ServerName 10.34.63.78 --可以指定svn专用域名
ErrorLog logs/svn_error_log
CustomLog logs/svn.com-access_log common
<Location /svn>
DAV svn
SVNParentPath /home/irteam/svnroot
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /home/irteam/svnroot/svn-auth-file
Require valid-user
AuthzSVNAccessFile /home/irteam/svnroot/svn-access-file
</Location>
</VirtualHost>
其中svn-auth-file是认证文件,存储用户名和密码,svn-access-file是访问权限文件,规定各个目录的访问者的权限, 示例的权限分配的文件的格式如下。
[groups]
admin = admin
devteam1 = member1
devteam2 = member2
[/]
* = r
@admin = rw
[project1:/]
@devteam1 = rw
[project2:/]
@devteam2 = rw
[bigproject:/]
@devteam1 = rw
@devteam2 = rw
权限配置文件中,关键的几个概念是:目标和权限,也就是为谁分配什么样的权限。读为r,写为w,如果没有权限那么什么也不写即可。
7. 创建库
svnadmin create --fs-type fsfs /home/irteam/app/svnroot/project1
8. 通过TortoiseSVN 访问即可。
通过wget 方式下载下面四个安装软件
1) apr-1.3.3.tar.gz http://apache.mirror.phpchina.com/apr/apr-1.3.3.tar.gz
2) apr-util-1.3.4.tar.gz http://apache.mirror.phpchina.com/apr/apr-util-1.3.4.tar.gz
3) httpd-2.2.11.tar.gz http://labs.xiaonei.com/apache-mirror/httpd/httpd-2.2.11.tar.gz
4) subversion-1.5.5.tar.gz http://subversion.tigris.org/downloads/subversion-1.5.5.tar.gz
2. 编译源代码:
按下面的顺序编译源代码:
(1) Apache Apr
# cd apr-1.3.3
# ./configure --prefix=/home/irteam/app/apache/apr
# make
# make install
(2) Apache Apr-Util
# cd apr-util-1.3.4
# ./configure --prefix=/home/irteam/app/apache/apr-util --with-apr=/home/irteam/app/apache/apr
# make
# make install
(3) Apache Httpd
# cd httpd-2.2.11
# ./configure --prefix=/home/irteam/app/apache/apache2 --enable-dav --with-apr=/home/irteam/app/apache/apr --with-apr-util=/home/irteam/app/apache/apr-util
# make
# make install
(4) Subversion
# cd subversion-1.5.5
# ./configure --prefix=/home/irteam/app/subversion --with-apxs=/home/irteam/app/apache/apache2/bin/apxs --with-apr=/home/irteam/app/apache/apr --with-apr-util=/home/irteam/app/apache/apr-util --with-berkeley-db
# make
# make install
以上的编译通常情况都能顺利编译成功,得到相应的可执行程序。
检查 SVN 模块:
# cd /home/irteam/app/apache/apache2/modules
检查 mod_dav_svn.so 和 mod_authz_svn.so,如果上述第4步编译成功,这两个模块应该可以看到。
5. 运行htpasswd添加用户和密码
/home/irteam/app/apache/apache2/bin/htpasswd -cm /home/irteam/app/svnroot/svn-auth-file admin
/home/irteam/app/apache/apache2/bin/htpasswd -cm /home/irteam/app/svnroot/svn-auth-file member1
/home/irteam/app/apache/apache2/bin/htpasswd -m /home/irteam/app/svnroot/svn-auth-file member2
6. 在Apache Http Server里配置虚拟主机:
将httpd.conf中的虚拟主机的注释去掉,然后编辑/home/irteam/app/apache/apache2/conf/extra/httpd-vhost.conf。
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
<VirtualHost *:8888>
ServerAdmin hu_bj@sina.com
ServerName 10.34.63.78 --可以指定svn专用域名
ErrorLog logs/svn_error_log
CustomLog logs/svn.com-access_log common
<Location /svn>
DAV svn
SVNParentPath /home/irteam/svnroot
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /home/irteam/svnroot/svn-auth-file
Require valid-user
AuthzSVNAccessFile /home/irteam/svnroot/svn-access-file
</Location>
</VirtualHost>
其中svn-auth-file是认证文件,存储用户名和密码,svn-access-file是访问权限文件,规定各个目录的访问者的权限, 示例的权限分配的文件的格式如下。
[groups]
admin = admin
devteam1 = member1
devteam2 = member2
[/]
* = r
@admin = rw
[project1:/]
@devteam1 = rw
[project2:/]
@devteam2 = rw
[bigproject:/]
@devteam1 = rw
@devteam2 = rw
权限配置文件中,关键的几个概念是:目标和权限,也就是为谁分配什么样的权限。读为r,写为w,如果没有权限那么什么也不写即可。
7. 创建库
svnadmin create --fs-type fsfs /home/irteam/app/svnroot/project1
8. 通过TortoiseSVN 访问即可。