网上查了一些资料,在linux环境搭建了一个简单的SVN 环境。为避免遗忘,现在小结以下。
基本软件:
httpd-2.2.20.tar.gz
subversion-1.6.17.tar.gz(缺少一些必要的包,所以使用了DEV
subversion-deps-1.6.17.tar.tar
Apache安装与配置
将httpd-2.2.20.tar.gz文件拷贝到/usr/local目录,执行以下命令:
# cd /usr/local/
# tar xvfz httpd-2.0.55.tar.gz
# cd httpd-2.0.55
# ./buildconf
#./configure --enable-dav --enable-so
# make
# make install
安装完成后,配置Apache的Listen、ServerName和DirectoryIndex属性
# cd /usr/local/apache2/conf
# vi ./httpd.conf
将“Listen 80”修改为“Listen xx.xx.xx.xx:80”(“xx.xx.xx.xx”对应修改为你的本机IP)
将“ServerName”修改为“ServerName Apache:80”(“Apache”对修改为你的本机名,不通过主机名访问,可任意填写)
测试安装
# cd /usr/local/apache/bin/
# ./apachectl configtest
若显示“Syntax ok”,表明安装成功
启动Apache
#./apachectl start
访问本机80端口(或修改的端口,查看端口是否正常
关闭Apache
# ./apachectl stop
Subversion 安装 (如果想知道细节,注意看/usr/local/subversion-1.6.17/INSTALL 文件. 它对参数进行了一些解释)
将subversion-1.6.17.tar.gz, subversion-deps-1.6.17.tar.tar文件拷贝到/usr/local目录,执行以下命令:
# cd /usr/local/
# tar xzvf subversion-1.6.17.tar.gz
# tar xzvf subversion-deps-1.6.17.tar.tar
# cd subversion-1.6.17
# ./configure --with-apxs=/usr/local/apache2/bin/apxs
# make
# make install
配制subversion的HTTP服务
# vi /usr/local/apache2/conf/httpd.conf
在httpd.conf文件最后添加如下内容:
<Location /svn>
DAV svn
#SVNListParentPath on
SVNParentPath /home/svn (# 要去掉路径最后的""或"/",否则会出错)
### apache auth begin
# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile c:/password/apache_authz
Require valid-user (告诉Apache什么样的客户端需要授权的指示)
### apache auth end
### svn auth begin
# our access control policy
#AuthzSVNAccessFile c:/password/svn_authz
# authentication if necessary
#Satisfy Any (可以匿名访问)
### svn auth end
</Location>
建立 svn 版本库目录:
svnadmin create /home/svn/aa 或 svnadmin create aa
命令执行成功之后,会在/home/svn/aa 下面生成很多的文件和目录。
其中:conf目录存放配置信息;
dav目录是提供给Apache与mod_dav_svn使用的目录,让它们存储内部数据;
db目录就是所有版本控制的数据文件;
hooks目录放置hook脚本文件的目录;
locks用来放置Subversion文件库锁定数据的目录, 用来追踪存取文件库的客户端;
format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号;
http访问:
http://xx.xx.xx.xx:xx/ svn/aa
附: 使用的一些linux 命令:
创建用户及密码文件
# mkdir /home/svn
# cd /home/svn
# htpasswd -cm passwd harry
New password:*****
Re-type new password:*****
Adding password for user harry
改变他test目录的权限用户到svn:
chown -R svn.svn test