我在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
我做错了什么?
谢谢!
答案 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错误日志是否有任何错误。