你好,游客 登录 注册 搜索
背景:
阅读新闻

CentOS安装Subversion-1.8.11+HTTP协议支持配置

[日期:2016-12-08] 来源:Linux社区  作者:brishenzhou [字体: ]

注:以下所有操作均在CentOS 6.5 x86_64位系统下完成。

我们需要搭建一个自己的SVN服务器。

此外,搭建好的SVN服务器除了需要支持svn协议外,最好还需要支持HTTP协议和HTTPS协议,这个时候就需要有Web服务器的介入工作。

#准备工作#

在这之前需要先把Apache和Nginx安装好,具体见:《CentOS 6.5安装Apache-2.4.10及安全配置》、《CentOS 6.5安装Nginx-1.6.2及安全配置》

#Subversion的安装# 

开始下载Subversion并进行编译安装: 

# wget http://mirror.bit.edu.cn/apache/subversion/subversion-1.8.11.tar.gz
# tar zxf subversion-1.8.11.tar.gz
# cd subversion-1.8.11
# ./configure --prefix=/usr/local/subversion-1.8.11 --with-apr=/usr/local/apr-1.4.5 --with-apr-util=/usr/local/apr-util-1.3.12 --with-sqlite=/usr/local/sqlite-3.8.7.4
# make && make install
# ln -s /usr/local/subversion-1.8.11/ /usr/local/subversio

给SVN创建仓库根目录:

# mkdir -p /data/svnserver

假设我们现在需要开发一个名为proj1的项目,给这个项目创建一个SVN仓库:

# /usr/local/subversion-1.8.11/bin/svnadmin create /data/svnserver/proj1
# chmod 777 -R /data/svnserver/proj1/db/

注:上面给db/目录加入777权限是因为提交代码时需要对该目录进行修改操作,否则可能提交代码时会提示错误:

db/txn-current-lock permission denied

给SVN创建Apache的Web用户验证文件:

# /usr/local/apache/bin/htpasswd -cm /data/svnserver/auth.conf brishenzhou
New password:
Re-type new password:
Adding password for user brishenzhou
# /usr/local/apache/bin/htpasswd -m /data/svnserver/auth.conf otherman
New password:
Re-type new password:
Adding password for user otherman

注:只有第一次需要加-c参数,后面再添加用戶则不需要。

给SVN创建仓库访问权限文件: 

# vim /data/svnserver/access.conf

[groups]
admin=brishenzhou
developer=brishenzhou,otherman

# Default access rule for ALL repositories
# admins can write
[/]
@admin=rw

# Allow developers complete access to their project repos
[proj1:/]
@developer=rw

至此,Subversion的安装已经完毕,接下来是让其与Apache协同工作,支持HTTP协议访问。

#Subversion+Apache的HTTP协议支持#

把subversion相关的so文件拷贝过去给Apache: 

# ls /usr/local/subversion/libexec/
mod_dav_svn.so mod_authz_svn.so
# cp /usr/local/subversion/libexec/mod_dav_svn.so /usr/local/apache/modules/mod_dav_svn.so
# cp /usr/local/subversion/libexec/mod_authz_svn.so /usr/local/apache/modules/mod_authz_svn.so

接着修改http.conf配置文件,如下:

# vim /usr/local/apache/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 /data/svnserver
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /data/svnserver/auth.conf
Require valid-user
AuthzSVNAccessFile /data/svnserver/access.conf
</Location>

注:VIM下可以使用快捷键shift+g到文件末尾添加Location。

#Subversion的启动/关闭#

首先启动SVN服务,为了安全这里必须使用www用户来启动(这个用户也必须是Apache的工作用户): 

# chown -R www:www /data/svnserver
# su -l www
$ /usr/local/subversion-1.8.11/bin/svnserve -d -r /data/svnserver

注:如果在切换用户身份的时候提示错误:This account is currently not available. 这个时候先临时修改svn账号的登录权限:

# vim /etc/passwd

www:x:501:501::/home/www:/bin/bash

然后再切换,执行完命令后切换回root再修改svn账号登录权限:

$ exit
# vim /etc/passwd

www:x:501:501::/home/svn:/sbin/nologin

这里我们来查看下当前subversion的进程:

# ps -aux | grep svn
www        6564    0.0   0.0       /usr/local/subversion-1.8.11/bin/svnserve -d -r /data/svnserver

从上面进程可以看出进程的属主是www用户,之后Subversion将会监听3690端口。

如果要关闭Subversion服务,只需要使用kill命令杀死进程即可,比如:

# kill -9 6564

Subversion服务启动完毕后,接着启动Apache服务:

# /usr/local/apache/bin/apachectl restart

这个时候打开浏览器访问地址http://youripaddress:8888/svn/proj1应该可以看到:

输入前面设置的用户名和密码后就可以看到:

证明访问成功。

#Nginx反向代理#

为了不需要输入8888端口号,这里使用Nginx来做反向代理,再将请求转给Apache,配置nginx.conf: 

# vim /usr/local/nginx/conf/nginx.conf

server {
    listen        80;
    server_name   localhost;
    location ~ ^/svn/ {
        access_log    off;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://127.0.0.1:8888;
    }
}

这个时候就可以直接访问而不需要带上8888端口号了。

至此,Subversion服务器安装成功并支持HTTP协议访问。

Ubuntu搭建Subversion + USVN环境  http://www.linuxidc.com/Linux/2016-07/133279.htm

Linux中Subversion配置实例 http://www.linuxidc.com/Linux/2012-02/53109.htm

CentOS 6.2 SVN搭建 (YUM安装) http://www.linuxidc.com/Linux/2013-10/91903.htm

Apache+SVN搭建SVN服务器 http://www.linuxidc.com/Linux/2013-03/81379.htm

Windows下SVN服务器搭建和使用 + 客户端重新设置密码 http://www.linuxidc.com/Linux/2013-05/85189p5.htm

Ubuntu Server 12.04 安装 SVN 并迁移 Virtual SVN数据 http://www.linuxidc.com/Linux/2013-05/84695.htm

Ubuntu Server搭建svn服务以及迁移方法 http://www.linuxidc.com/Linux/2013-05/84693.htm

借助网盘搭建SVN服务器 http://www.linuxidc.com/Linux/2013-10/91271.htm

Subversion (SVN) 的详细介绍请点这里
Subversion (SVN) 的下载地址请点这里

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-12/138039.htm

linux
相关资讯       CentOS安装Subversion 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款