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

[经验分享] subversion+apache安装配置文档

[复制链接]

尚未签到

发表于 2018-11-29 08:24:02 | 显示全部楼层 |阅读模式
环境 centos 5.5 x86_32
软件列表(下载地址)
httpd-2.2.16.tar.gz           http://labs.renren.com/apache-mirror//httpd/httpd-2.2.16.tar.gz
apr-1.4.2.tar.gz                http://labs.renren.com/apache-mirror//apr/apr-1.4.2.tar.gz
apr-util-1.3.9.tar.gz           http://labs.renren.com/apache-mirror//apr/apr-util-1.3.9.tar.gz
neon-0.29.3.tar.gz            http://www.webdav.org/neon/neon-0.29.3.tar.gz
sqlite-amalgamation-3.7.2.tar.gz http://www.sqlite.org/sqlite-amalgamation-3.7.2.tar.gz
subversion-1.6.12.tar.gz     http://subversion.tigris.org/downloads/subversion-1.6.12.tar.gz
软件安装
注:软件全下载到/opt/soft 目录下
arp 安装
# tar zxvf apr-1.4.2.tar.gz
# cd apr-1.4.2
# ./configure
# make
# make install
apr-util 安装
# tar zxvf apr-util-1.3.9.tar
# cd apr-util-1.3.9
# ./configure --with-apr=/usr/local/apr
# make
# make install
neon-0.29 安装
# tar zxvf neon-0.29.3.tar.gz
# cd neon-0.29.3
# ./configure
# make
# make install
sqlite-amalgamation 安装
# tar zxvf sqlite-amalgamation-3.7.2.tar.gz
# cd sqlite-amalgamation-3.7.2
# ./configure
# make
# make install
apache 安装
# tar zxvf httpd-2.2.16.tar.gz
# cd httpd-2.2.16
# ./configure --prefix=/opt/apache \
          --enable-dav  \
          --enable-rewrite \
          --enable-so  \
          --enable-maintainer-mode \
          --enable-mods-shared='all'  \
          --with-apr=/usr/local/apr/bin/apr-1-config  \
          --with-apr-util=/usr/local/apr/bin/apu-1-config
# make
# make install
subversion 安装
# tar zxvf subversion-1.6.12.tar.gz
# cd subversion-1.6.12
# mkdir sqlite-amalgamation
# cp /opt/soft/sqlite-amalgamation-3.7.2/sqlite3.c /opt/soft/subversion-1.6.12/sqlite-amalgamation
# ./configure --prefix=/opt/subversion \
      --with-apxs=/opt/apache/bin/apxs \
      --with-apr=/usr/local/apr \
      --with-apr-util=/usr/local/apr \
      --with-zlib=/usr/include \
      --enable-maintainer-mode
# make
# make install


创建svn仓库

# groupadd svn -g 801
# useradd -u 801 -g svn svnroot
# mkdir /opt/svn
# /opt/subversion/bin/svnadmin create --fs-type fsfs /opt/svn/svndocs
# chown -R svnroot.svn /opt/svn

配置svn与apache接合

# vi /opt/apache/conf/httpd.conf
将配置文件里的user,group修改为svnroot和svn,如下:
User svnroot
Group svn

找到下面2行
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
在末尾添加以下内容


        DAV svn
        SVNParentPath /opt/svn/
        AuthzSVNAccessFile /opt/svn/svndocs/conf/authz
        AuthType Basic
        AuthName "SVN Server"
        AuthUserFile /opt/svn/svn-user
        Require valid-user


注:    SVNPath                    为svn父目录
    AuthzSVNAccessFile         为用户权限配置文件
    AuthUserFile                   为svn用户配置文件

创建svn用户
# /opt/apache/bin/htpasswd -c -m /opt/svn/svn-user user1
注:第一次创建用户时,要带参数-c ,以后新增用户不必用-c ,否则将会清除以前用户
       -m 表示以md5码加密
