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

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

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

#准备工作#

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

#Subversion的安装# 

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

# cd /usr/local/src
# wget http://apache.fayea.com/subversion/subversion-1.8.17.tar.gz
# tar zxf subversion-1.8..tar.gz
# cd subversion-1.8.
# ./configure --prefix=/usr/local/subversion-1.8. --with-apr=/usr/local/apr-1.5. --with-apr-util=/usr/local/apr-util-1.5. --with-sqlite=/usr/local/sqlite-3.8.7.4
# make && make install
# ln -s /usr/local/subversion-1.8./ /usr/local/subversion

给SVN创建仓库根目录:

# mkdir -p /data/svnserver

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

# /usr/local/subversion-1.8./bin/svnadmin create /data/svnserver/proj1
# chmod -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./bin/svnserve -d -r /data/svnserver

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

# vim /etc/passwd

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

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

$ exit
# vim /etc/passwd www:x::::/home/svn:/sbin/nologin

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

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

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

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

# kill - 

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 ;
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协议访问。

【推荐】CentOS安装Subversion-1.8.11+HTTP协议支持配置的更多相关文章

  1. CentOS安装Subversion 1.9.*版本客户端

    安装yum仓库 以下以CentOS6为例,其他类似 # vim /etc/yum.repos.d/wandisco-svn.rep [WandiscoSVN] name=Wandisco SVN Re ...

  2. 【推荐】CentOS安装Subversion-1.8.17+HTTP协议支持配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. 我们需要搭建一个自己的SVN服务器. 此外,搭建好的SVN服务器除了需要支持svn协议外,最好还需要支持HTTP协议和HTTPS协 ...

  3. 如何在 Ubuntu 和 CentOS 上启用 Nginx 的 HTTP/2 协议支持

    HTTP/2 是 HTTP 网络协议的主要修订版本,其专注于 HTTP 协议的性能改进.HTTP/2 协议的目标是减少延迟,并且允许在 Web 浏览器和服务器之间的一个连接上并行发起多个请求,因此 W ...

  4. CentOS安装Nexus(Maven私有库)详细配置及上传本地jar到私服

    Nexus原理 Maven的原理就是将jar从远程中央仓库下载到PC磁盘的本地仓库,当本地仓库没有发现需要的jar就会去Maven默认的远程中央仓库Maven Central(由Apache维护)中寻 ...

  5. centos安装后第一次重启,许可协议、Kdump

    1.许可协议,服务器键盘操作找到许可 确定(遇到过,第一次懵逼了) 2.Kdump是RHEL提供的一个崩溃转储功能,用于在系统发生故障时提供分析数据,它会占用系统内存,一般选择关闭(默认是关闭)(这个 ...

  6. linux下lighttpdserver的具体安装步骤 以及对flv流媒体的支持配置

    准备条件: a,创建/usr/local/lighttpd文件夹,用于安装lighttpd b,创建lighttpd用户password为lighttpd账号,用于lighttpd的启动用户 c,安装 ...

  7. centos 6.5源码编译安装subversion 1.8.10

    一.简介 CentOS 6.5的yum源可以安装的SVN客户端版本太低了,1.6.11,所以需要升级到1.8.10,而官网有没有找到1.8.10的安装包,只能选择源码编译安装. 二.安装步骤 参考官网 ...

  8. CentOS安装node.js-8.11.1+替换淘宝NPM镜像

    注:以下所有操作均在CentOS 6.8 x86_64位系统下完成. #准备工作# 由于node.js-8.11.1在源码编译安装的时候需要gcc 4.9.4或clang++ 3.4.2以上版本的支持 ...

  9. 【推荐】CentOS安装Tomcat-7.0.57+启动配置+安全配置+性能配置

    注:以下所有操作均在CentOS 6.5 x86_64位系统下完成. #准备工作# 在安装Tomcat之前,请确保已经安装了JDK-1.7环境,具体见<CentOS安装JDK-1.7>. ...

随机推荐

  1. ASP.NET AntiXSS的作用

    XSS跨站脚本攻击        是指用户输入HTML编码对网站进行跨站攻击.            通过使用FCKeditor.FreeTextBox.Rich TextBox.Cute Edito ...

  2. Bootstrap3系列:输入框组

    1. 基本实例 通过在文本输入框 <input> 前面.后面或是两边加上文字或按钮,实现对表单控件的扩展. .input-group包含.input-group-addon给 .form- ...

  3. AFNetworking 3.0 源码解读(二)之 AFSecurityPolicy

    在我们平时的开发中,对网络连接安全方面所做的努力,应该占据很重要的位置. 在解释AFSecurityPolicy之前,我们先把基础的http/https 知识简单的普及一下.获取这方面的信息可通过这本 ...

  4. ASP.NET Core 中文文档 第三章 原理(12)托管

    原文:Hosting 作者:Steve Smith 翻译:娄宇(Lyrics) 校对:何镇汐.许登洋(Seay) 为了运行 ASP.NET Core 应用程序,你需要使用 WebHostBuilder ...

  5. iOS 保存、读取与应用状态

    固化 对于大多数iOS应用,可以将其功能总结为:提供一套界面,帮助用户管理特定的数据.在这一过程中,不同类型的对象要各司其职:模型对象负责保存数据,视图对象负责显示数据,控制器对象负责在模型对象与视图 ...

  6. jquery禁用下拉框

    禁用下拉框 //下拉框禁用 $("select").each(function () { $("#" + this.id).attr("disable ...

  7. sql将查询的结果集一次性插入到表变量中

    sql代码: declare @Subject table (--题目表变量 SubjectID int, Question nvarchar(MAX), CorrectAnswer ), Expla ...

  8. HTML5新增及移除的元素

    HTML经过10多年的发展,其元素经历了废弃与不断重新定义的过程.为了更好的处理现在的互联网应用,HTML5新增了图形绘制.多媒体播放.页面结构.应用程序存储.网络工作等新元素.http://hove ...

  9. 简述9种社交概念 SNS究竟用来干嘛?

    1.QQ 必备型交流工具基本上每一个网民最少有一个QQ,QQ已经成为网民的标配,网络生活中已经离不开QQ了.虽然大家嘴上一直在骂 QQ这个不好,那个不对,但是很少有人能彻底离开QQ.QQ属于IM软件, ...

  10. (原创)解决.net 下使用uploadify,在火狐浏览器下的error 302

    简单粗劣说下哈,通过uploadify中flash在火狐下上传,造成了erroe 302, 是因为其session丢失,并修改了其sessionID. 网上有很多案列,可并没有这么直接.感觉绕了点弯. ...