httpd svn 编译安装_svn的安装(整合apache、ldap)

本文详细介绍了在CentOS环境中,如何使用yum安装Apache和OpenLDAP,以及如何源码编译安装SQLite和Subversion。重点讲解了Subversion与Apache的整合过程,包括配置subversion.conf文件、SVN权限认证文件svnauthz.conf,并提到了Apache与ldap的整合方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下是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

ServerName svn.361way.com

LogLevel warn

# Order deny,allow

# Deny from all

# Allow from 115.236.xxx.xxx/29

# 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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值