Легко самая сложная проблема для диагностики того, что я ВСЕГДА испытал. Кажется, я не могу позвонить:
exec('call git pull', $output);
Процесс зависает и принимает на себя IIS.
exec('call git status', $output); //works fine
Вот что я сделал:
- Сгенерированный ключ RSA добавлен в github (код доступа пуст)
- У каждого есть разрешение на
mysite/.git/, аProgram Files/git/binиcmd.exe - Попробовал исправление ssl cert, упомянутое в других сообщениях с проблемой "косой черты"
- Пробовал использовать https://вместо SSH
- Пробный трубопровод к stderr
2>NULи2>&1
Ясно, что есть проблема с разрешениями, в которой exec вызывает cmd.exe, который в свою очередь вызывает git.exe, который, в свою очередь, вызывает sh.exe для подключения к github, который, в свою очередь, использует git-pull и, возможно, git-send-pack И БОГ ЗНАЕТ, что еще.
Я предполагаю, что "sh.exe" определяет, что текущий пользователь является IUSR и не может найти ключ RSA для аутентификации.
Если бы я мог понять, как ssh-keygen учетная запись IUSR, я бы попробовал это.
Если бы я мог понять, как exec git bash вместо git (через cmd.exe), я бы попробовал это.
Здесь вопрос в нем простейший вид:
Как я могу извлечь из моего github repo через PHP exec метод?
Проблема, безусловно, связана с SSH, но я полностью в конце всех, чтобы попробовать.
Help!