Запуск git pull из php-скрипта - PullRequest
       16

Запуск git pull из php-скрипта

10 голосов
/ 21 февраля 2012

Я пробовал Идеальный рабочий процесс с Git, GitHub и SSH , и у меня все настроено, кроме запуска команды git pull с php.

Когда я запускаюexec('git pull') я получаю:

Не удалось создать каталог '/.ssh'.Ошибка проверки ключа хоста.fatal: Удаленный конец неожиданно зависает

Если я запускаю его в терминале (от имени root), он работает просто отлично, но мне нужен этот хук для работы с Post-Receive URL (Github).

Если я сделаю exec('whoami'), я получу apache.

Это (dv) от Medatemple с CentOS.

1 Ответ

8 голосов
/ 21 февраля 2012

Если вы хотите, чтобы apache (пользователь) мог извлекать данные из git, вам нужно создать ключ ssh для apache, а затем добавить его к ключам только для чтения на github.

Поток что-то вроде этого (настроить под свои нужды)

usermod -s /bin/bash apache
su apache
cd ~
ssh-keygen # work through the keygen dance (added a dash)

Загрузка (тильда здесь относится к домашнему каталогу apache) ~/.ssh/id_rsa.pub в github и предоставление доступа apache к любым репозиториям, из которых необходимо извлечь.

Затем вы можете протестировать на сервере, снова su , подключаясь к apache и запустив git pull

su apache
cd ~/working-copy
git clone my-project

Как только это сработает, вы сможете запустить git pull через PHP.

...