在某雲購置了一臺新服務器做爲項目測試和部署用 java
之後資料都是網上搜集整理後測試過的!實在太多亂78遭的文章,仍是本身整理一份備份好; linux
#Setup 1 安裝lampp apache
這個很簡單,直接從官方下載一個linux版本安裝就能夠,默認安裝就OK; 服務器
https://www.apachefriends.org 我安裝的是XAMPP for Linux v1.8.3 (PHP 5.5.9) svn
#Setup 2 安裝subversion 工具
直接用yum工具 post
#yum install subversion
搞定,最後測試是否安裝成功 測試
#svnserve --version
創建版本庫 spa
建立SVN的數據目錄 #mkdir /opt/lampp/svn test是版本庫名稱,名字隨便起 #svnadmin create /opt/lampp/svn/test
建立成功以後的目錄結構,以後主要修改conf目錄的svnserve.conf文件和配置hooks目錄post-commit 日誌
接着來修改配置用戶權限
編輯版本庫配置(不一樣版本庫之間的配置是獨立分開的) #vi /opt/lampp/svn/test/conf/svnserve.conf
版本庫配置
[general] anon-access = none #注意這裏不要填錯,否則以後的日誌信息就顯示不了 auth-access = write password-db = /opt/lampp/svn/test/conf/passwd #管理用戶和密碼 authz-db = /opt/lampp/svn/test/conf/authz #配置用戶權限 realm = test
添加用戶
#vi /opt/lampp/svn/test/conf/passwd [users] user1 = password1 user2 = password2 user3 = password3 user4 = password4
配置用戶權限
#vi /opt/lampp/svn/test/conf/authz [groups] #設置組 group1 = user1,user2 #多用戶用逗號隔開 [/] #根目錄權限設置(就是「test」這個文件夾) user3 = rw #用戶1權限是:可讀寫 user4 = r #用戶2權限是:可讀,不可寫 user = #什麼都沒寫表明沒有任何權限 @group1 = rw #設置組權限 [kuming:/123] #設置根目錄下「123」文件夾的權限 #說明「123」這個文件件怎麼建立?這是在SVN服務器配置好以後,建立一個權限很高的用戶在客戶端登陸SVN #而後建立一個文件夾「123」。
啓動SVN服務器
# svnserve -d -r /opt/lampp/svn -d表示以daemon方式(後臺運行)運行 -r /svn指定根目錄是/svn 關閉SVN 服務器 # killall svnserve # ps aux | grep svnserve 查看服務,端口:3690
而後就能夠經過客戶端軟件TortoiseSVN訪問
svn://服務器IP/版本庫名稱
ex: svn://192.168.1.100/test
#Setup 3 配置svn鉤子
在提交更新時同步更新指定目錄,進入版本庫下的hooks目錄,將post-commit.tmpl 複製爲 post-commit,賦予post-commit可執行權限
REPOS="$1" REV="$2" # 暫時用不上,發郵件的腳本,註釋掉否則commit時候報錯 # mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf export LANG=en_US.UTF-8 SVN=/usr/bin/svn #svn的執行文件 STATIC_DIR=/opt/lampp/www/test #版本庫目錄 #須要注意用戶須要有寫的權限 ${SVN} update ${STATIC_DIR} --username 用戶 --password 密碼
若是提交時,報錯提示須要修改 .subservison/servers時,根據提示修改,通常以下:
vi .subversion/servers 文件 (目錄find一下)
將 store-plaintext-passwords = no 選項註釋去掉,並修改成 yes
到這裏就完成了鉤子配置;
這裏能夠svn配置成開機啓動
#vi /etc/rc.local
添加執行命令
#svnserve -d -r /opt/lampp/svn