如新增用户user2
# /opt/apache/bin/htpasswd  -m /opt/svn/svn-user user2
修改user2用户密码
# /opt/apache/bin/htpasswd -m /opt/svn/svn-user user1
New password:
Re-type new password:
Adding password for user user1
用户权限配置
修改/opt/svn/svndocs/conf/authz配置文件
# vi /opt/svn/svndocs/conf/authz
[groups]
# harry_and_sally = harry,sally
dev = user1,user2
# [/foo/bar]
# harry = rw
# * =
# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r
[/]
@dev = rw
[/image]
user1 = r
注: [groups]创建组,格式组名 = 用户名 [可以多个用户,以(,分号)]分隔
[\] 表示根目录,@dev = rw 表示dev组用户对根目录有读写权限 (r表示读,w表示写)
[/image] user1 =r 表示user1 对image目录只有读取权限
测试svn
访问http://ip/svn/svndocs,输入创建的svn用户名、密码,会出现 Rivision 0:/,说明配置成功。
使用svn协议访问
要使用svn://url来访问,先要启动svnserve服务
# /opt/subversion/bin/svnserve -d -r /opt/svn
注: -r 表示svn父目录
就可使用svn://ip/svndocs来访问svn服务了。
svn备份
每天凌晨0点自动备份svn版本库.并自动删除7天前的数据
#!/bin/sh
#svnbak auto at 0:00 daily run......
#svnbak auto deleted 7 days ago
svn=/usr/bin/svnadmin
svndir=/opt/svn
svnlook=/opt/subversion/bin/svnlook
svnbakdir=/opt/svn-bak
date=`date +%Y-%m-%d -d "-1 days"`
olddate=`date +%Y-%m-%d -d "-7 days"`

if [ ! -d $svnbakdir ];then
        mkdir -p $svnbakdir
fi
svnlist=`ls -l /opt/svn | grep d | awk '{print $NF}'`

for svnwork in $svnlist
   do
        mkdir -p $svnbakdir/$date
        $svn hotcopy $svndir/$svnwork $svnbakdir/$date/$svnwork-$date --clean-logs
#取到当前svn版本库的最新版本号,方便增量备份
    $svnlook youngest $svndir/$svnwork > $svndir/$svnwork/$svnwork-in.txt
done

if [ -d $svnbakdir/$olddate ];then
        rm -rf $svnbakdir/$olddate
fi
svn增量备份

#!/bin/sh

#svn increment bak

#at 0:00 daily run......

svndir=/opt/svn

svninbak=/opt/svninbak

date=`date +%Y-%m-%d -d "-1 days"`

svnadmin=/usr/bin/svnadmin

svnlook=/opt/subversion/bin/svnlook

svnlist=`ls -l /opt/svn | grep d | awk '{print $NF}'`

if [ ! -d $svninbak/$date ];then

        mkdir -p $svninbak/$date

fi
for svninc in $svnlist

  do

        inc=`cat $svndir/$svninc/$svninc-in.txt`

        ((inc++))

        $svnadmin dump -r $inc:head --incremental $svndir/$svninc > $svninbak/$date/$svninc-$date.dump
    $svnlook youngest $svndir/$svninc > $svndir/$svninc/$svninc-in.txt

done
svnadmin dump备份
# svnadmin dump /opt/svn/svndocs > /opt/svn-bak/svndocs
svn 恢复
# svnadmin create /opt/svn/svndocs
# svnadmin load /opt/svn/svndocs < /opt/svn-bak/svndocs
一个技巧:
如果你有一个较大的Subsersion版本库而你又想用最少的空间来将它备份下来,用这个命令(请将/repo替换成你的版本库路径)吧:
svnadmin dump –deltas /repo |bzip2 |tee dump.bz2 | md5sum >dump.md5
分步解释:
最重要的一步是 -deltas,将消耗更多的CPU资源,但拥有更有效的差异存储办法。
bzip2压缩方案比gzip慢,但换来的更好的压缩率。
更有趣的是,tee方法将压缩的数据流转向到文件dump.bz2,同时将其输出到标准输出,后者有转向给了MD5摘要计算工具。要恢复这个版本库,检查校验值(md5sum创建的),创建一个空的版本库,恢复备份:

md5sum -c dump.md5

运维网声明 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-640942-1-1.html 上篇帖子: apache创建用户认证 下篇帖子: Ubuntu10下Apache
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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