2013年12月5日 admin 发表评论 阅读评论

以下是centos环境下,以yum安装apache及其相关软件。svn使用源码包编译,使用官网最新的1.8.5版本。

一、安装apache openldap及其相关模块
yum -y install httpd httpd-devel openldap openldap-devel mod_authz_ldap openssl  openssl-devel zlib zlib-devel apr apr-uti 
二、安装sqlite

由于centos6.4上自带的sqlite 3.6.20版本太低,不符合subversion的最低要求,所以需要通过源码包安装

wget http://www.sqlite.org/2013/sqlite-autoconf-3080100.tar.gz
tar zxvf sqlite-autoconf-3080100.tar.gz
cd sqlite-autoconf-3080100
./configure
make && make install
三、安装subversion

1、subversion源码包安装

tar zxvf subversion-1.8.5.tar.gz
mkdir -p ./subversion-1.8.5/sqlite-amalgamation
cp ./sqlite-autoconf-3080100/sqlite3.c ./subversion-1.8.5/sqlite-amalgamation
cd subversion-1.8.5
./configure --prefix=/usr/local/subversion
make && make install

2、配置环境变量

echo 'PATH=$PATH:/usr/local/subversion/bin' >>/etc/profile
echo 'export PATH'>>/etc/profile
source /etc/profile

3、创建版本库

cd /data1/svnroot
svnadmin create --pre-1.6-compatible test

注意:如果这里不写--pre-1.6-compatible,更新svn的时候会报post commit FS processing had error: Couldn’t open rep-cache database

四、subversion与apache的整合

1、复制subversion下的mod文件

cp /usr/local/subversion/libexec/mod_authz_svn.so /etc/httpd/modules/
cp /usr/local/subversion/libexec/mod_dav_svn.so /etc/httpd/modules/

2、配置subversion.conf文件

vim /etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<VirtualHost *:80>
ServerName svn.361way.com
LogLevel warn
<Directory "/data1/svnroot">
# Order deny,allow
# Deny from all
# Allow from 115.236.xxx.xxx/29
</Directory>
<Location /svn>
# Order deny,allow
# Deny from all
# Allow from 115.236.xxx.xxx/29
# Allow from 119.37.xxx.xxx/24
DAV svn
SVNParentPath /data1/svnroot
AuthBasicAuthoritative on
AuthType Basic
AuthName "csvn"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://127.0.0.1/ou=Users,domainName=sangame.com,o=domains,dc=sangame,dc=com?uid?sub?(|(&(objectClass=mailuser)(accountStatus=active))(cn=svnadmin))"
AuthLDAPBindDN "cn=ldapread,dc=361way,dc=com"
AuthLDAPBindPassword "123456"
#AuthUserFile /etc/httpd/conf/svn.passwd
AuthzSVNAccessFile /etc/httpd/conf/svnauthz.conf
# Satisfy Any
Require valid-user
</Location>
</VirtualHost>

如果不使用ldap认证,而使用密码文件认证则配置文件可以改为:

<Location />
DAV svn
SVNParentPath /data1/svnroot/ #svn 根目录
SVNListParentPath On
SVNAutoversioning On
SVNReposName "svn"
AuthzSVNAccessFile /opt/svn/subversion/conf/authz.conf #目录分组权限
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /opt/svn/subversion/conf/passwd.conf #密码验证文件
Require valid-user
</Location>

3、配置SVN权限认证文件

vim /etc/httpd/conf/svnauthz.conf
[groups]
admin=robin,svnadmin,ybk
[/]
@admin = rw
[test:/]
ybk= rw
zzy = rw

注:

1、上面的test对应的是svnadmin下create的目录。

2、@admin对应的是管理员组,可以再建其他组,如:java_team 、oam、market等。robin、svnadmin、ybk、zzy这些都是用户名 。如果要和ldap进行整合的话,确保这些用户在ldap中存在。

3、使用if-svnadmin 这类web程序做svn的用户权限管理时,需要确保svnauthz.conf文件对apache用户可写,不然在if-svnadmin修改时不生效。

4、确保/data1/svnroot目录apache用户可读写或直接属主改过apache,不然在使用TortoiseSVN等程序上传或删除时会提示权限拒绝。

以上配置完成后,就可以启动apache以http://svn.361way.com/svn/test 的方式防问了。

关于openldap的相关配置这里就不再细说。如果使用到dav方法的调用时,还要安装neon。(neon 是一个 HTTP 和 WebDAV 客户端的C语言开发包,支持 Linux/Unix。提供 HTTP/1.1 和 WebDAV 方法的高级接口以及底层的 HTTP 请求/回应处理,可轻松实现新的方法。)不过由于apache下有mod_dav_svn的模块整合,所以这里就不需要安装了。

五、其他

1、svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。这里是以apache整合的;独立服务的方式为svnserve -d -r /data1/svnroot方式启动进程,监听端口为3690 。

2、svn存储版本数据也有2种方式:BDB和FSFS。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。默认使用的存储方式也是FSFS方式。

最后,其相关组件及用途如下:

svn
命令行客户端程序。
svnversion
此工具用来显示工作拷贝的状态(用术语来说,就是当前项目的修订版本)。
svnlook
直接查看Subversion版本库的工具。
svnadmin
建立、调整和修复Subversion版本库的工具。
svndumpfilter
过滤Subversion版本库转储数据流的工具。
mod_dav_svn
ApacheHTTP服务器的一个插件,使版本库可以通过网络访问。
svnserve
一个单独运行的服务器程序,可以作为守护进程或由SSH调用。这是另一种使版本库可以通过网络访问的方式。
svnsync
一个通过网络增量镜像版本库的程序

