Легко самая сложная проблема для диагностики, с которой я КОГДА-ЛИБО сталкивался. Кажется, я не могу позвонить:
exec('call git pull', $output);
Процесс зависает и имеет тенденцию уносить с собой IIS.
exec('call git status', $output); //works fine
Вот что Я сделал:
mysite / .git /
и Program Files / git / bin
и cmd.exe
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, но я полностью в конце все попробовать.
Помогите!