天天看点

svn (subversion)+Apache(httpd)+SSL(openssl)的配置

SVN服务端配置:svn (subversion)+Apache(httpd)+SSL(openssl)

tar zxvf openssl-0.9.8b.tar.gz

cd openssl-0.9.8b

make && make install

cd ..

tar xvzf apr-1.3.7.tar.gz

./configure

make&&make install

tar xvzf apr-util-1.3.8.tar.gz

./configure --with-apr=/usr/local/apr/bin/apr-1-config

tar zxvf httpd-2.2.15.tar.gz 

./configure --prefix=/usr/local/apache/ --enable-dav --enable-so --enable-maintainer-mode --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --enable-ssl=static --with-ssl=/usr/local/ssl

grep -v "#" /usr/local/apache/bin/apachectl  > /etc/init.d/httpd

sed -i '1i #! /bin/sh\n# chkconfig: 2345 85 15\n# description: Apache is a World Wide Web server.' /etc/init.d/httpd

chmod 755 /etc/init.d/httpd

chkconfig --add httpd

service httpd restart

tar xvzf neon-0.28.4.tar.gz  

./configure --with-ssl

tar zxvf subversion-1.6.11.tar.gz

cd subversion-1.6.11

./configure --prefix=/usr/local/svn --with-neon=/usr/local/

ln -s /usr/local/svn/bin/svn /usr/bin/svn

ln -s /usr/local/svn/bin/svnadmin /usr/bin/admin

vi /usr/local/apache/conf/httpd.conf

添加:                    

<Location /svn>

     DAV svn

     SVNParentPath /usr/local/svn/repos

     AuthType Basic

     AuthName "Subversion repository"

     AuthUserFile /usr/local/svn/passwd

     AuthzSVNAccessFile /usr/local/svn/auth

     Require valid-user

     SSLRequireSSL

</Location>

去掉注释:Include conf/extra/httpd-ssl.conf

cd /usr/local/apache/conf/

openssl req -new -x509 -nodes -out server.crt -keyout server.key

新建账户权限文件和密码文件:

vi /usr/local/svn/auth

[groups]

[test:/]

test = r

testadmin = rw

/usr/local/apache/bin/htpasswd -c /usr/local/svn/passwd testadmin    ——>产生账户密码

/usr/local/apache/bin/htpasswd /usr/local/svn/passwd test

添加svn 防火墙 

上传 svn_ip_list 和svn-iptbales.sh 到 qeedoodb下 ,执行 svn-iptables.sh

新建仓库

   创建仓库目录 svnadmin create /usr/local/svn/repos/test

   创建工作目录 mkdir -p /svn_update_data/test

手动更新仓库版本

   更新工作目录  cd /svn_update_data/mh/ && svn update

   手动更新文件

   更新仓库文件 svn --force add  /svn_update_data/test/*

   生成新版本   cd /svn_update_data/test/ && svn commit -m "version update by who"

   更新工作目录 cd /svn_update_data/test/ && svn update

   生成新版本   cd /svn_update_data/test/ && svn commit -m "version update by testadmin"

客户端配置:svn (subversion)

./configure --prefix=/usr/local/svn --with-ssl 

make &&make install

ln -s /usr/local/svn/bin/svn /usr/bin/

Q&A

1.虚拟机里的版本是旧的,必须与仓库同步后才能开服

没法直接拉仓库里的文件;只能删除版本 ,然后直接从仓库拉版本(直接checkout就可以)

2.版本回滚(待完善)

svn commit --message "roll back to r10"  (提交仓库)

svn up -r 11 (单机 回滚或到指定版本)

3.权限控制,工作目录与仓库目录权限

工作目录转移到本地;s66权限设置

4.有些文件不能import到仓库

5.怎么切换仓库地址

6.怎么备份svn 仓库 

svnadmin dump --deltas /usr/local/svn/repos/test |bzip2 > dump.bz2

7.怎么恢复svn备份到新的仓库

bzcat dump.bz2 | svnadmin load /usr/local/svn/repos/test

8.convmv -f GBK -t utf8 -r ./ --notest

9.怎么改变文件的可执行权限

svn propset svn:executable on iFuncity

本文转自 holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/684433