CentOS linux下安装和配置Apache+SVN(用浏览器http方式访问SVN目录)

时间:2024-04-21 18:33:10

在CentOS linux下安装SVN,我们可以进行以下步骤:

第一步:安装CentOS Linux操作系统,并在CentOS安装进行的同时,自定义安装这一步,一定要勾选Subversion(在“开发工具”里)和Web服务器(Apache)。

我用的是CentOS 6.4版本,只需要安装DVD1这个iso文件即可。这个DVD文件中有我们下面用到的许多配置文件和模块文件,像mod_dav_svn等文件,都不需要用yum命令进行额外下载安装(光盘中的文件的版本都是进行严格匹配的)。

第一次启动CentOS时,你就可以运行命令 svn --version,查看是否提示SVN版本信息。

[root@svn ~]# svn --version
svn,版本 1.6. (r934486)
编译于 Jun ,:: 版权所有 (C) - CollabNet。
Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。
此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。 可使用以下的版本库访问模块: * ra_neon : 通过 WebDAV 协议使用 neon 访问版本库的模块。
- 处理“http”方案
- 处理“https”方案
* ra_svn : 使用 svn 网络协议访问版本库的模块。 - 使用 Cyrus SASL 认证
- 处理“svn”方案
* ra_local : 访问本地磁盘的版本库模块。
- 处理“file”方案

【准备工作】

1.关闭防火墙、做好网络配置。

此时,我们要关闭防火墙,执行命令 service iptables stop。同时执行命令setup,选择“网络配置”,去掉DHCP,设置192.168.2.20(客户端也在192.168.2.x同一个网段内),子网掩码255.255.255.0。

2.从DVD1光盘中查找,找到安装Apache对接SVN的模块安装包:mod_dav_svn-1.6.11-7.el6.x86_64.rpm,建议放到/tmp目录下。

第二步:创建SVN文件版本库和项目。

如果我们要创建一个SVN项目叫bdbt,放到/opt/svndata路径中。

执行命令:

mkdir /opt/svndata
svnadmin create /opt/svndata/bdbt

svndata是SVN的版本库名,我们可在/opt/svndata/下创意任意项目。

第三步:到Apache(Web服务器)中配置SVN。

首先到/etc/httpd/conf/httpd.conf中找到 ServerName www.example.com:80,把这句话改成ServerName 192.168.2.20:80(192.168.2.20在本文【准备工作】中的网络配置这一步已经配置好)。

第四步:安装好/tmp目录下的mod_dav_svn-1.6.11-7.el6.x86_64.rpm文件。

用rpm -ivh mod_dav_svn-1.6.11-7.el6.x86_64.rpm命令执行安装,此时/etc/httpd/conf.d/目录下多了subversion.conf,而且/usr/lib64/httpd/modules目录下也多了两个模块文件:mod_authz_svn.so和mod_dav_svn.so。

下面我们在/etc/httpd/conf.d/subversion.conf文件中添加两样东西:

(1)一般最上面都会有这样的两句LoadModule,如果没有则需添加:

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

(2)最下面的Location标签。/svn是虚拟目录,映射到/opt/svndata中。

<Location /svn>
DAV svn
SVNParentPath /opt/svndata # Limit write permission to list of valid users.
<LimitExcept GET PROPFIND OPTIONS REPORT>
# Require SSL connection for password protection.
# SSLRequireSSL AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /opt/svndata/passwd
Require valid-user
</LimitExcept>
</Location>

上面AuthUserFile 的 /opt/svndata/passwd,passwd是一个密码文件,需要htpasswd -c命令来生成。

htpasswd -c /opt/svndata/passwd user1

回车(添加用户名为user1),

提示让你输入密码:

在输入一次密码:

如果此时需要添加多个登录账户,来执行

htpasswd -b /opt/svndata/passwd user2 

(用户名:user2,密码123直接写在后面)

回车之后追加到刚才建立的passwd文件中,打开passwd密码文件可以看到密码都是加密的。

此时,用service httpd restart重启Apache服务。

上面我们已经创建好/opt/svndata/bdbt文件版本库。

要把读取bdbt目录的root的拥有人改变成apache,并更改bdbt的安全上下文。

 chown -R apache.apache bdbt
chcon -R -t httpd_sys_content_t bdbt

回车,即可访问http://192.168.2.20/svn/bdbt