Легко самая сложная проблема для диагностики, которую я когда-либо испытывал.Кажется, я не могу позвонить:
exec('call git pull', $output);
Процесс зависает и имеет тенденцию брать с собой IIS.
exec('call git status', $output); //works fine
Вот что я сделал:
- Сгенерированный ключ RSA добавлен в github (пароль не указан)
- У каждого есть разрешение на
mysite/.git/
, Program Files/git/bin
и cmd.exe
- Попробовал исправление SSL-сертификата, упомянутое в другихсообщения с проблемой 'slash'
- Попробовал использовать 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 с помощью PHP exec
метод?
Проблема, безусловно, связана с SSH, но я в конце всего, чтобы попробовать.
Помогите!