2013-06-02 44 views
0

我犯了一個PHP文件中使用此代碼,以獲取在我的倉庫託管在GitHub上的任何變化:如何讓一個PHP文件執行shell命令

<?php 
`git pull`; 
?> 

我給這個PHP腳本的URL(託管在我的服務器)作爲我的github設置中的服務鉤子網址。所以,只要我把東西推到我的github版本庫,它就會向這個php文件發出一個post請求。但是,這似乎並不奏效。

github幫助頁面表示他們發送一個postl請求到有關的url與一些paylod。腳本如何執行呢?

當我在ssh'ing進入我的網站後,從bash提示符git pull,它拉動所有的變化。這個腳本 文件權限當前設置爲755

我需要什麼樣的變化作出了PHP來執行這個文件的shell腳本?

編輯 - 我也試圖改變相應的文件夾的所有權,像這樣:

chown -R apache:apache Test 

所以,當一個POST請求的url做,腳本爲www數據的用戶執行我猜想,因此腳本可以執行。但是,我得到一個錯誤,當我嘗試做這句話:

chown: `apache:apache': invalid group 
+0

我是否需要在我的問題中再詳細一些。任何幫助深表謝意。 – Annihilator8080

回答

0

嘗試PHP exec()函數

string exec (string $command [, array &$output [, int &$return_var ]]) 

命令 =將要執行

輸出的命令 =如果輸出參數存在,那麼指定的數組將填充命令的每行輸出。尾隨空格,例如\ n,不包含在此數組中。請注意,如果數組已經包含一些元素,則exec()將追加到數組的末尾。如果您不希望函數追加元素,請在將數組傳遞給exec()之前先調用unset()方法。

return_var =如果return_var參數與輸出參數一起出現,則執行命令的返回狀態將寫入此變量。

來源:http://php.net/manual/en/function.exec.php

+0

感謝您的回覆,我嘗試過使用'exec'和'shell_exec',但腳本似乎沒有執行。我認爲這與文件權限或用戶對文件的訪問有關。 – Annihilator8080