PHP shell_exec git --version отличается от входа в систему через SSH - PullRequest
2 голосов
/ 26 сентября 2019

У меня есть сценарий оболочки Sync.sh на сервере CentOS7, который выполняет git checkout, а затем git pull.Каждая из этих команд использует параметр -C <path>, чтобы скрипт мог жить где угодно.Это все работает нормально, когда вы вошли в систему через SSH (PuTTY) и запустили скрипт из командной строки ./Sync.sh

Однако, когда я запустил это через скрипт PHP, он не работает:

$CommandOutput = shell_exec( "./Sync.sh" );

Я добавил git --version к Sync.sh и обнаружил, что PHP использует git версии 1.8.3, которая не включает опцию -C <path> (она была добавлена ​​в 1.8.5, если я правильно помню).Однако SSH git --version возвращает 2.9.5, что объясняет, почему запуск Sync.sh завершается неудачно через PHP, но отлично работает при запуске через SSH.

Итак, вопросы:

  • почемуPHP получает версию git, отличную от SSH?
  • как я могу заставить PHP получить ту же версию, что и SSH?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...