最近我在centos 6的系統中安裝了subversion 的 svn 伺服器。同時也安裝了 nginx WEB伺服器。現在我想讓 svn 送出的檔案自動更新到nginx所指定的web目錄中。這樣一來,我就不需要送出之後,再通過FTP将檔案上傳到nginx的web目錄,再通過浏覽器去通路這個web目錄裡面的腳本。是以,就有了本篇文章紀實。
環境介紹:
1)系統centos 6.3 64位。
2)伺服器端SVN版本 1.6.11。
3)WEB伺服器nginx版本 0.8.46。
4)nginx的WEB目錄:/data0/htdocs/wwwroot
5)svn倉庫中心目錄:/opt/svn/
配置步驟如下:
1、在svn倉庫中心下建立一個建立wwwroot,shell指令如下:
2、配置wwwroot建立,shell指令如下:
找到以下的内容,并在行首注釋符号#删掉。
為 svntest 項目增加svn使用者,并且賦予權限值:
在檔案中添加如下代碼:
代碼的意思是:為 wwwroot 項目添加一個wwwroot 的使用者,并且,這個使用者對于 wwwroot 項目擁有讀寫權限。
給使用者配置設定密碼,執行如下指令:
輸入如下内容:
配置好SVN之後,請檢視你的 svn 是否啟動,如果沒有啟動,用以下指令啟動:
3、配置項目倉庫的鈎子配置。
可以把鈎子看成是WEB項目與SVN項目倉庫之間的一個關聯。通過向svn項目倉庫送出腳本代碼,利用鈎子shell腳本可以自動向web項目中将腳本檔案更新過去。
進入SVN項目倉庫鈎子所在目錄,shell指令:
然後執行如下複制指令:
然後編輯post-commitshell腳本,shell指令如下:
将裡面的所有代碼注釋掉,然後輸入如下代碼:
這個地方需要注意,我們先進入到wwwroot目錄下進行SVN清理(cleanup),消除一些隐患。然後再執行将 svn wwwroot項目建立裡面的代碼同步更新到web項目目錄/data0/htdocs/wwwroot/中去。這裡的賬号wwwroot和密碼123456是我們建立SVN wwwroot項目倉庫的時候指定的。
這個時候,我們去送出一個檔案到svn,這時會發現在/data0/htdocs/wwwroot/目錄下同步更新過來了。
如果沒有反應,會有兩個地方可能出錯:
1)配置檔案與路徑寫得不對,可以直接通過手工方式去執行post-commit看看有沒有報錯。
2)權限不對。即/data0/htdocs/wwwroot權限是否足以滿足腳本的讀寫。
本文轉自yzy121403725 51CTO部落格,原文連結:http://blog.51cto.com/lookingdream/1839099,如需轉載請自行聯系原作者