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

[经验分享] subversion1.6.12+httpd2.2.16编译安装并整合

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-20 09:41:07 | 显示全部楼层 |阅读模式
一、关于mod_dav_svn模块
由于Subversion需要版本化的控制,因此标准的HTTP协议不能满足需求。要让Apache与Subversion协同工作,就要使用WebDAV(Web-based Distributed Authoring and Versiong)Web分布式创作和版本控制协议。WebDAV是HTTP 1.1的扩展,关于WebDAV的规范和工作原理,可以参考IETF RFC 2518。
    mod_dav_san模块就是作为Subversion与Apache之间的接口,通过它,Apache就可以访问版本库,并且可以让客户端也使用HTTP的扩展协议WebDAV/DeltaV进行访问。
实验环境:CentOS6.5-x86-64-minimal
所需软件包:
apr-1.2.12.tar.gz
apr-util-1.2.12.tar.gz
httpd-2.2.16.tar.gz
neon-0.30.1.tar.gz
subversion-1.6.12.tar.gz
subversion-deps-1.6.12.tar.gz

本次实验关闭防火墙及selinux、yum安装过Development tools包

1、编译安装apr、apr-util
[iyunv@test1 src]# pwd
/usr/local/src
[iyunv@test1 src] tar zxvf apr-1.2.12.tar.gz
[iyunv@test1 src] cd apr-1.2.12
[iyunv@test1 apr-1.2.12]# ./configure
[iyunv@test1 apr-1.2.12]# make && make install
[iyunv@test1 apr-1.2.12]# cd ..
[iyunv@test1 src]# tar zxvf apr-util-1.2.12.tar.gz
[iyunv@test1 src]# cd apr-util-1.2.12
[iyunv@test1 apr-util-1.2.12]# ./configure --with-apr=/usr/local/apr
[iyunv@test1 apr-util-1.2.12]# make && make install
[iyunv@test1 apr-util-1.2.12]# cd ..
[iyunv@test1 src] tar zxvf httpd-2.2.16.tar.gz
2、编译安装httpd
[iyunv@test1 src] cd httpd-2.2.16
[iyunv@test1 httpd-2.2.16]# ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --enable-so --enable-dav --enable-mainta  --enable-iner-mode --enable-rewrite
[iyunv@test1 httpd-2.2.16]# make && make install
[iyunv@test1 httpd-2.2.16]# ps aux |grep httpd
[iyunv@test1 httpd-2.2.16]# /usr/local/apache/bin/apachectl start
3、编译安装subversion
[iyunv@test1 httpd-2.2.16]# cd ..
[iyunv@test1 src]# tar zxvf subversion-1.6.12.tar.gz
[iyunv@test1 src]# tar zxvf subversion-deps-1.6.12.tar.gz //两个包解压到一个目录
[iyunv@test1 src]# cd subversion-1.6.12
[iyunv@test1 subversion-1.6.12]# ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-ssl --with-zlib=/usr/share/doc/zlib-1.2.3 --enable-maintainer-mode
1> configure: error: could not find library containing RSA_new
解决方法:   #  yum install openssl-devel
2> configure: error: no XML parser was found: expat or libxml 2.x required
解决方法:   #   yum install expat-devel
[iyunv@test1 subversion-1.6.12]# make && make install
3> make的时候出现 undefined reference to `SSL_SESSION_cmp’
安装subversion.1.6.11时,如果对应的neon版本为 neon-0.25.5.tar.gz,就会出现这个错误,根据网上的资料得知,在neon的高版本上已经修复这个错误,于是到其官方网站http://www.webdav.org/neon/下载最新版的neon-0.29.3,将其解压到subversion的源码目录中,并改名为neon,再次编译,成功!
[iyunv@test1 subversion-1.6.12]# /usr/local/svn/bin/svnserve --version  
QQ截图20160120093914.jpg
[iyunv@test1 subversion-1.6.12]# /usr/local/apache/bin/apachectl -M
QQ截图20160120093923.jpg
[iyunv@test1 subversion-1.6.12]# cd /usr/local/svn/bin
4、建立版本仓库
[iyunv@test1 bin]# mkdir /svn    //为了好区分目录、创建了一个svn的目录
[iyunv@test1 bin]# svnadmin create /svn/repos    //创建一个仓库名字为repos
[iyunv@test1 bin]# ll /svn/repos/   //如果多了一些文件则说明版本库已经创建好  
QQ截图20160120093938.jpg
导入项目文件到版本库
#把路径/test下的测试项目文件导入到你创建的/svn/repos仓库中去,提交后的修订版为1
#建立/test/1到5个测试文件
[iyunv@test1 bin]# mkdir /test
[iyunv@test1 bin]# touch /test/1 2 3 4 5
[iyunv@test1 svn]# svn import /test/ file:///svn/repos -m "testzhushi" 图44
QQ截图20160120093951.jpg
5、创建用户账号并分配权限
#创建svn账户user1 -c 表示创建文件 第二个用户取消-c 否则覆盖之前的用户 文件名自定义
[iyunv@test1 bin]# /usr/local/apache/bin/htpasswd -c /svn/passwd user1
[iyunv@test1 bin]# /usr/local/apache/bin/htpasswd  /svn/passwd user2

#创建svn权限配置文件 文件名自定义
[iyunv@test1 bin]# vim /svn/authz
----------------------------------------------------------
[groups]
admin = user1,user2
user = user3,user4

[/]
* = rw    //全部用户在仓库的根目录具有读写权限
@admin = rw    //admin组在仓库的根目录具有读写权限

[repos:/]    //定义仓库下repos目录的权限
user3 = rw    user3具有读写权限
@user = w
----------------------------------------------------------
6、配置apache支持svn
[iyunv@test1 bin]# vim /usr/local/apache/conf/httpd.conf
----------------------------------------------------------
<Location /repos>    //指定访问svn仓库的路径
        DAV svn    //定义标签
        SVNPath /svn/repos    //仓库的真实路径
        AuthType Basic    //认证方式为基本认证
        AuthName "Hello welcome to here"    //访问提示语
        AuthUserFile /svn/passwd    //用户文件位置
        AuthzSVNAccessFile /svn/authz    //权限文件位置
        Require valid-user    //设置需要认证才能访问
</Location>
----------------------------------------------------------
7、为svn目录分配适合的权限、启动并测试
#源码编译的httpd默认用户为daemon、yum的默认为apache、为了安全可以自行更改
[iyunv@test1 bin]# chown -R daemon:daemon /svn/
[iyunv@test1 bin]# chmod -R 700 /svn
[iyunv@test1 bin]#  /usr/local/svn/bin/svnserve -d -r /svn/repos
[iyunv@test1 bin]#  /usr/local/apache/bin/apachetcl restart

[iyunv@test1 bin]# ps aux |grep svn
root     129174  0.0  0.0 138860   632 ?        Ss   04:54   0:00 /usr/local/svn/bin/svnserve -d -r /svn/repos/
root     129212  0.0  0.0 103248   884 pts/1    S+   05:14   0:00 grep svn

QQ截图20160120094012.jpg
QQ截图20160120094023.jpg



运维网声明 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-166887-1-1.html 上篇帖子: apache2.4.18中启用h2c 下篇帖子: apache出现403错误排查
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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