git pull через PHP exec IIS

Легко самая сложная проблема для диагностики, с которой я КОГДА-ЛИБО сталкивался. Кажется, я не могу позвонить:

exec('call git pull', $output);

Процесс зависает и имеет тенденцию уносить с собой IIS.

exec('call git status', $output); //works fine

Вот что Я сделал:

  • Сгенерированный ключ RSA добавлен в github (код доступа пуст)
  • У всех есть разрешения на mysite / .git / и Program Files / git / bin и cmd.exe
  • Пробовал исправление сертификата ssl, упомянутое в других сообщениях, с проблемой «косой черты»
  • Пробовал использовать https: // вместо SSH
  • Пробовал подключаться к stderr 2> NUL и 2> & 1

Очевидно, что существует проблема с разрешениями, когда exec вызывает cmd.exe , который, в свою очередь, вызывает git.exe , который, в свою очередь, вызывает sh.exe для подключения к github, который, в свою очередь, использует git-pull и, возможно, git-send-pack и БОГ ЗНАЕТ что еще.

Я предполагаю, что 'sh.exe' определяет, что текущий пользователь - IUSR, и не может найти ключ RSA y для аутентификации.

Если бы я мог выяснить, как ssh-keygen учетную запись IUSR, я бы попробовал это.

Если бы я мог понять, как exec git bash вместо git (через cmd.exe ), я бы попробовал это.

Вот вопрос в его простейшей форме:

Как мне получить данные из моего репозитория на github с помощью метода PHP exec ?

Проблема определенно связана с SSH, но я полностью в конце все попробовать.

Помогите!

12
задан rmirabelle 14 November 2011 в 03:35
поделиться