1、安裝svnphp
# yum -y install svnweb
2、查看svn版本信息安全
# svnserve --version服務器
3、搭建svn版本庫(假設項目名稱爲project)tcp
一、首先建立版本庫目錄svn
# mkdir -p /var/svn/project工具
二、建立版本庫post
# svnadmin create /var/svn/project //版本庫路徑跟上一步保持一致阿里雲
前兩步執行完成後 在 /var/svn/project/ 路徑下就會建立一些版本配置、日誌等文件夾和文件,目錄以下spa
後面主要修改的有 conf/ 和 hooks/ 兩個
conf/
hooks/
三、設置svn帳號和密碼
# vi /var/svn/project/conf/passwd //這裏的文件路徑能夠用相對路徑,也能夠用絕對路徑。例如:當前位置在 /var/svn/project/conf/中,則 #vi passwd 便可打開passwd文件了
打開文件後,英文狀態下按(i)鍵進入編輯模式,錄入帳號名和密碼。格式 username = password。
編輯完成後,先點擊(Esc)鍵,而後同時按下(Shift+;),左下角出現(:),這時輸入wq點擊回車保存修改並退出。(lll¬ω¬)!!! 竟然在描述文本文件編輯命令,後面再碰見就不這麼詳細了喵″
四、設置svn帳號的讀寫權限
# vi /var/svn/project/conf/authz
[group]爲帳號分組狀況。格式groupname = username_1,username_2,,,
[project:/]
@manager = rw //賦予manager組成員整個項目的讀寫權限
[project:/php]
@php = rw //賦予php組成員項目庫php分支的讀寫權限
[project:/iOS]
iOS_3 = rw //賦予帳號iOS_3項目庫iOS分支的讀寫權限
[project:/]
* = r //賦予全部成員整個項目讀取權限
保存退出
五、修改項目svn相關配置文件
# vi /var/svn/project/conf/svnserve.conf
找到圖中白色四行,去掉前面(#)便可,保存退出。
六、啓動svn版本庫
# svnserve -d -r /var/svn/
這裏的注意一下,啓動svn版本庫時路徑最好寫至svn/,由於後面能夠再在該路徑下建立其餘項目版本庫,這樣就沒必要每一個項目都啓動一個svn進程了。
七、查看svn進程
# ps aux | grep svn
八、端口設置
# firewall-cmd --zone=public --add-port=3690/tcp --permanent //開啓svn端口,若是使用的是阿里雲的服務器話,可能就要登錄阿里雲控制檯配置安全規則,具體配置方法阿里雲那邊有詳細說明。
# systemctl restart firewalld.service //重啓防火牆
九、到這裏版本庫搭建就完成了。能夠到本地使用svn工具檢出看看
4、SVN實現自動更新WEB目錄
前面有描述,svn項目下面有一個hooks/目錄,裏面存放的是所有的鉤子腳本的模板。
進入svn項目下的hooks/文件
# cd /var/svn/project/
新建編輯客戶端提交後觸發的鉤子文件
# vi post-commit
編輯內容以下
#!/bin/sh REPOS="$1" REV="$2" export LANG='zh_CN.UTF-8' SVN_PATH=/usr/bin/svn WEB_PATH=/var/www/project SVN_USER=gaoyi SVN_PW=gaoyi950815 LOG_PATH=/var/svn/project/log/svn.log echo `datetime: "+%Y-%m-%d %H:%M:%S"` >>$LOG_PATH $SVN_PATH update $WEB_PATH --username $SVN_USER --password $SVN_PW --no-auth-cache >>$LOG_PATH
保存退出後修改其文件權限
# chmod 777 post-commit
這裏的鉤子文件就編輯完成了。
接着就到服務器web目錄,也就是上面鉤子中的WEB_PATH下checkout項目了。操做以下
# svn checkout svn://192.168.6.74/project/ /var/www/project/
其中第三部分爲svn版本庫地址,第四部分爲web目錄也就是項目地址
第一次checkout時會要求輸入用戶名和密碼以經過驗證。
checkout成功以後,後面提交的更新就會自動同步到web目錄下來了。
初次編寫博客,寫得有什麼不對或不明瞭的地方還請各位指正提示!
謝啦!!☆⌒(*^-゜)v。