Linux系统下架设APACHE SVN服务器全过程
一 、首先准备好相关的安装包,我这里使用的是下列的几个包
Apr : apr-1.2.11.tar.gz 和 apr-util-1.2.2.tar.gz
Apache : httpd-2.2.6.tar.gz
Subversion: subversion-1.6.12.tar.gz 和 subversion-deps-1.6.0.tar.gz
注意:在安装过程中可能会提示需要安装其他的包,根据具体的情况来安装所需要的包!
二、安装和配置步骤:
1、安装apr-1.2.11
# tar –zvxf apr-1.2.11.tar.gz
# cd apr-1.2.11
# ./configure --with-apr=/usr/local/apr //安装到 /usr/local/apr目录
# make
#make install
2、安装 apr-util-1.2.2
# tar –zvxf apr-util-1.2.2.tar.gz
# cd apr-util-1.2.2
# ./configure --with-apr=/usr/local/apr //需要指定安装到同一个目录
# make
# make install
3、安装 httpd-2.2.6.tar.gz
# tar –zvxf httpd-2.2.6.tar.gz
# cd httpd-2.2.6
# ./configure
--prefix=/usr/local/apache
--with-apr=/usr/local/apr/bin/apr-1-config
--with-apr-util=/usr/local/apr/bin/apu-1-config
--enable-modules=so
--enable-dav
--enable-maintainer-mode
-- enable-rewrite
# make
# make install
安装好后启动apache
# /usr/local/apache/bin/apachectl –k start
用浏览器查看http://localhost/,得到it works,说明apache已经配置成功了。
(注意配置文件默认是80端口,如果被占用,你也可以在httpd.conf文件修改端口号:比如Listen 8080)8080端口
4、安装和配置 subversion
#tar –zvxf subversion-1.6.12.tar.gz
#tar –zvxf subversion-deps-1.6.0.tar.gz /*注意因为这里解压后的文件夹名为subversion-1.6.12所以请修改成subversion-1.6.0这样两个文件可以解压到同一个文件夹(为了在解压subversion-deps-1.6.0.tar.gz时候解压到subversion-1.6.12.tar.gz里面..值得注意的地方两个一定要解压到同一个文件夹中)
#cd subversion-1.6.0 (这里我是修改成的subversion-1.6.0文件夹名(可自定义))
#rm –rf apr
#rm -rf apr-util
注意:这里需要删除掉此文件夹目录下的apr和apr-util文件,如果不删除安装会通不过!
#./configure
--prefix=/usr/local/svn
--with-apxs=/usr/local/apache/bin/apxs
--with-apr=/usr/local/apr/bin/apr-1-config
--with-apr-util=/usr/local/apr/bin/apu-1-config
--with-ssl
--enable-maintainer-mode
#make
#make install
确定一下svn有没有安装成功
#/usr/local/svn/bin/svnserve - -version
会看到相关版本信息!
完了再看看apache 的相关模块有没有加载!如下!
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
这个如果可以在httpd.conf中可以找到, 到此如果一直都顺利的话就基本没什么问题!继续往下!
开始建立版本库
#/usr/local/svn/bin/svnadmin create /svn/project/test /*创建仓库"test"测试
#ls /svn/project/test /*查看有没有创建好,如果多了一些文件则说明版本库已经创建好
导入项目文件到版本库
/usr/local/svn/bin/ svn import
/usr/local/svn /OpenDevSvn file:///usr/local/svn/project/test -m "init"
(注意:这里我事先在svn目录下面放置了一个OpenDevSvn项目,你也可以放置在其他地方,后面是导入到你建立的test库下面去)
这个一定要执行成功
配置apache支持svn
#vi /usr/local/apache/conf/httpd.conf
在文件的末尾,也就是文件的最下面加入
<Location /svn>
DAV svn
SVNParentPath /usr/local/svn/project //你指定的虚拟目录
AuthType Basic
AuthName "Hello welcome to here"
AuthUserFile /usr/local/svn/passwd //此处是此处修改为访问版本库用户的文件用apache 的htpasswd命令生成(后面的添加用户将会生成,请往下看))
AuthzSVNAccessFile /usr/local/svn/authz .// 此处修改为访问版本库权限的文件(可以从test目录下的conf下拷贝过来)
Require valid-user
</Location>
配置svn权限管理
1 . 添加用户:
# /usr/local/apache/bin/htpasswd –c /usr/local/svn/passwd user1 (//注意这里生成的路径与上面/usr/local/svn/passwd 的应该一致)
第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
第二次添加用户不需要带 –c 参数 如:
# /usr/local/apache/bin/htpasswd /usr/local/svn/passwd user2
2 . 权限分配:
注意上面的httpd.conf最下面添加的AuthzSVNAccessFile /usr/local/svn/authz
用来控制权限分配
#vi usr/local/svn/authz
前面我用htpasswd生成了一个user1用户
下面我将给这个用户分配权限
[groups]
# harry_and_sally = harry,sally
admin=user1 //我添加的一个user1 (admin可以自定义)
[/] //仓库test的根目录下的访问权限(这里可以指定相应的目录下)
# harry = rw
# * =
@admin=rw (给admin的user1赋给读写的权限)
[repository:/] //这个表示在所有仓库的根目录下(这里可以指定相应的目录下)
# @harry_and_sally = rw
# * = r
@admin=rw (给admin的user1赋给读写的权限)
#注释的部分可以自己去掉
在编辑authz.文件时,所有行都必须要顶头写,不能有缩行出现,否则会报 错:"Access denied: 'user1' ",里面的内容可以根据自己的需要自行添加,不必与我上面所写的相同!
重启apache服务和启动svn服务
#/usr/local/apache/bin/apachectl –k restart
就可以通过 http://192.168.0.1/svn/test 这个URL来访问仓库了,当然,受权限的限制,必须是合法用户才能访问且具有相应的权限
如果你能根据权限看见项目的目录结构,那么恭喜你配置成功了.
文章出处:飞诺网(www.firnow.com):http://dev.firnow.com/course/3_program/rg/20100721/473432.html