天天看點

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