У меня проблема с перехватом сообщений на 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
Что я делаю неправильно?
Спасибо!
Проверьте пользователя
Пожалуйста, проверьте, действительно ли пользователь веб-сервера apache
,
<?php
echo exec('whoami');
?>
Если это не так, убедитесь, что у пользователя достаточно разрешений.
SSH ключи
Доступны ли ключи SSH для Bitbucket (ключи развертывания) или вы используете только пересылку ключей через SSH?
Проверьте вывод
Пожалуйста, проверьте вывод команды:
<?php
echo nl2br(shell_exec('cd /etc/puppet/environments/production/modules && git pull');
?>
Журналы ошибок
Пожалуйста, проверьте любые журналы ошибок Apache / PHP на наличие ошибок.
Других решений пока нет …