Легко самая сложная проблема для диагностики того, что я ВСЕГДА испытал. Кажется, я не могу позвонить:
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!