系統環境:CentOS-6.3
安裝方式:yum install (源碼安裝容易產生版本兼容的問題)
安裝軟件:系統自動下載SVN軟件php
#檢查是否安裝了低版本的SVNhtml
rpm -qa subversion
#卸載舊版本SVNweb
yum remove subversion
yum -y install subversion
檢驗已經安裝的SVN版本信息數據庫
svnserve --version
SVN軟件安裝完成後還須要創建SVN庫vim
mkdir -p /www/svndata svnadmin create /www/svndata/test
執行上面的命令後,自動創建svndata庫,查看/www/svndata/test 文件夾發現包含了conf, db,format,hooks, locks, README.txt等文件,說明一個SVN庫已經創建。緩存
進入上面生成的文件夾conf下,進行配置tcp
cd /www/svndata/test/conf
cd /www/svndata/test/conf vim passwd
修改passwd爲如下內容:svn
[users] # harry = harryssecret # sally = sallyssecret cqh=123456
vim authz
目的是設置哪些用戶能夠訪問哪些目錄,向authz文件追加如下內容:post
#設置[/]表明根目錄下全部的資源 [/] cqh=rw
vim svnserve.conf
追加如下內容:測試
[general] #匿名訪問的權限,能夠是read,write,none,默認爲read anon-access=none #使受權用戶有寫權限 auth-access=write #密碼數據庫的路徑 password-db=passwd #訪問控制文件 authz-db=authz #認證命名空間,subversion會在認證提示裏顯示,而且做爲憑證緩存的關鍵字 realm = My First Repository
svnserve -d -r /www/svndata
[root@localhost conf]# ps -ef|grep svn|grep -v grep root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /www/svndata
[root@localhost conf]# netstat -ln |grep 3690 tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
[root@localhost password]# killall svnserve //中止 [root@localhost password]# svnserve -d -r /www/svndata // 啓動
SVN服務已經啓動,使用客戶端測試鏈接。
客戶端鏈接地址:svn://xxx.xxx.xxx.xxx/test
用戶名/密碼: cqh/123456
測試建立文件夾等操做。
實現SVN與WEB同步,能夠CO一個出來,也能夠直接用自動更新web目錄的方法,咱們要在svn版本庫中配置鉤子來實現,就是建立一個post-commit的配置文件,對其進行簡單的配置,簡簡單單的四步就能夠實現Linux下SVN自動更新web目錄配置。
第一步:創建你的web程序目錄
mkdir /var/www/html/test
進入你創建的web程序目錄(svn checkout能夠簡寫爲co)
svn checkout svn://localhost/svntest //不重命名文件夾,直接在當前目錄下檢出 svn checkout svn://localhost/svntest test //檢出文件而且重命名文件夾
第二步:在項目庫的 hooks/ 目錄下新建 post-commit 文件 【鉤子腳本】
添加腳本內容以下
export LANG=en_US.UTF-8 SVN=/usr/bin/svn #這裏配置的是svn安裝bin目錄下的svn文件 WEB=/var/www/html/test #要更新的目錄 $SVN update $WEB --username cqh --password 123456 chown -R www:www $WEB
其中SVN=右邊改爲 svn 命令位置
WEB=右邊改爲你實際的web目錄
第三步:讓post-commit有執行的權限
chmod a+x post-commit
第四步:這裏就已經完成了,第四步就是測試了。
說明:
export LANG=en_US.UTF-8是爲了解決svn post commit 中文亂碼,設置本地化編碼,由於個人系統爲UTF8編碼,其實SVN默認就是UTF-8編碼,若是編碼是GBK的話不設置將會出現錯誤,而執行不成功,錯誤標識爲
svn: Can't convert string from native encoding to 'GBK'
/usr/bin/svn update --username cqh --password 123456 /var/www/html/test 執行更新操做
若是提示:
post-commit hook failed (exit code 255) with no output
賦予post-commit文件可執行權限
若是您的默認編碼就是UTF-8的,要上傳中文文件,先將文件另存爲UTF-8格式在提交