设为首页 收藏本站
查看: 2672|回复: 0

[经验分享] svn的安装(整合apache、ldap)包括错误解决post commit FS processing had error

[复制链接]

尚未签到

发表于 2017-12-25 12:35:05 | 显示全部楼层 |阅读模式

  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和空,空表示没有任何权限。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-427823-1-1.html 上篇帖子: 如何为Apache JMeter开发插件(二)—第一个JMeter插件 下篇帖子: 通过配置Apache实现404页面替换
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表