linux(FC4)下SVN完全配置升级手册

工具包
httpd-2.2.3
下载地址
http://apache.justdn.org/httpd/
apr-1.2.7
apr-util-1.2.7
下载地址
http://apache.justdn.org/apr/
Oracle Berkeley DB 4.3.29 (一定要这个版本。高版本apr不支持)
下载地址
http://www.oracle.com/technology ... ey-db/db/index.html
SVN
下载地址
http://www.iusesvn.com/bbs/download/subversion-1.4.0.tar.gz
开始安装

*********这里的部骤和以前的有所改变请注意一下**********


首先安装Berkeley DB 4.3.29
tar zxvf db-4.3.29.tar.gz
cd db-4.3.29/build_unix
../dist/configure --prefix=/usr/local/db-4.3.29 --enable-compat185
make
make install

安装apr,apr-util
tar zxvf apr-1.2.7.tar.gz
cd apr-1.2.7
./configure --prefix=/usr/local/apr
make
make install


tar zxvf apr-util-1.2.7.tar.gz
cd apr-1.2.7
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr --with-berkeley-db=/usr/local/db-4.3.29/        //****这里是以前没有注意到的地方
make
make install

安装apache
tar zxvf httpd-2.2.3.tar.gz
cd httpd-2.2.3
./configure --prefix=/opt/apache-2.2.3 --enable-so --enable-rewrite=share --enable-proxy=share --enable-proxy-ajp=share --enable-dav=share --enable-dav-fs --with-apr=/usr/local/apr/ --with-apr-util=/usr/local/apr-util/
make
make install
#apache2.2以后不用再jk2 ,用mod_proxy_ajp模块即可



安装SVN
tar zxvf subversion-1.4.0.tar.gz
cd subversion-1.4.0
./configure --prefix=/opt/subverion --with-apxs=/opt/apache-2.2.3/bin/apxs --with-berkeley-db=/usr/local/db-4.3.29/ --with-ssl
make
make install

×××××××××××××安装完成×××××××××××××
如果在安装过程当中出现问题可以参考后面网址中的内容。
其中有一些包之间的兼容性问题,在这里就不多说,后面有一些网址上面有些说明自己可以看看。

配置

/创建库文件所在的目录
# mkdir /home/svnroot/repository
//进入subversion的bin目录
# cd /usr/local/subversion/bin
//创建仓库"test"
# ./svnadmin create /home/svnroot/repository/test
# cd /home/svnroot/repository/test
//看看是不是多了些文件,如果是则说明Subversion安装成功了
# ls –l
# cd /opt/subverion/bin
//这条语句将把路径/home/user/import下找到的文件导入到你创建的Subversion 仓库中去,
//提交后的修订版为1。
# ./svn import /home/user/import file:///home/svnroot/repository/test –m "注释"
//不让其他人有该目录的权限    这里的用户名可以自己定

# chown -R username:usergroup /home/svnroot/repository  //****这里也有所改变  

#后面有如何添加用户的命令

#  修改版本库配置文件:
版本库1:
vi /opt/svndata/repos1/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

修改Apache配置文件
# cd /opt/apache-2.2.3/bin
//启动Apache
# ./apachect1 start
# vi /opt/apache-2.2.3/conf/httpd.conf
   //在最下面添加
   LoadModule dav_svn_module modules/mod_dav_svn.so
   LoadModule authz_svn_module modules/mod_authz_svn.so
   <Location /svn>
   DAV svn
   SVNParentPath /home/svnroot/repository/ //svn父目录
   AuthzSVNAccessFile /home/svnroot/repository/authz.conf //权限配置文件
   AuthType Basic //连接类型设置
   AuthName "Subversion.zoneyump" //连接框提示
   AuthUserFile /home/svnroot/repository/authfile //用户配置文件
   Require valid-user //采用何种认证
   </Location>
   //其中authfile是通过
  htpasswd -b -c /home/svnroot/repository/authfile username password
   //来创建的
   //"Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,
   //则只能第一个用户可以访问新建库

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

这里的权限和用户可以自己去定义

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

# htpasswd /home/svnroot/repository/authfile wooin
//第一次设置用户时使用-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

删除无用文件:
rm /home/svnroot/repository/test/conf/authz
rm /home/svnroot/repository/test/conf/passwd

3. 启动svn
建立启动svn的用户:
useradd svnroot
passwd svnroot
根据提示为用户svnroot设置密码

允许用户svn访问版本库:
chown –R svnroot:daemon /home/svnroot/repository


启动svn:
su -c "svnserve -d --listen-port 9999 -r /opt/svndata" svnroot

其中:
su – svn表示以用户svn的身份启动svn
-d表示以daemon方式(后台运行)运行
--listen-port 9999表示使用9999端口,可以换成你需要的端口。但注意,使用1024以下的端口需要root权限
-r /opt/svndata指定根目录是/opt/svndata

检查:
ps -ef|grep svnserve

如果显示如下,即为启动成功:
svn    6941   1 0 15:07 ?    00:00:00 svnserve -d --listen-port 9999 -r /opt/svndata


将这个设置完成后。重启Apache,就可以通过
http://localhost/svn/test
这个URL来访问仓库了,当然,受权限的限制,必须是合法用户才能访问且具有相应的权限




备注:

1。 apache进程的权限:因为所有跟仓库传输的操作都是通过apache进程进行的,所以即使你给svn用户设置了很大的权限,但是apache进程没有访问仓库或者相关文件的权限也没有用,apache进程的权限设置在 /opt/apache-2.2.3/conf/httpd.conf 文件中配置,找到文件中的这两行:
User daemon # 将daemon改为svnroot,
Group daemon

2。

在/etc/profile的结尾设置一些svn启动时要做的工作
# start apache server for svn
/opt/apache-2.2.3/bin/apachectl start
export SVN_EDITOR=vi

3。/home/svnroot/respository下的文件操作权限有给svnroot.


相关网址
http://www.newbooks.com.cn/info/52691.html
http://www.neo.com.tw/archives/000614.html
http://www.goodspeed.com.cn/apache.html
http://blog.java-cn.com/user1/5463/archives/2005/15238.html
http://www.zhangjianfeng.com/?p=481
http://blog.yening.cn/2006/08/07/165.html
http://www.zeali.net/entry/359
http://www.iusesvn.com/bbs/thread-489-1-1.html

你可能感兴趣的:(apache,linux,SVN,Module,basic,subversion)