3、apache和svnserver两种方式的访问方法

http://192.168.1.222/repos,采用了Apache作为服务器的话就可以以这种形式访问,权限由Apache设置。
svn://192.168.1.222/repos,采用了svnserve作为服务器的话那么就可以采用这种形式访问,它是一种基于TCP/IP的访问方式。权限由仓库的配置文件设置。

4、权限配置总结

用户组格式:
[groups]
用户组名 = 用户1,用户2
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:
[版本库:/项目目录]
@用户组名 = 权限
用户名 = 权限
其中,方框号内部分可以有多种写法:
/,表示根目录及以下。根目录是svnserve启动时指定的,我们指定为/home/svnroot/repository。这样,/就是表示对全部版本库设置权限。
test:/,表示对版本库test设置权限
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。

svn的安装(整合apache、ldap)包括错误解决post commit FS processing had error的更多相关文章

  1. win7 安装过程中遇到的错误解决方法

    win7 安装过程中遇到的错误解决方法 windows安装无法继续.若要安装windows 请单击 确定 重新启动计算机: 当 出现如上提示的时候,按下shift+f10 会打开命令窗口,进入到C:\ ...

  2. 持续集成之二:搭建SVN服务器(整合Apache+Subversion)

    安装环境 Red Hat Enterprise Linux Server release 7.3 (Maipo) jdk1.7.0_80 rhel-server-7.3-x86_64-dvd.iso ...

  3. ubuntu 环境下pycharm的 安装与激活教程 以及错误解决方法

    1. 基本安装: 1.1 打开Ubuntu的应用市场,并在搜索栏搜索pycharm,结果如下图所示 1.2 选择pro版本进行安装,结果如下图所示: 1.3打开安装后的pycharm,如果出现下图所示 ...

  4. Windows 安装启动apache时出现错误的解决方法

    配置安装Apache主服务发生错误:(OS 5)拒绝访问.  : AH00369: Failed to open the Windows service manager, perhaps you fo ...

  5. Linux 源码安装apache 与常见错误解决

    文档原位置 一.编译安装apache 1.解决依赖关系 httpd-2.4.4需要较新版本的apr和apr-util,因此需要事先对其进行升级. 升级方式有两种,一种是通过源代码编译安装,一种是直接升 ...

  6. 【linux】安装mysql出现 no curses错误解决方法

    安装mysql,在./configure时出现错误:error: No curses/termcap library found的解决办法 mysql版本:5.1.30 已经不记得这次是第几次安装my ...

  7. Cordova - 安装camera插件之后编译错误解决方法!

    安装camera插件之后,编译出错,错误截图如下: 刚开始以为是AAPT编译导致的,尝试关闭AAPT编译选项,但是不行,认真看了一下编译出错信息,应该是缺少文件导致的,随后在对应的目录中加入了缺失的文 ...

  8. Android Studio安装和配置的方法 & 错误解决

    Android Studio终于到了1.0时代了,所以我也试着去学习了下如何使用它.上手确实比较麻烦,今天就分享下如何去下载并使用它. 一.下载 & 安装 大家可以去google给出的地址下载 ...

  9. APACHE服务器500错误解决方法

    1.APACHE没开启rewrite模块. 解决办法:编辑apache的http.conf文件,找到#LoadModule rewrite_module modules/mod_rewrite.so, ...

随机推荐

  1. [bzoj3884]上帝与集合的正确用法——欧拉函数

    题目大意 题解 出题人博客 代码 #include <bits/stdc++.h> using namespace std; const int M = 10001000; int phi ...

  2. HDU1503(LCS,记录路径)

    Advanced Fruits Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  3. MSP432P401R时钟入门

    拿到msp432的板子差不多一年了,刚刚进行了开机点亮LED工程:         首先是msp432的时钟模块(CS),个人理解msp432最特色的功能应该是超低功耗和高性能的组合.432系列的时钟 ...

  4. linux USB HOST之EHCI和OHCI【转】

    转自:http://blog.csdn.net/ljzcom/article/details/8186914 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 2 关键数据结 ...

  5. Linux上Core Dump文件的形成和分析

    原文: http://baidutech.blog.51cto.com/4114344/904419 Core,又称之为Core Dump文件,是Unix/Linux操作系统的一种机制,对于线上服务而 ...

  6. 【 Tomcat 】后端tomcat获取真实IP

    环境: nginx + tomcat nginx.conf 配置: proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_ad ...

  7. 《Java编程思想》笔记 第十四章 类型信息

    1.RTTI:在运行时识别一个对象类型 JAVA在运行时 有时要 识别对象和类的信息这个机制叫RTTI.Java提供了两种机制去做这件事.传统的RTTI 和 反射. 传统的RTTI  假定编译时就已经 ...

  8. hdu 1147(线段相交)

    Pick-up sticks Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  9. ionic3 cordova ionic-native插件

    ionic-native插件 cordova安装插件 以及 ionic-native插件使用过程以及步骤 cordova plugin add cordova-plugin-插件名称. //安装插件 ...

  10. React Native - 0序言

    1. 什么是React Native? React Native是Facebook在React.js Conf 2015大会上推出的一个用于开发Android t iOS App的一个框架.主要编程语 ...