svn的安装(整合apache、ldap)包括错误解决post commit FS processing had error
以下是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的更多相关文章
- win7 安装过程中遇到的错误解决方法
win7 安装过程中遇到的错误解决方法 windows安装无法继续.若要安装windows 请单击 确定 重新启动计算机: 当 出现如上提示的时候,按下shift+f10 会打开命令窗口,进入到C:\ ...
- 持续集成之二:搭建SVN服务器(整合Apache+Subversion)
安装环境 Red Hat Enterprise Linux Server release 7.3 (Maipo) jdk1.7.0_80 rhel-server-7.3-x86_64-dvd.iso ...
- ubuntu 环境下pycharm的 安装与激活教程 以及错误解决方法
1. 基本安装: 1.1 打开Ubuntu的应用市场,并在搜索栏搜索pycharm,结果如下图所示 1.2 选择pro版本进行安装,结果如下图所示: 1.3打开安装后的pycharm,如果出现下图所示 ...
- Windows 安装启动apache时出现错误的解决方法
配置安装Apache主服务发生错误:(OS 5)拒绝访问. : AH00369: Failed to open the Windows service manager, perhaps you fo ...
- Linux 源码安装apache 与常见错误解决
文档原位置 一.编译安装apache 1.解决依赖关系 httpd-2.4.4需要较新版本的apr和apr-util,因此需要事先对其进行升级. 升级方式有两种,一种是通过源代码编译安装,一种是直接升 ...
- 【linux】安装mysql出现 no curses错误解决方法
安装mysql,在./configure时出现错误:error: No curses/termcap library found的解决办法 mysql版本:5.1.30 已经不记得这次是第几次安装my ...
- Cordova - 安装camera插件之后编译错误解决方法!
安装camera插件之后,编译出错,错误截图如下: 刚开始以为是AAPT编译导致的,尝试关闭AAPT编译选项,但是不行,认真看了一下编译出错信息,应该是缺少文件导致的,随后在对应的目录中加入了缺失的文 ...
- Android Studio安装和配置的方法 & 错误解决
Android Studio终于到了1.0时代了,所以我也试着去学习了下如何使用它.上手确实比较麻烦,今天就分享下如何去下载并使用它. 一.下载 & 安装 大家可以去google给出的地址下载 ...
- APACHE服务器500错误解决方法
1.APACHE没开启rewrite模块. 解决办法:编辑apache的http.conf文件,找到#LoadModule rewrite_module modules/mod_rewrite.so, ...
随机推荐
- [bzoj3884]上帝与集合的正确用法——欧拉函数
题目大意 题解 出题人博客 代码 #include <bits/stdc++.h> using namespace std; const int M = 10001000; int phi ...
- HDU1503(LCS,记录路径)
Advanced Fruits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- MSP432P401R时钟入门
拿到msp432的板子差不多一年了,刚刚进行了开机点亮LED工程: 首先是msp432的时钟模块(CS),个人理解msp432最特色的功能应该是超低功耗和高性能的组合.432系列的时钟 ...
- linux USB HOST之EHCI和OHCI【转】
转自:http://blog.csdn.net/ljzcom/article/details/8186914 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 2 关键数据结 ...
- Linux上Core Dump文件的形成和分析
原文: http://baidutech.blog.51cto.com/4114344/904419 Core,又称之为Core Dump文件,是Unix/Linux操作系统的一种机制,对于线上服务而 ...
- 【 Tomcat 】后端tomcat获取真实IP
环境: nginx + tomcat nginx.conf 配置: proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_ad ...
- 《Java编程思想》笔记 第十四章 类型信息
1.RTTI:在运行时识别一个对象类型 JAVA在运行时 有时要 识别对象和类的信息这个机制叫RTTI.Java提供了两种机制去做这件事.传统的RTTI 和 反射. 传统的RTTI 假定编译时就已经 ...
- hdu 1147(线段相交)
Pick-up sticks Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- ionic3 cordova ionic-native插件
ionic-native插件 cordova安装插件 以及 ionic-native插件使用过程以及步骤 cordova plugin add cordova-plugin-插件名称. //安装插件 ...
- React Native - 0序言
1. 什么是React Native? React Native是Facebook在React.js Conf 2015大会上推出的一个用于开发Android t iOS App的一个框架.主要编程语 ...