Linux下安装apache和subversion方法

写了一个总结

Linux(RH9)下安装apache和subversion 方法

A唐哥刚刚配成功 ,我参考一些网上的文章和实战经验,写了一个总结。

一、所需安装包:
(1)、Apache --httpd-2.0.59.tar.gz
(2)、subveision  --subversion - 1.4.4版
包含两个包
subversion-1.4.4.tar.gz   核心代码包
subversion-deps-1.4.4.tar.gz 依赖代码包

二、安装步骤:

1、安装Apache
  首先解压httpd--2.0.59包
# tar -xzvf httpd-2.0.59.tar.gz
# cd httpd-2.0.59
编译参数  (默认安装目录/usr/local)
# ./configure --enable-module=so --enable-dav --enable-dav-fs --enable-so --prefix=/usr/local/apache2   
#make
#make install

2、安装subversion - 1.4.4
分别解压两个压缩包,内容将解压到同一个目录 subversion-1.4.4,(默认解压在同一个目录下)
#tar -xzvf subversion-1.4.4.tar.gz
#tar -xzvf subversion-deps-1.4.4.tar.gz
进入该文件夹,编译参数为
#cd subversion - 1.4.4
#./configure --prefix=/usr/local/subversion
--with-apxs=/usr/local/apache2/bin/apxs
--with-apr=/usr/local/apache2
--with-apr-util=/usr/local/apache2
#make
#make install

3、配置SVN服务器

(1) 修改版本库配置文件:
版本库1:
vi /home/svnroot/repository/conf/svnserve.conf

内容修改为:
[general]
anon-access = none
auth-access = write
password-db = /home/svnroot/repository/authfile  //用户配置文件
authz-db = /home/svnroot/repository/authz.conf  //权限配置文件
##realm = test

(2)修改Apache配置文件,添加以下数据至httpd.conf

<Location /svn>
   DAV svn
   SVNPath  /svnroot/repository
   SVNParentPath /home/svnroot/      //svn父目录
   AuthzSVNAccessFile /home/svnroot/repository/authz.conf     //权限配置文件
   AuthType Basic      //连接类型设置
   AuthName "Subversion.zoneyump"      //连接框提示
   AuthUserFile /home/svnroot/repository/authfile      //用户配置文件
   </LimitExcept GET PROPFIND OPTIONS REPORT>
   Require valid-user      //采用何种认证
   </LimitExcept>
   </Location>

   //其中authfile是通过
  htpasswd -b -c /home/svnroot/repository/authfile username password   //来创建的
   //"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,
   //则只能第一个用户可以访问新建库

重启apache
#cd /usr/local/apache2/bin/
#./apachectl restart
//打开浏览器访问http://localhost/svn/test/,如果有东西显示就说明成功。

4.权限管理
1)增加用户

# htpasswd /home/svnroot/repository/authfile name
//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
# htpasswd authfile 用户名(加入新的用户)

2)权限分配

配置用户访问权限:
vi /home/svnroot/repository/authz.conf

  为了简化配置,3个版本库共用1个权限配置文件/home/svnroot/repository/pwd.conf。如有必要,也可以分开。
文件中定义用户组和版本库目录权限。

注意:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。

用户组格式:
[groups]
<用户组名> = <用户1>,<用户2>
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。

版本库目录格式:
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>

  其中,方框号内部分可以有多种写法:
/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/home/svnroot/repository。这样,/就是表示对全部版本库设置权限。
test:/,表示对版本库test设置权限

权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。

示例:
[groups]
admin = mangosoft

[/]
@admin = rw

[test:/]
@admin = rw
lsw = rw