Centos 6讓SVN提交文件自動更新到nginx的WEB目錄

最近我在centos 6的系統中安裝了subversion 的 svn 服務器。同時也安裝了 nginx WEB服務器。如今我想讓 svn 提交的文件自動更新到nginx所指定的web目錄中。這樣一來,我就不須要提交以後,再經過FTP將文件上傳到nginx的web目錄,再經過瀏覽器去訪問這個web目錄裏面的腳本。因此,就有了本篇文章紀實。nginx

環境介紹:
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/web

配置步驟以下:
一、在svn倉庫中心下建立一個建立wwwroot,shell命令以下:shell

svnadmin create /opt/svn/wwwroot/

二、配置wwwroot建立,shell命令以下:vim

cd /opt/svn/wwwroot/conf/
vim svnserve.conf

找到如下的內容,並在行首註釋符號#刪掉。centos

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

爲 svntest 項目增長svn用戶,而且賦予權限值:瀏覽器

vi authz

在文件中添加以下代碼:服務器

[wwwroot:/]
wwwroot = rw

代碼的意思是:爲 wwwroot 項目添加一個wwwroot 的用戶,而且,這個用戶對於 wwwroot 項目擁有讀寫權限。svn

給用戶分配密碼,執行以下命令:post

vi passwd

輸入以下內容:spa

wwwroot =123456

配置好SVN以後,請查看你的 svn 是否啓動,若是沒有啓動,用如下命令啓動:

svnserve -d -r /opt/svn/

三、配置項目倉庫的鉤子配置。
能夠把鉤子當作是WEB項目與SVN項目倉庫之間的一個關聯。經過向svn項目倉庫提交腳本代碼,利用鉤子shell腳本能夠自動向web項目中將腳本文件更新過去。

進入SVN項目倉庫鉤子所在目錄,shell命令:

cd /opt/svn/wwwroot/hooks/

而後執行以下複製命令:

cp post-commit.tmpl post-commit

而後編輯post-commitshell腳本,shell命令以下:

vi post-commit

將裏面的全部代碼註釋掉,而後輸入以下代碼:

cd /data0/htdocs/wwwroot
/usr/bin/svn cleanup
/usr/bin/svn up /data0/htdocs/wwwroot/--username "wwwroot"--password "123456"

這個地方須要注意,咱們先進入到wwwroot目錄下進行SVN清理(cleanup),消除一些隱患。而後再執行將 svn wwwroot項目建立裏面的代碼同步更新到web項目目錄/data0/htdocs/wwwroot/中去。這裏的帳號wwwroot和密碼123456是咱們建立SVN wwwroot項目倉庫的時候指定的。

這個時候,咱們去提交一個文件到svn,這時會發如今/data0/htdocs/wwwroot/目錄下同步更新過來了。

若是沒有反應,會有兩個地方可能出錯:1)配置文件與路徑寫得不對,能夠直接經過手工方式去執行post-commit看看有沒有報錯。2)權限不對。即/data0/htdocs/wwwroot權限是否足以知足腳本的讀寫。

相關文章
相關標籤/搜索