趁着這波比較閒的時候來劃一波水,想起本身那都快生會的騰訊雲服務器 到如今還不能經過版本控制系統上傳文件,因而趁這波功夫在服務器上安裝個svn來管理代碼。php
首先就簡單的介紹一波 svn :linux
首先svn不一樣於GIT它是集中式的,即只有一條主線並無分支,Subversion(SVN) 是一個開源的版本控制系統, 也就是說 Subversion 管理着隨時間改變的數據。 這些數據放置在一箇中央資料檔案庫(repository) 中。 這個檔案庫很像一個普通的文件服務器, 不過它會記住每一次文件的變更。 這樣你就能夠把檔案恢復到舊的版本, 或是瀏覽文件的變更歷史。(來自百度)web
他的經常使用命令有shell
Commit(提交): 當你已經修改了代碼,你就須要Commit到線上倉庫apache
Update (更新): 當你好久沒更新代碼後,使用update更新下 你的打碼就會與線上同步vim
哦豁,差點跑題了,這裏我要寫的是在服務器上安裝svn,好吧 ,下面咱們就進入正題了 ,下面的步驟我就當咱們已經配置好服務器環境了 (在這裏我是基於 CentOS 6.8 64位 php + apache搭建的服務器環境)安全
你能夠用xshell 操做linux系統 這裏我是用騰訊雲自帶linux登陸,登陸linux實例操做的服務器
1. 首先咱們在全局輸入 yum -y install subversion (安裝svn)svn
2. 安裝成功後咱們就開始配置svnpost
2.1 首先創建一個線上的版本庫
使用 mkdir /svn (這裏我在根目錄上創建一個svn目錄)
2.2 使用 svnserve -d -r /svn (啓動svn服務 其中svn是目錄位置)
svnserve -d -r 目錄 --listen-port 端口號 其中端口號能夠省略(不填默認3690)
2.3 而後在創建一個版本庫 svnadmin create /svn/www
2.4 配置容許用戶rsync訪問
使用 cd /svn/www/conf 找到conf文件
經過 vi svnserve.conf 進入配置編輯(將箭頭指向的位置註釋解了,且修改的文件前面不能有空格,不然啓動svn server出錯)
2.5 保存完上面步驟後 再使用vi authz配置用戶權限以及那些用戶可使用
2.6 保存完上面步驟後 再使用vi passwd配置用戶上傳下載密碼
2.7 使用 svn checkout svn://IP地址/svn所在的文件夾例如上面的www --username=配置的用戶名
2019/08/13-----------------補充----------------------------
checkout的時候出現 svn: Can't connect to host '123.x'x'x'x.xxxx.180': Connection timed out 沒法響應 可能緣由有
1.檢查各項配置文件是否有空格存在 ------這個問題出現的可能比較少
2.服務器防火牆攔截了3690端口這是須要配置
進入 vi /etc/sysconfig/iptables 編輯
在文件內加上一條容許3690端口經過的代碼
最後使用 service iptables restart 重啓防火牆
3.雲服務器設置了上安全組 這事須要在阿里/騰訊雲平臺安全組面板出口處添加規則 讓TCP:3690經過便可(最好入口處也添加相同規則)
-------------------------------補充----------------------------
2.8 如今你能夠試試下載文件到桌面(這裏還沒用 將svn 與web項目掛起鉤子 全部拉下來的文件是空的,這裏我使用svn小烏龜下拉的 svn://ipdi地址/文件目錄例如www)
2.9 將svn 與web項目關聯起來就是鉤子(首先須要進入svn 庫下的 hooks文件夾)
例如個人svn庫是在 --- /svn/www/hooks
hooks文件夾下有現成的配置模板咱們使用以下語句 copy一份至配置文件便可
cp post-commit.tmpl post-commit
複製建立文件夾後開啓 755權限(可自行找度娘)
sudo chmod -R 755 post-commit (受權語句)
以後vim post-commit進入文件以下配置
以上就是svn的配置以及掛鉤過程 ,以後你能夠測試下 使用 svn co svn://IP/www --username jzq --password 密碼 查看到有些什麼文件上傳了上來