首頁是關於svn的備份和還原
html
比較快捷的方式:linux
備份:svnadmin hotcopy /opt/svn/svntest/ /var/tmp/svntest_20120604 --clean-logsc++
還原:直接把本分的文件拷貝的新服務器建立新的版本庫直接替換就能夠了,本文就是作這麼個事。sql
回到主題:apache
1、安裝Apache和SVNvim
在安裝以前能夠檢查一下是否在操做系統安裝時已經安裝了這些軟件,若是沒有可使用下面的命令安裝:服務器
> yum install httpdtcp
運行該命令時,會列出要安裝的文件和依賴的包,輸入y,回車便可。svn
> yum install mod_dav_svn subversionui
2、配置Apache
首先使用service命令啓動apache,
>service apache start
有時候會提示找不到service命令,可使用/sbin/service 代替service。
而後,要將httpd配置能夠隨系統啓動而啓動的服務,
>chkconfig httpd on
3、配置SVN
在配置完了Apache後,就要將兩者結合起來了。以下操做:
1. 新建一個倉庫目錄:
> cd /var/www
若是沒有svn目錄,新建一個
> mkdir svn
使用svnadmin建立一個代碼庫:
> svnadmin create repos
修改apache對repos的訪問權限
> chown apache.apache -R repos
2. 修改subversion.conf配置文件
> cd /etc/httpd/conf.d
> vim subversion.conf
subversion.conf的詳細內容:
<Location /repos> DAV svn SVNParentPath /db/c AuthType Basic AuthName "Subversion repository" #密碼存儲文件 AuthUserFile /db/c/back/conf/passwd Require valid-user #用戶訪問目錄的權限文件 AuthzSVNAccessFile /db/c/back/conf/authz </Location>
3. 修改httpd.conf配置文件
> cd /etc/httpd/conf
> vim httpd.conf
增長三個so
LoadModule version_module modules/mod_version.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so
4、完善SVN配置,增長用戶控制
一、增長用戶
htpasswd -c /db/c/back/conf/passwd username
二、AuthzSVNAccessFile:authz中配置用戶組和用戶權限
示例:
[groups]
admin = user1
leader = user2,user3
[/]
* = r
@admin = rw
@leader =rw
[/00-CMMI5級過程改進]
* =
user1 = rw
其它本身搜索解決吧
中途遇到一些問題:
緣由是: subversion.conf中的SVNParentPath參數不該該包含svn庫文件夾
訪問路徑中則要加上svn庫的文件夾,例如:http://192.168.32.128/repos/back
二、linux文件權限問題
chown -R apache:apache passwd
chmod -R 774 passwd
svn提交的時候出現錯誤,
提示/www/.svn權限不夠,
chown apache:apache /www/.svn
chmod -R 775 /www/.svn
我沒解決,用大招:關閉SELinux
查看SELinux狀態: 一、/usr/sbin/sestatus -v ##若是SELinux status參數爲enabled即爲開啓狀態 SELinux status: enabled 二、getenforce ##也能夠用這個命令檢查 關閉SELinux: 一、臨時關閉(不用重啓機器): setenforce 0 ##設置SELinux 成爲permissive模式 ##setenforce 1 設置SELinux 成爲enforcing模式 二、修改配置文件須要重啓機器: 修改/etc/selinux/config 文件 將SELINUX=enforcing改成SELINUX=disabled 重啓機器便可
還有參考另一文章:
http://www.tuicool.com/articles/ieQbuu
1. gcc gcc-c++安裝 yum install gcc gcc-c++ 2.將Subversion和依賴安裝包上傳到CentOS服務器 3.依賴包的安裝 tar zxvf apr-1.5.0.tar.gz tar zxvf libtool-2.2.4.tar.gz tar zxvf apr-util-1.5.3.tar.gz cd apr-1.5.0 ./configure --prefix=/usr/local/apr make make install cd libtool-2.2.4 ./configure --prefix=/usr/local/libtool make make install cd apr-util-1.5.3 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config make make install tar zxvf pcre-8.33.tar.gz tar zxvf httpd-2.4.7.tar.gz cd pcre-8.33 ./configure --prefix=/usr/local/pcre make make install cd httpd-2.4.7 ./configure --prefix=/usr/local/apache --enable-so --enable-dav --enable-dav-fs --enable-mnaintainet-mode --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre make make install tar xzvf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./configure --prefix=/usr/local/zlib make make install tar zxvf sqlite-autoconf-3080100.tar.gz tar zxvf subversion-1.8.5.tar.gz cd sqlite-autoconf-3080100 ./configure --prefix=/usr/local/sqlite make make install cd subversion-1.8.5 ./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-sqlite=/usr/local/sqlite --enable-maintainer-mode --with-zlib=/usr/local/zlib make make install ================================================================================== 4.Apache和SVN命令環境設置 vi /etc/profile PATH=/usr/local/apache/bin:$PATH PATH=/usr/local/subversion/bin:$PATH 退出VI source /etc/profile ================================================================================== 5.Apache配置 so文件複製 cp /usr/local/subversion/libexec/mod_authz_svn.so /usr/local/apache/modules/mod_authz_svn.so cp /usr/local/subversion/libexec/mod_dav_svn.so /usr/local/apache/modules/mod_dav_svn.so httpd.conf配置文件修改 vi /usr/local/apache/conf/httpd.conf LoadModule dav_module modules/mod_dav.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so #svn <Location /svn> DAV svn SVNParentPath /usr/svn AuthType Basic AuthName "Subversion repository" #密碼存儲文件 AuthUserFile /usr/svn/auth.conf Require valid-user #用戶訪問目錄的權限文件 AuthzSVNAccessFile /usr/svn/access.conf </Location> ================================================================================== 6.SVN配置 mkdir /usr/svn #建立版本庫 svnadmin create /usr/svn/repos #添加用戶並設置密碼: htpasswd -c /usr/local/subversion/auth.conf test1 #輸入兩次密碼 htpasswd /usr/local/subversion/auth.conf test2 #輸入兩次密碼 #SVN用戶訪問目錄權限配置文件 touch /usr/local/subversion/access.conf vi /usr/local/subversion/access.conf #用戶組設置 [groups] g1 = test1 g2 = test2 #版本庫1,組1爲讀寫權限,組2爲只讀 [repos1:/] @g1 = rw @g2 = r * = #版本庫1下的mysvn文件夾組1爲只讀權限 [repos1:/mysvn] @g1 = r #版本庫2 [repos2:/] @g1 = rw @g2 = rw * = #版本庫3 [repos3:/] @g1 = rw @g2 = rw #SVNSERVE.CONF配置文件修改 anon-access = none auth-access = write password-db = /usr/svn/auth.conf authz-db = /usr/svn/access.conf 爲SVN版本庫文件添加讀寫權限 chmod -R 777 /usr/svn 啓動SVN svnserve -d -r /usr/svn --config-file /usr/svn/svnserve.conf 啓動APACHE /usr/local/apache/bin/apachectl start ================================================================================== 7.防火牆配置 iptables -P OUTPUT ACCEPT #默認策略 iptables -P FORWARD DROP #默認策略 iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 3690 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #容許已建和相關的鏈接 iptables -P INPUT DROP #默認策略 iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #容許已建和相關的鏈接 /etc/init.d/iptables save#保存iptables配置。 ================================================================================== 8.關閉selinux vi /etc/sysconfig/selinux SELINUX=DISABLED ================================================================================== 客戶端訪問: 版本庫1:http://ip/svn/repos1 版本庫2:http://ip/svn/repos2 版本庫3:http://ip/svn/repos3