Bitbucket上简单的php post hook并不起作用

时间:2015-05-27 18:58:56

标签: php bitbucket webhooks

我在bitbucket上遇到了一个问题。它是一个简单的PHP脚本,只是一个概念证明:

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

在日志文件中我可以看到Bitbucket正在敲我的钩子:

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

但一切都没有发生。如果我尝试以用户apache手动运行脚本,它可以正常工作:

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

我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

检查用户

请检查网络服务器用户是否真的apache

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

如果不是,请检查用户是否具有足够的权限。

SSH密钥

Bitbucket(部署密钥)的SSH密钥是否可用,或者您是否仅通过SSH使用密钥转发?

检查输出

请检查命令的输出:

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

错误记录

请检查任何Apache / PHP错误日志是否有任何错误。