git pull выполняется в SSH, но не в скрипте github post-receive - PullRequest
2 голосов
/ 20 февраля 2012

Я пытаюсь настроить github для автоматизации развертывания веб-сервера. У меня все работает, кроме самого важного. У меня есть файл @ mydomain.com/github.php, который выглядит следующим образом:

<?php
`git pull`;
?>

и это URL-адрес после получения для моего репозитория github. Github успешно отправляет сообщения, но команда оболочки не выполняется. Когда я пытаюсь использовать SSHing на своем сервере и запускать скрипт напрямую:

php github.php

работает нормально и измененные файлы успешно извлекаются

From git://github.com/user/Repo
   7e3176d..f889c14  master     -> origin/master

но при доступе к странице в моем браузере или когда github отправляет на нее сообщение - команда оболочки не выполняется. Там нет ошибки - просто пустой результат. Что я тут не так делаю?

1 Ответ

3 голосов
/ 20 февраля 2012

Есть 2 возможных вопроса:

  1. Разрешения - скорее всего, пользователю вашего веб-сервера нет необходимости
  2. Рабочий каталог. Дважды проверьте, что ваша команда оболочки выполняется по правильному пути (getcwd())

UPD

Git выводит сообщения об ошибках в stderr, поэтому для просмотра реального сообщения об ошибке вам необходимо

echo `git pull 2>&1`;
...