Linux中subversion(SVN)整合apache安装及配置

本安装环境为:opensuse12.1

所需安装包:


httpd-2.4.3.tar.gz

subversion-1.7.6.tar.gz

openssl-1.0.1c.tar.gz

neon-0.29.6.tar.gz

pcre-8.20.tar.gz

注:其中红色字体标识的为必须要,蓝色字体标识的为一些扩展包或者依赖包(要试情况下载安装)

当前我所用的是普通用户安装,并不是用的root用户

第一部分:安装

①.安装apache:

  1. tar -zxvf httpd-2.4.3.tar.gz

  2. cd httpd-2.4.3/

  3. ./configure –enable-ssl –enable-maintainer-mode –prefix=/usr/local/apache2 –enable-mods-shared=all

  4. make

  5. sudo make install


注:如果安装apache在第3步./configure的时候出现这样的错误:
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/


则需要先安装pcre-8.20.tar.gz这个包,安装步骤如下:

>i: tar -zxvf pcre-8.20.tar.gz

>ii: cd pcre-8.20/

>iii: ./configure

>iV: make

>V: sudo make install

安装完之后继续重新安装apache,先回到apache的源目录httpd-2.4.3文件夹中,然后从第3步可是重新编译安装.

②:安装subversion(SVN):

1.tar -zxvf subversion-1.7.6.tar.gz

注:这里需要添加一个neon的支持,就需要用到neon-0.29.6.tar.gz包,把这个包解压之后形成文件夹neon-0.29.6,然后把这儿文件夹拷贝到刚刚解压的SVN的源代码的根目录下面,并且重命名为neon

2.cd subversion-1.7.6

3../configure –prefix=/usr/local/subversion –with-apxs=/usr/local/apache2/bin/apxs –with-ssl

4.make

5.sudo make install

此时,SVN已经安装完毕,首先把/usr/local/subversion/bin这个目录加入到环境变量PATH中,然后运用命令svn –version,如果看到如下信息则SVN安装成功:

svn,版本 1.7.6 (r1370777)

编译于 Oct 13 2012,00:15:31

版权所有 (C) 2012 Apache 软件基金会。

此软件包含了许多人的贡献,请查看文件 NOTICE 以获得更多信息。

Subversion 是开放源代码软件,请参阅 http://>subversion.apache.org/ 站点。

可使用以下的版本库访问模块:

*ra_neon : 通过 WebDAV 协议使用 neon 访问版本库的模块。

-处理“http”方案

-处理“https”方案

*ra_svn : 使用 svn 网络协议访问版本库的模块。 - 使用 Cyrus SASL 认证

-处理“svn”方案

*ra_local : 访问本地磁盘的版本库模块。

-处理“file”方案

③:安装openssl

  1. tar -zxvf openssl-1.0.1c.tar.gz

  2. cd openssl-1.0.1c

  3. ./configure

  4. make

  5. sudo make install

第二部分:检查

①:检查svn是否已经添加到apache中

查看/usr/local/apache2/conf/httpd.conf中是否添加了

LoadModule dav_svn_module modules/mod_dav_svn.so

如果没有添加,则手动添加下.

②开启apache,进入到apache的bin目录,执行 sudo ./apachectl start

在浏览器中打开,http:://localhost, 看apache是否正常运行

第三部分:整合

①:创建SVN仓库

创建文件夹

$ mkdir -p /home/mysvn

运行创建版本库的命令,指定数据存储为 FSFS,如果要指定为 Berkeley DB,则将 fsfs 替换为 bdb

$ svnadmin create –fs-type fsfs /home/mysvn

②:整合apache和subversion

Subversion服务器有两种运行方式,一是可以作为Apache 2.0的一个模块,以WebDAV/DeltaV协议与外界连通;另外,也可使用Subversion 自带的小型服务器程序svnserve。

以http方式运行

在/usr/local/apache2/conf/httpd.conf中加入:

<Location /svn/repository>

DAV svn

SVNPath /home/mysvn

</Location>

在服务器的浏览器中输入网址: http://localhost/svn/repository/

这时候,你会看到reversion0的界面,说明仓库就已经可以工作了。

tips:此时如果不能看到,请小心检查以上几步,如果都正确,请检查自己的httpd.conf配置文件,其中检查apache调用svn的端口是否占用,因为linux自带的web服务占用的是80端口,而apache默认调用的也是80端口。

③:用户添加以及权限设置

1.用户添加:

因为subversion跟apache整合在一起,所以用户添加管理和权限设置都是apache的任务。

进入/urs/local/apaceh2/bin,添加用户

### 第一次: 以 -c 建立档案

htpasswd -c /etc/svn-auth-file harry

New password: *

Re-type new password: *

Adding password for user harry

htpasswd /etc/svn-auth-file sally

New password: *

Re-type new password: *

Adding password for user sally

2.用户权限添加

在/usr/local/apache2/conf/httpd.conf的加入:

<Location /svn/repository >

DAV svn

SVNPath /home/mysvn

AuthType Basic

AuthName "Subversion repository"

AuthUserFile /etc/svn-auth-file

Require valid-user

</Location>

重新启动 Apache后,如果有人要访问SVN服务器,系统会要求他输入用户名和密码。 只有输入Sally 或Harry的用户名和相应的密码,才可以对档案库进行修改和访问。

权限设置在svn-auth-file内

比如仓库rpo,其下有p1,p2两个目录,用户有a,b

#用户a,b只能对rpo目录下的目录进行read,没有权限write

[rpo:]

a = r

b = r

#用户a对p1有读写的功能,用户b只能读

[doc:/p1]

a = rw

b = r

tips:请注意用户会继承上级目录的权限。小心设置,不要相互冲突。

此时用户登录只需要输入正确的用户名和密码即可登录,如果不能访问,看以下说明:

tips:看你的用户是否有查看文件的权限,使用命令#chown –R apache.apache /path/to/file

④:用户组和用户组权限设置

用户组添加如下:

[groups]

Ppc = a, b, c

Symbian = d, e, f

用户组权限设置要在前面添加@标志,表示对组内所有成员权限一样

[doc:/]

@symbian = r

文章目录
  1. 1. 创建文件夹
  2. 2. 运行创建版本库的命令,指定数据存储为 FSFS,如果要指定为 Berkeley DB,则将 fsfs 替换为 bdb
  3. 3. ### 第一次: 以 -c 建立档案
  4. 4. htpasswd -c /etc/svn-auth-file harry
  5. 5. htpasswd /etc/svn-auth-file sally
,