subversion for linux的安装(SVN+apache+linux)

1.  软件环境

1. 版本
软件 版本 说明
Linux redhat 2.6.9-5.EL 
APR APR-1.2.12 Apache可移植运行库
APR-util APR-util-1.2.12 
Apache httpd-2.2.6.tar.gz 
Subversion subversion-1.4.5.tar.gz 
Subversion-deps subversion-deps-1.4.5.tar.gz svn编译时需要的程序
2. 下载
* Subversion相关软件下载 http://www.tigris.org/servlets/NewsItemView?newsItemID=1940
* Apache相关软件下载: http://httpd.apache.org/download.cgi

安装(完全按以下命令配置即可)
安装APR-1.2.12 APR-util-1.2.12

1.
# tar zxvf apr-1.2.12.tar.gz
# cd apr-1.2.12
# ./configure
# make
# make install

2.
# tar zxvf apr-util-1.2.12.tar.gz
# cd apr-util-1.2.12
# . /configure --with-apr=/usr/local/apr
# make
# make install

安装apache 2.2.6
1. 解包  httpd-2.2.6.tar.gz

# tar xzvf httpd-2.2.6.tar.gz
# cd httpd-2.2.6

2. 生成配置文件

# ./configure --prefix=/usr/local/apache2  --enable-dav --enable-modules=so  -- enable-dav-fs   --enable-maintainer-mode --enable-rewrite --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config

3. 生成 make 文件,并安装

# make
# make install

4. 编辑配置文件 httpd.conf

# vi /usr/local/apache2/conf/httpd.conf

修改内容:

      Listen localhost:80      

      ServerName localhost:80
保存退出

* apache的默认端口为 80
* Svn的默认端口为 3690
5. 启动 Apache 服务:

# /usr/local/apache2/bin/apachectl start

6. 浏览网站:
用浏览器查看http://localhost/, 得到 it works ,说明 apache 已经配置成功了。

需要将 linux 的防火墙关闭,否则其他 IP 地址无法访问
关闭防火墙命令: service iptables stop
7. 停止 Apache 服务:

# /usr/local/apache2/bin/apachectl stop

8. 设置启动系统后,自启动 Apache 服务
编辑etc/rc.d/rc.local
# vi /etc/rc.d/rc.local

在最后加上一句:
/usr/local/apache2/bin/apachectl start

 

 

 

Subversion1.3.2安装以及配置
1.Subrsion安装

# tar xvzf Subversion-1.3.2.tar.gz
# cd Subversion-1.3.2
# ./configure  --with-apxs=/usr/local/apache2/bin/apxs  

--with-ssl  --with-zlib

--prefix=/usr/local/subversion
# make
# make install

 

查看subversion两个动态库有没有安装成功
# vi /usr/local/apache2/conf/httpd.conf
看到下面两个模块说明安装成功
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.s
o

 

FAQ:  configure可能存在的问题及解决方法
1. configure: error: could not find library containing RSA_new
解决方法:   yum install openssl-devel
2. configure: error: no XML parser was found: expat or libxml 2.x required
解决方法:   #   yum install expat-devel
3. configure: error: --with-zlib requires an argument.
解决方法:   去掉此选项

* httpd: Syntax error on line 54 of /usr/local/apache2/conf/httpd.conf: Cannot load /usr/local/apache2/modules/mod_dav_svn.so into server: /usr/local/apache2/modules/mod_dav_svn.so: undefined symbol: dav_register_provider
answer  make sure you have your apache compiled with the dav options:
--enable-dav     --enable-dav-fs     --enable-dav-lock


2.Subversion的建立与使用仓库使用

//创建库文件所在的目录 (svnroot用户进行下面的操作 )
$mkdir /home/svnroot/repos
在这里,我们假设设置/home/svnroot/repos目录下的svn1和svn2两个目录为仓库。
用svnroot用户运行(如果用root用户,则在运行完这两个程序之后要将这两个目录的所有者权限更改为用户 svnroot 命令是:chown –R svnroot : svnroot /home/svnroot/repos)
$/usr/local/subversion/svnadmin create /home/svnroot/repos/svn1
$ /usr/local /subversion/svnadmin create / home/svnroot /repos/svn2
这样,我们使用的时候,就可以向里面提交文件。
仓库的使用,必须先把服务搭建起来才行。我们等后面的服务器配置后再讲。

3、Subversion服务器的搭建 配置apache支持svn
我们使用与Apache模块的方式运行。
首先,把我们需要的SVN模块加载上,修改Apache的配置文件httpd.conf:

# vi /usr/local/apache2/conf/httpd.conf

加入下面2 行: 默认 Subrsion 安装成功后会自动加上
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

然后配置仓库:

# vi /usr/local/apache2/conf/httpd.conf

加入下面配置信息:

<Location /svn>
    DAV svn

        # ( 此处配置你的版本库根目录的父目录 )
    SVNParentPath /usr/local/svnroot/repos  
    AuthType Basic

        # 此处字符串内容修改为提示对话框标题
    AuthName "Subversion repository"  

# ( 此处修改为访问版本库用户的文件,用apache  的  htpasswd 命令生成 )
    AuthUserFile /usr/local/svnroot/repos /svn-auth-file  

# 此处修改为访问版本库权限的文件
    AuthzSVNAccessFile /usr/local/svnroot/repos /svn-access-file


    Require valid-user </Location>

然后, 创建svn用户( -m:MD5加密  c:创建新的文件,第一次创建用户时需要 )
$/usr/local/apache2/bin/ htpasswd -cm /etc/svn-auth-file dl1
然后,会提示输入密码,这里就加入了一个用户了。然后再加一个用户:
$ /usr/local/apache2/bin / htpasswd -m /etc/svn-auth-file dl2
$ /usr/local/apache2/bin / htpasswd -m /etc/svn-auth-file dl3

之后 创建svn用户访问权限 文件 svn-access-file 

$vi svn-access-file

# 群组设置

[groups]

# 群组里的成员 设置

svn1-developers = dl1,dl2,dl3 
    svn2-developers = dl2,dl3           
    

# svn1仓库根目录下的访问权限

[svn1:/]

# 如果在前面加上@符号,则表示这是个群组权限设置

@svn1-developers = rw

 

# svn2仓库根目录下的访问权限
        [svn2:/]

# dl1用户在svn2仓库根目录下只有读权限
     dl1 = r

# dl2用户在svn2仓库根目录下无任何权限
     dl2 =

 

# 这个表示在所有仓库的根目录下

[/]

# 这个表示对所有的用户都具有读权限
    * = r


 

最后测试( 需要 重启Apache

通过 下面url请求测试:
http://localhost/ svn /svn1
http://localhost/ svn /svn2
这两个URL来访问仓库了,当然,要受权限的限制,必须是合法用户才能访问且具有相应的权限
客户端的使用,可以通过许多客户端GUI软件来用。比如TortoiseSVN就很好用。
官方网址: http://tortoisesvn.tigris.org/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值