2014-02-19 45 views
0

我想爲git創建一個腳本,當更新到repo時觸發,並在遠程服務器上執行「git pull」。自動Gitpull腳本?

我有其中POST消息被設定爲我們的服務器上的URL一個非常基本的版本,這將有內容

<?php `git pull`; 

在這裏面,有沒有問題。然而,開發域實際上是一個虛假的域,nginx重定向到我的服務器(url.dev),所以我不能用這種方式指向它。我的想法是將另一個活動域指向開發服務器上的子文件夾,因此無法訪問頂級目錄,但當然從該目錄運行「git pull」將無法工作。有沒有反正在PHP運行該命令,以便它「CD」進入正確的導演和Gitpulls或這是不可能與PHP?

回答

0

如果添加了公共密鑰到運行腳本(通常是www數據)的用戶,你可以做到這一點

system("/path/to/executable/git pull;echo \"\nLast commit\"; /path/to/executable/git log -2;"); 
+0

我將如何運行呢?作爲一個PHP腳本? – realdannys

+0

是的,首先要確保www-data用戶可以通過ssh密鑰登錄到git服務器,然後嘗試一個git pull,如果一切正常,這個腳本會做同樣的事情。 – sathia

+0

好,我會給這個去。目前我的用戶是nginx。不幸的是,我不能通過命令行交換nginx用戶,所以很難判斷我是否可以做到這一點,沒有主文件夾或其他任何東西。 – realdannys