2015-05-27 51 views
0

我遇到了bitbucket上的post hook問題。這是一個簡單的PHP腳本只是一個概念證明:Bitbucket上的簡單php post hook不起作用

<?php `cd /etc/puppet/environments/production/modules && git pull`;?> 

在日誌文件中我可以看到,在到位桶打我的鉤:

131.103.20.165 - - [27/May/2015:09:15:59 -0700] "POST /githubupdate.php HTTP/1.1" 200 70 "-" "Bitbucket.org" 

但沒有什麼是怎麼回事。如果我嘗試手動爲用戶運行腳本阿帕奇它正常工作:

sudo -u apache php /var/lib/foreman/public/githubupdate.php 
remote: Counting objects: 3, done. 
remote: Compressing objects: 100% (2/2), done. 
remote: Total 3 (delta 1), reused 0 (delta 0) 
Unpacking objects: 100% (3/3), done. 
From bitbucket.org:ucd-itservices/puppet-modules 
    c083115..2ce4b73 production -> origin/production 

我在做什麼錯?

謝謝!

回答

0

檢查用戶

請檢查網絡服務器的用戶實在是apache

<?php 
echo exec('whoami'); 
?> 

如果不是,請檢查用戶是否有足夠的權限。

SSH密鑰

是SSH密鑰到位桶(部署鍵)提供或者通過SSH只使用鍵轉發?

檢查輸出

請檢查命令的輸出:

<?php 
echo nl2br(shell_exec('cd /etc/puppet/environments/production/modules && git pull'); 
?> 

錯誤日誌

請檢查是否有任何錯誤任何Apache/PHP錯誤日誌。

+0

謝謝你的回答。 爲WHOAMI輸出: /var/lib/foreman/public/who.php apache' 我使用部署鍵'須藤-u apache的PHP。我在部署密鑰下的回購設置中使用Bitbucket上的公鑰,在我的服務器上使用私有服務器下的/var/www/.ssh中的Apache用戶。 nl2br命令的輸出: 'sudo -u apache php /var/lib/foreman/public/n12br.php 已經是最新的。
' 我在日誌文件中看不到有關php或apache的任何錯誤。 謝謝 – tyon

+0

是的,但只是試圖通過瀏覽器打開這個測試腳本(因爲Bitbucket也做外部請求)。 – Richard

+0

我很抱歉,但我並不真正瞭解如何通過瀏覽器查看我的結果。這是一個遠程服務器,我在桌面http(s)://servername/who.php中的瀏覽器中打開這些腳本。我可以看到腳本中的文本(<?php echo exec('whoami');?>),同時我可以在日誌文件中看到http [[28/May/2015:08:19: 09/0700]「GET /who.php HTTP/1.1」200 30「 - 」「Mozilla/5.0(X11; Linux i686)AppleWebKit/537.36(KHTML,像Gecko)Chrome/43.0.2357.65 Safari/537.36」'所以,我得到GET而不是POST。我如何才能打這些腳本來查看結果? – tyon