Сначала я запускаю тест на своем экземпляре сервера bitbucket, чтобы получить какие-либо сообщения об ошибках, выводимые на экран:
echo shell_exec("cd /website/root/htdocs && git status 2>&1");
При этом выдается ошибка, из-за которой не удается найти команду git, поэтому необходимо указать полный путь кДвоичный файл git:
'which git'
возвращен (далее называемый YOU_FULL_GIT_BINARY_PATH_HERE):
/usr/local/git/bin/git
Полный путь, например, '/ usr / local / git / bin / git status' теперь хорошо выполняет команды git.
Это не преодолевает пароль git, необходимый для использования команды 'git pull' для набора в .git / config git user.Выполнение команды ниже в git repo:
git config credential.helper store
[команда] [1] запросит пароль и позволит вам сохранить его локально незашифрованным (защищено только файловой системой, например, в /root/.git-credentials).Это позволит запускать «git pull» без запроса пароля.В качестве альтернативы (возможно, лучше) генерировать ssh-ключи для вашего веб-сервера, такие как apached, а затем добавлять их в свою специализированную учетную запись пользователя bitbucket или ключи репо.
Все мои папки установлены как принадлежащие пользователю apache (Centos6.8 другие версии могут быть www-data: www-data и т. Д.):
chown -R apache:apache YOUR_WEB_FODLER
Мне не пришлось использовать подвох «chmod o + rw -R», чтобы заставить все работать.